home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0649.ZIP
/
CCE_0649.PD
/
JOURNAL
/
JORNALAS.GFA
(
.txt
)
next >
Wrap
GFA-BASIC Atari
|
1986-02-06
|
114KB
|
4,958 lines
' JOURNAL-AS
' (C) 10/1988 by Ingmar P. Brunken
' Update W.-Germany (0)221/215976
' V 1.01 Last Update 31/08/89 18:00
vB_0
vB_1
ON MENU GOSUB vB_2
DO
ON MENU
LOOP
> PROCEDURE vB_0
DEFMOUSE 0
RETURN
> PROCEDURE vB_4
DEFMOUSE 2
RETURN
> PROCEDURE vB_1
DIM v5_0$(99,2),v5_1$(2000),v6_0%(2000),v4_0#(2000)
DIM v6_1%(2000),v6_2%(2000),v5_2$(2000),v5_3$(2000),v4_1#(99)
DIM v5_4$(100),v5_5$(2000),vC_0&(7)
DIM v4_2#(99),v6_3%(99,2),v6_4%(99,2)
DIM v5_6$(200),v4_3#(200),v4_4#(200)
DIM v5_F$(2000),v5_10$(2000),v6_A%(2000),v4_6#(2000),v6_B%(2000),v6_C%(2000),v6_8%(2000),v6_7%(2000)
' Dimensionierung für den Grafikteil für 100 Grafiken, max 4 Reihen 14 Spalten
DIM v5_1A$(100),v5_1B$(100),v4_E#(100),v4_F#(100)
DIM v4_10#(4,14,100),v5_1C$(4,100),v5_1D$(14,100),v5_1E$(14,100),v5_19$(100)
DIM v4_9#(4,14),v5_13$(4),v5_14$(14),v5_15$(14)
DIM v5_B$(5),v4_A#(50),v4_B#(50)
RESTORE vA_0
FOR v0_0#=0 TO 60
READ v5_4$(v0_0#)
EXIT IF v5_4$(v0_0#)="+++++"
NEXT v0_0#
v5_4$(v0_0#)=""
v5_4$(v0_0#+1)=""
vA_0:
DATA JOURNAL-AS, Info
DATA ------------, , , , , , ,""
DATA DATEN,...initialisieren,...EDITOR,-----------------,...laden,...speichern,-----------------
DATA QUIT,""
DATA PARAMETER,...Datum,...Überschrift
DATA ---KONTENRAHMEN---,...initialisieren,...zeigen,...umsortieren
DATA ...laden,...speichern,...neues Konto,...Konto auflösen,""
DATA ARBEITEN, Abschluß, Anlagespiegel, G&V-Rechnung
DATA Erfolgsstatistik,""
DATA AUSGABE, Bildschirm, Drucker,---------------
DATA " Kontenform"," Journalform",""
DATA +++++
DEFTEXT 1,0,0,13
DEFFILL ,2,4
PBOX 0,19,639,399
@vB_5
' Inits für Tanzschulbuchhaltung wie Kontennamen etc.
MENU v5_4$()
@vB_6
v5_1$(0)=DATE$
@vB_7
RETURN
> PROCEDURE vB_2
@vB_0
MENU OFF
IF v5_4$(MENU(0))=" Info"
MENU v5_4$()
@vB_8
ENDIF
IF v5_4$(MENU(0))=" QUIT"
MENU v5_4$()
@vB_9
ENDIF
IF v5_4$(MENU(0))="...laden" AND MENU(0)<>26
MENU v5_4$()
@vB_A
ENDIF
IF v5_4$(MENU(0))="...speichern" AND MENU(0)<>27
MENU v5_4$()
@vB_B
ENDIF
IF v5_4$(MENU(0))="...initialisieren" AND MENU(0)=11
MENU v5_4$()
@vB_C
ENDIF
IF v5_4$(MENU(0))="...EDITOR"
MENU v5_4$()
@vB_D
ENDIF
IF v5_4$(MENU(0))="...Datum"
MENU v5_4$()
@vB_6
ENDIF
IF v5_4$(MENU(0))="...Überschrift"
MENU v5_4$()
@vB_E
ENDIF
IF v5_4$(MENU(0))="...initialisieren" AND MENU(0)=23
MENU v5_4$()
@vB_F
ENDIF
IF v5_4$(MENU(0))="...laden" AND MENU(0)=26
MENU v5_4$()
@vB_10
ENDIF
IF v5_4$(MENU(0))="...speichern" AND MENU(0)=27
MENU v5_4$()
@vB_11
ENDIF
IF v5_4$(MENU(0))="...neues Konto"
MENU v5_4$()
@vB_12
ENDIF
IF v5_4$(MENU(0))="...Konto auflösen"
MENU v5_4$()
@vB_13
ENDIF
IF v5_4$(MENU(0))=" G&V-Rechnung"
MENU v5_4$()
vB_3B
ENDIF
IF v5_4$(MENU(0))=" Anlagespiegel"
MENU v5_4$()
@vB_15
ENDIF
IF v5_4$(MENU(0))=" Abschluß"
MENU v5_4$()
@vB_16
ENDIF
IF v5_4$(MENU(0))=" Erfolgsstatistik"
MENU v5_4$()
@vB_3C
ENDIF
IF v5_4$(MENU(0))=" Bildschirm"
MENU v5_4$()
@vB_17
ENDIF
IF v5_4$(MENU(0))=" Drucker"
MENU v5_4$()
@vB_18
ENDIF
IF v5_4$(MENU(0))="...umsortieren"
MENU v5_4$()
vB_4D
ENDIF
vB_7
vB_4B
vB_0
RETURN
> PROCEDURE vB_6
DEFTEXT 1,0,0,13
PRINT AT(10,20);
v1_0$="Stimmt Zeit und Datum"+"|Datum: "+DATE$+"|Zeit : "+TIME$
@vB_19
IF v2_0%=2
@vB_1A
ENDIF
v1_1$=DATE$
ALERT 1,"Basiskontenrahmen gespeichert.|Individuelle Änderungen unter|Menüpunkt 'Kontenrahmen'!",1," OK ",v2_0%
ALERT 2,"|Aktuelles Laufwerk angeben:",1," A | B |Harddisk",v2_0%
SELECT v2_0%
CASE 1
v1_10$="A:"
v1_13$="A:"
CASE 2
v1_10$="B:"
v1_13$="B:"
CASE 3
v1_B$="LAUFWERK DER HARDDISC"
v1_C$="Arbeitslaufwerk der Harddisc angeben. Falls verschiedene"
v1_E$="Laufwerke benutzt werden sollen, '0' eingeben!"
v2_45%=1
vB_33
IF INSTR("ABCDEFGHIJKLMNabcdefghijklmn",v1_F$)>0
v1_13$=UPPER$(v1_F$)+":"
v1_10$=UPPER$(v1_F$)+":"
ENDIF
ENDSELECT
vB_4B
RETURN
> PROCEDURE vB_19
ALERT 2,v1_0$,2," JA |NEIN",v2_0%
RETURN
> PROCEDURE vB_1A
@vB_1C
REPEAT
PRINT AT(45,13);
FORM INPUT 10,v1_1$
PRINT AT(45,15);
FORM INPUT 10,v1_2$
REPEAT
UNTIL MOUSEK
UNTIL MOUSEK
SETTIME v1_2$,v1_1$
@vB_6
RETURN
> PROCEDURE vB_1C
v0_1#=137
v0_2#=47
v0_3#=503
v0_4#=303
@vB_1D
v0_1#=140
v0_2#=50
v0_3#=500
v0_4#=300
@vB_1D
v0_1#=141
v0_2#=50
v0_3#=499
v0_4#=299
@vB_1D
v0_5#=190
v0_6#=80
v1_3$="JOURNAL-AS 1.0 ST"
@vB_1E
v0_5#=190
v0_6#=140
v1_3$="Datum und Uhrzeit einstellen"
@vB_1E
v0_5#=190
v0_6#=200
v1_3$="Datum: "+DATE$
@vB_1E
v0_5#=190
v0_6#=230
v1_3$="Zeit : "+TIME$
@vB_1E
v0_1#=346
v0_2#=181
v0_3#=455
v0_4#=210
@vB_1D
v0_1#=346
v0_2#=212
v0_3#=455
v0_4#=243
@vB_1D
v0_1#=260
v0_2#=250
v0_3#=380
v0_4#=270
@vB_1D
v0_5#=300
v0_6#=266
v1_3$="OKAY"
@vB_1E
RETURN
> PROCEDURE vB_1D
DEFFILL 0,0,
PBOX v0_1#,v0_2#,v0_3#,v0_4#
BOX v0_1#,v0_2#,v0_3#,v0_4#
DEFFILL 1,0,0
RETURN
> PROCEDURE vB_1E
TEXT v0_5#,v0_6#,v1_3$
RETURN
> PROCEDURE vB_7
MENU v5_4$()
' Menu-Status bei Programmstart
MENU 33,2
MENU 33,0
MENU 34,2
MENU 34,0
MENU 35,3
MENU 35,0
MENU 38,0
MENU 38,2
MENU 39,0
MENU 39,2
MENU 42,2
MENU 42,1
' Menu-Status aus bisherigem Programmablauf
IF MENU(0)=42
' Menu 41,2
' Menu 41,1
' Menu 42,3
' Menu 42,0
ENDIF
IF MENU(0)=41
MENU 42,2
MENU 42,1
MENU 41,3
MENU 41,0
ALERT 1,"Bisher nur Journalform|möglich. Kontenform|noch Option!",1,"OK",v2_0%
ENDIF
' Abschluß erledigt
IF v2_1%=-1
MENU 32,3
MENU 32,1
MENU 33,3
MENU 33,0
ENDIF
' Anlagespiegel erledigt
IF v2_1%=-2
MENU 32,3
MENU 32,0
MENU 33,3
MENU 33,1
MENU 34,3
MENU 34,0
ENDIF
' V&G-Rechnung erledigt
IF v2_1%=-3
MENU 32,3
MENU 32,0
MENU 33,3
MENU 33,0
MENU 34,3
MENU 34,1
ENDIF
' Erfolgsstatistik erledigt
' IF statusflag%=-4
' MENU 32,3
' MENU 32,1
' MENU 33,3
' MENU 33,1
' MENU 34,3
' MENU 34,1
' MENU 35,3
' MENU 35,1
' ENDIF
' Ausgabemenü öffnen
IF v2_1%<0
MENU 38,3
MENU 38,0
MENU 39,3
MENU 39,0
ENDIF
RETURN
> PROCEDURE vB_1F
IF v2_2%<2 OR v2_3%<2
ALERT 1," *** ERROR ***|KEIN KONTENRAHMEN!|BITTE EINGEBEN ODER LADEN!",1,"Ach so!",v2_0%
GOTO vA_1
ENDIF
v0_1#=0
v0_2#=19
v0_3#=639
v0_4#=399
@vB_1D
v0_1#=3
v0_2#=22
v0_3#=636
v0_4#=396
@vB_1D
DEFFILL ,2,1
PBOX 3,22,636,45
v1_3$="EINGABE DER BELEGE IN DATEI '"+v1_4$+"'"
v0_5#=(640-8*LEN(v1_3$))/2
v0_6#=38
@vB_1E
DEFFILL ,2,4
PBOX 3,45,636,396
DEFFILL ,0,0
' Konto-Von-Box
v0_1#=10
v0_2#=55
v0_3#=138
v0_4#=92+v2_2%*16
@vB_1D
v0_5#=28
v0_6#=72
v1_3$="BUCHUNG VON:"
@vB_1E
v0_5#=28
v0_6#=88
v1_3$="<< HABEN >>"
@vB_1E
LINE 10,88,138,88
' Konto-Nach-Box
v0_1#=140
v0_2#=55
v0_3#=268
v0_4#=92+v2_3%*16
@vB_1D
v0_5#=150
v0_6#=72
v1_3$="BUCHUNG NACH:"
@vB_1E
v0_5#=150
v0_6#=88
v1_3$="<< SOLL >>"
@vB_1E
LINE 140,88,268,88
@vB_20
@vB_21
' Datumbox
v0_1#=270
v0_2#=55
v0_4#=240
v0_3#=352
@vB_1D
v0_5#=274
v0_6#=72
v1_3$="BUCHUNGS-"
@vB_1E
v0_5#=289
v0_6#=88
v1_3$="DATUM"
@vB_1E
LINE 270,88,352,88
v0_5#=271
IF v4_0#(v2_4%)=0
IF v2_4%<1
v1_3$=DATE$
ELSE
v1_3$=v5_1$(v2_4%-1)
ENDIF
ENDIF
v0_6#=104
@vB_1E
RESTORE vA_2
v0_5#=280
FOR v0_0#=2 TO 9
READ v1_3$
v0_6#=88+v0_0#*16
@vB_1E
NEXT v0_0#
vA_2:
DATA "-1 Jahr","-1 Monat","-1 Woche","-1 Tag"
DATA "+1 Tag","+1 Woche","+1 Monat","+1 Jahr"
@vB_22
@vB_23
' MWST-BOXEN
' SUMMEN-BOX
v0_1#=369
v0_3#=619
v0_2#=55
v0_4#=240
@vB_1D
' Blätter-Pfeil-Kästchen
v0_1#=370
v0_3#=618
v0_2#=56
v0_4#=103
@vB_1D
v0_1#=371
v0_3#=617
v0_2#=57
v0_4#=102
@vB_1D
' Blätter-Pfeil nach links
v0_1#=373
v0_3#=414
v0_2#=59
v0_4#=100
@vB_1D
@vB_24
' Blätter-Pfeil nach rechts
v0_1#=574
v0_3#=615
@vB_1D
@vB_24
' Bl nach links
LINE 380,79,404,61
LINE 380,80,404,98
LINE 404,61,404,98
' ...und nach rechts
LINE 586,61,586,98
LINE 586,61,608,79
LINE 586,98,608,80
v0_1#=370
v0_3#=618
v0_2#=104
v0_4#=239
@vB_1D
v0_5#=436
v0_6#=75
v1_3$="B L Ä T T E R N"
@vB_1E
v0_5#=436
v0_6#=92
v1_3$="Bitte anklicken."
@vB_1E
' Text in Summenbox
vA_1:
IF v4_0#(v2_4%)>0
@vB_25
ENDIF
RETURN
> PROCEDURE vB_5
' BASISKONTENRAHMEN
' kzv=KontoZahlVon kzn=KontoZahlNach
v2_2%=0
v2_3%=0
RESTORE vA_3
FOR v0_0#=1 TO 6
READ v1_5$,v1_6$,v2_39%
' 1) konto von 2) konto nach
IF v1_6$="1"
v5_0$(v2_3%+1,2)=v1_5$
v6_4%(v2_3%+1,2)=v2_39%
INC v2_3%
ELSE
IF v1_6$="2"
v5_0$(v2_2%+1,1)=v1_5$
v6_4%(v2_2%+1,1)=v2_39%
INC v2_2%
ELSE
v5_0$(v2_2%+1,1)=v1_5$
v5_0$(v2_3%+1,2)=v1_5$
INC v2_3%
INC v2_2%
v6_4%(v2_2%,1)=v2_39%
v6_4%(v2_3%,2)=v2_39%
ENDIF
ENDIF
NEXT v0_0#
vA_3:
DATA KASSE,3,1,VORSTEUER,1,2
DATA SACHANLAGEN,1,1,SONST'ERLÖSE,2,2,SONST'KOSTEN,1,2
DATA EIGENKAPITAL,3,1
RETURN
> PROCEDURE vB_24
v0_1#=v0_1#+2
v0_3#=v0_3#-2
v0_2#=v0_2#+2
v0_4#=v0_4#-2
@vB_1D
v0_1#=v0_1#-2
v0_3#=v0_3#+2
v0_2#=v0_2#-2
v0_4#=v0_4#+2
RETURN
> PROCEDURE vB_D
v0_7#=0
IF v1_4$=""
ALERT 1,"|ERST INITIALISIEREN!",1,"OKAY",v2_0%
GOTO vA_4
ENDIF
IF v1_7$=""
ALERT 1,"|ERST KONTENRAHMEN|DEFINIEREN!",1,"Ach so!",v2_0%
GOTO vA_4
ENDIF
IF v2_5%>0
v2_4%=v2_5%
ELSE
v2_5%=1
v2_4%=1
ENDIF
ALERT 2,"Automatische Einbuchung|bei bekannten Buchungs-|texten?",1," JA |NEIN",v2_0%
IF v2_0%=1
v1_8$="JA"
ELSE
v1_8$="NEIN"
ENDIF
@vB_1F
vA_5:
IF v0_7#<0
GOTO vA_6
ENDIF
v0_7#=0
IF v4_0#(v2_4%)=0
v6_1%(v2_4%)=v6_1%(v2_4%-1)
ELSE
@vB_25
GOTO vA_7
ENDIF
@vB_23
@vB_26
IF v0_7#<0
GOTO vA_6
ENDIF
' Automatisches Einbuchen bei bekannten Buchungstexten
IF v1_8$="JA"
IF v2_5%<500
v2_6%=v2_5%
ELSE
v2_6%=500
ENDIF
v0_8#=0
FOR v2_7%=1 TO v2_6%
IF v5_2$(v2_7%)=v5_2$(v2_4%) AND v2_7%<>v2_4%
v6_2%(v2_4%)=v6_2%(v2_7%)
v6_0%(v2_4%)=v6_0%(v2_7%)
v6_1%(v2_4%)=v6_1%(v2_7%)
IF v2_4%>1
v5_1$(v2_4%)=v5_1$(v2_4%-1)
ELSE
v5_1$(v2_4%)=v5_1$(v2_7%)
ENDIF
v1_9$="AUTOMATISCH GEBUCHT!Datum OK?"
@vB_25
@vB_23
@vB_27
v0_8#=-1
v2_7%=v2_6%
ENDIF
NEXT v2_7%
IF v0_8#=-1
GOTO vA_8
ENDIF
ENDIF
vA_9:
DATA "Ursprungskonto wählen (VON)!","Zielkonto wählen (NACH)!"
DATA "Belegdatum wählen!","Betrag eingeben+MWSt. anklicken!"
RESTORE vA_9
v1_A$=""
FOR v0_0#=1 TO 4
READ v1_5$
v1_A$=v1_A$+v1_5$
NEXT v0_0#
vA_A:
RESTORE vA_9
FOR v0_0#=1 TO 4
READ v1_5$
IF INSTR(v1_A$,v1_5$)>0
v1_A$=LEFT$(v1_A$,INSTR(v1_A$,v1_5$)-1)+RIGHT$(v1_A$,LEN(v1_A$)-INSTR(v1_A$,v1_5$)-LEN(v1_5$)+1)
v0_9#=v0_0#
v0_0#=4
ENDIF
NEXT v0_0#
vA_B:
v0_7#=0
v0_A#=0
IF v0_9#=1
GOTO vA_C
ENDIF
IF v0_9#=2
GOTO vA_D
ENDIF
IF v0_9#=3
GOTO vA_E
ENDIF
IF v0_9#=4
@vB_28
ENDIF
IF v0_9#=5
@vB_26
ENDIF
IF v0_9#=6
vA_7:
@vB_29
IF v0_7#<0
GOTO vA_6
ENDIF
IF v0_A#>0 AND v0_A#<>6
v0_9#=v0_A#
GOTO vA_B
ELSE
IF v4_0#(v2_4%)=0 OR v6_0%(v2_4%)=0 OR v6_2%(v2_4%)=0
v4_0#(v2_4%)=0
v6_0%(v2_4%)=0
v6_2%(v2_4%)=0
vA_F:
IF v4_0#(v2_4%-1)=0 AND v2_4%>1
v2_4%=v2_4%-1
v2_5%=v2_4%
GOTO vA_F
ENDIF
ENDIF
v0_7#=0
GOTO vA_5
ENDIF
ENDIF
GOTO vA_10
vA_C:
v1_9$="Ursprungskonto wählen (VON)!"
@vB_27
@vB_2A
IF v0_A#>1
v1_A$=v1_9$+v1_A$
GOTO vA_B
ENDIF
IF v0_7#<0
GOTO vA_6
ENDIF
v6_0%(v2_4%)=v0_7#
IF INSTR(v1_A$,v1_9$)>0
v1_A$=LEFT$(v1_A$,INSTR(v1_A$,v1_9$)-1)+RIGHT$(v1_A$,LEN(v1_A$)-INSTR(v1_A$,v1_9$)-LEN(v1_9$)+1)
ENDIF
GOTO vA_10
vA_D:
v1_9$="Zielkonto wählen (NACH)!"
@vB_27
@vB_2B
IF v0_A#>0 AND v0_A#<>2
v1_A$=v1_9$+v1_A$
GOTO vA_B
ENDIF
IF v0_7#<0
GOTO vA_6
ENDIF
v6_2%(v2_4%)=v0_7#
IF INSTR(v1_A$,v1_9$)>0
v1_A$=LEFT$(v1_A$,INSTR(v1_A$,v1_9$)-1)+RIGHT$(v1_A$,LEN(v1_A$)-INSTR(v1_A$,v1_9$)-LEN(v1_9$)+1)
ENDIF
GOTO vA_10
vA_E:
v1_9$="Belegdatum wählen!"
@vB_27
vA_8:
@vB_2C
IF v0_A#>0 AND v0_A#<>3
v1_A$=v1_9$+v1_A$
GOTO vA_B
ENDIF
IF v0_7#<0
GOTO vA_6
ENDIF
IF INSTR(v1_A$,v1_9$)>0
v1_A$=LEFT$(v1_A$,INSTR(v1_A$,v1_9$)-1)+RIGHT$(v1_A$,LEN(v1_A$)-INSTR(v1_A$,v1_9$)-LEN(v1_9$)+1)
ENDIF
vA_10:
IF v1_A$<>"" AND v0_7#>-2
GOTO vA_A
ENDIF
IF v0_7#>-2
@vB_29
IF v0_7#<0
GOTO vA_6
ENDIF
IF v0_A#>0 AND v0_A#<>6
v0_9#=v0_A#
GOTO vA_B
ELSE
IF v4_0#(v2_4%)=0 OR v6_0%(v2_4%)=0 OR v6_2%(v2_4%)=0
v4_0#(v2_4%)=0
v6_0%(v2_4%)=0
v6_2%(v2_4%)=0
vA_11:
IF v4_0#(v2_4%-1)=0 AND v2_4%>1
v2_4%=v2_4%-1
GOTO vA_11
ENDIF
ENDIF
ENDIF
GOTO vA_5
ELSE
vA_6:
IF v0_7#=-2
v0_7#=0
v1_9$="Alten Beleg #"+STR$(v2_4%)+" gelöscht!"
@vB_27
IF v2_4%<v2_5%
FOR v2_8%=v2_4% TO v2_5%
v6_0%(v2_8%)=v6_0%(v2_8%+1)
v6_2%(v2_8%)=v6_2%(v2_8%+1)
v4_0#(v2_8%)=v4_0#(v2_8%+1)
v6_1%(v2_8%)=v6_1%(v2_8%+1)
v5_1$(v2_8%)=v5_1$(v2_8%+1)
v5_2$(v2_8%)=v5_2$(v2_8%+1)
NEXT v2_8%
ENDIF
v6_0%(v2_5%)=0
v6_2%(v2_5%)=0
v4_0#(v2_5%)=0
v6_1%(v2_5%)=0
v5_1$(v2_5%)=""
v5_2$(v2_5%)=""
IF v2_5%>1
SUB v2_5%,1
ENDIF
@vB_20
@vB_21
GOTO vA_5
ELSE IF v0_7#=-3
v0_7#=0
@vB_1B
@vB_2D
GOTO vA_4
ELSE IF v0_7#=-4
GOTO vA_4
ENDIF
ENDIF
vA_4:
RETURN
> PROCEDURE vB_27
GRAPHMODE 2
DEFFILL ,1,1
PBOX 375,220,610,238
v0_5#=380
v0_6#=236
v1_3$=v1_9$
DEFTEXT 0,0,0,13
@vB_1E
GRAPHMODE 1
DEFTEXT 1,0,0,13
RETURN
> PROCEDURE vB_2A
@vB_20
v0_1#=13
v0_3#=138
v0_2#=54
v0_4#=72
v0_5#=28
v0_6#=72
v1_3$="BUCHUNG VON:"
@vB_2E
v0_1#=13
v0_3#=138
v0_2#=72
v0_4#=88
v0_5#=28
v0_6#=88
v1_3$="<< HABEN >>"
@vB_2E
v0_7#=0
v0_B#=0
v0_C#=0
REPEAT
FOR v0_0#=0 TO v2_2%-1
MOUSE v2_9%,v2_A%,v2_B%
IF v2_9%>14 AND v2_9%<138 AND v2_A%>88+v0_0#*16 AND v2_A%<104+v0_0#*16
IF v0_B#=v0_0#+1
GOTO vA_12
ENDIF
IF v0_B#<>0
@vB_2F
ENDIF
v0_1#=14
v0_2#=88+v0_0#*16
v0_3#=138
v0_4#=104+v0_0#*16
v0_5#=14
v0_6#=104+v0_0#*16
v1_3$=v5_0$(v0_0#+1,1)
@vB_2E
v0_B#=v0_0#+1
vA_12:
IF v2_B%=1
v0_7#=v0_0#+1
v0_0#=v2_2%-1
ENDIF
ELSE
@vB_30
IF v0_A#>1
v0_9#=v0_A#
v0_7#=-1
v0_0#=v2_2%-1
ENDIF
ENDIF
@vB_31
IF v0_7#<0
v0_0#=v2_2%-1
ENDIF
NEXT v0_0#
IF v0_7#<0
GOTO vA_13
ENDIF
IF (MOUSEX<14 OR MOUSEX>138 OR MOUSEY<88 OR MOUSEY>104+(v2_2%-1)*16) AND v0_B#>0
@vB_2F
v0_B#=0
ENDIF
UNTIL v0_7#>0
vA_13:
v0_1#=14
v0_3#=138
v0_2#=54
v0_4#=72
v0_5#=28
v0_6#=72
v1_3$="BUCHUNG VON:"
@vB_2F
v0_1#=14
v0_3#=138
v0_2#=72
v0_4#=88
v0_5#=28
v0_6#=88
v1_3$="<< HABEN >>"
@vB_2F
LINE 12,88,136,88
RETURN
> PROCEDURE vB_2E
GRAPHMODE 2
DEFFILL ,1,1
PBOX v0_1#-3,v0_2#+2,v0_3#-1,v0_4#+1
DEFFILL ,0,0
DEFTEXT 0,0,0,13
@vB_1E
GRAPHMODE 1
DEFTEXT 1,0,0,13
RETURN
> PROCEDURE vB_2F
DEFFILL ,0,0
GRAPHMODE 1
PBOX v0_1#-3,v0_2#+2,v0_3#-1,v0_4#+1
COLOR 0
BOX v0_1#-3,v0_2#+2,v0_3#-1,v0_4#+1
DEFTEXT 1,0,0,13
@vB_1E
COLOR 1
RETURN
> PROCEDURE vB_31
MOUSE v2_9%,v2_A%,v2_B%
IF v2_9%>369 AND v2_9%<494 AND v2_A%>262 AND v2_A%<315
DEFFILL ,1,1
PBOX 369,262,490,315
GRAPHMODE 2
DEFTEXT 0,0,0,13
v0_5#=383
v0_6#=286
v1_3$="RECHTE MAUS-"
@vB_1E
v0_5#=379
v0_6#=302
v1_3$="TASTE DRÜCKEN"
@vB_1E
WHILE v2_9%>369 AND v2_9%<494 AND v2_A%>262 AND v2_A%<315 AND v2_B%<2
MOUSE v2_9%,v2_A%,v2_B%
WEND
GRAPHMODE 1
DEFTEXT 1,0,0,13
IF v2_9%>369 AND v2_9%<494 AND v2_A%>262 AND v2_A%<315 AND v2_B%=2
vB_56
ELSE
@vB_22
ENDIF
ENDIF
IF v2_9%>369 AND v2_9%<494 AND v2_A%>319 AND v2_A%<372
DEFFILL ,1,1
PBOX 369,319,490,372
GRAPHMODE 2
DEFTEXT 0,0,0,13
v0_5#=374
v0_6#=343
v1_3$=" RECHTE MAUS-"
@vB_1E
v0_5#=378
v0_6#=359
v1_3$="TASTE DRÜCKEN"
@vB_1E
WHILE v2_9%>369 AND v2_9%<494 AND v2_A%>319 AND v2_A%<372 AND v2_B%<2
MOUSE v2_9%,v2_A%,v2_B%
WEND
GRAPHMODE 1
DEFTEXT 1,0,0,13
IF v2_9%>369 AND v2_9%<494 AND v2_A%>319 AND v2_A%<372 AND v2_B%=2
vB_1B
v0_7#=-3
' FLAG maus=-3 heißt Ausstieg aus Eingabemenu
ELSE
@vB_22
ENDIF
ENDIF
IF v2_9%>498 AND v2_9%<619 AND v2_A%>262 AND v2_A%<315
DEFFILL ,1,1
PBOX 498,262,619,315
GRAPHMODE 2
DEFTEXT 0,0,0,13
v0_5#=511
v0_6#=286
v1_3$="RECHTE MAUS-"
@vB_1E
v0_5#=507
v0_6#=302
v1_3$="TASTE DRÜCKEN"
@vB_1E
WHILE v2_9%>498 AND v2_9%<619 AND v2_A%>262 AND v2_A%<315 AND v2_B%<2
MOUSE v2_9%,v2_A%,v2_B%
WEND
GRAPHMODE 1
DEFTEXT 1,0,0,13
IF v2_9%>498 AND v2_9%<619 AND v2_A%>262 AND v2_A%<315 AND v2_B%=2
vB_57
vB_22
ELSE
vB_22
ENDIF
ENDIF
IF v2_9%>498 AND v2_9%<619 AND v2_A%>319 AND v2_A%<372
DEFFILL ,1,1
PBOX 498,319,619,372
GRAPHMODE 2
DEFTEXT 0,0,0,13
v0_5#=503
v0_6#=343
v1_3$="LÖSCHEN:RECHTE"
@vB_1E
v0_5#=507
v0_6#=359
v1_3$=" MAUSTASTE"
@vB_1E
WHILE v2_9%>498 AND v2_9%<619 AND v2_A%>319 AND v2_A%<372 AND v2_B%<2
MOUSE v2_9%,v2_A%,v2_B%
WEND
GRAPHMODE 1
DEFTEXT 1,0,0,13
IF v2_9%>498 AND v2_9%<619 AND v2_A%>319 AND v2_A%<372 AND v2_B%=2
v0_7#=-2
' FLAG maus=-2 heißt Neue Belegeingabe
ELSE
@vB_22
ENDIF
ENDIF
RETURN
> PROCEDURE vB_22
v0_1#=369
v0_2#=262
v0_3#=490
v0_4#=315
@vB_1D
@vB_24
v0_2#=319
v0_4#=372
@vB_1D
vB_24
v0_1#=498
v0_3#=619
@vB_1D
@vB_24
v0_2#=262
v0_4#=315
@vB_1D
vB_24
v0_5#=382
v0_6#=343
v1_3$=" BELEGE"
@vB_1E
v0_5#=378
v0_6#=359
v1_3$=" SORTIEREN"
@vB_1E
v0_5#=392
v0_6#=286
v1_3$=" BELEG"
@vB_1E
v0_5#=388
v0_6#=302
v1_3$=" SUCHEN"
@vB_1E
v0_5#=521
v0_6#=286
IF v1_2A$=""
v1_3$=" TASCHEN-"
ELSE
v1_3$=LEFT$(v1_2A$,INSTR(v1_2A$,"|")-1)
ENDIF
@vB_1E
v0_5#=524
v0_6#=302
IF v1_2A$=""
v1_3$=" RECHNER"
ELSE
v1_3$=RIGHT$(v1_2A$,LEN(v1_2A$)-INSTR(v1_2A$,"|"))
MOUSE v2_9%,v2_A%,v2_B%
IF v2_9%<498 OR v2_9%>619 OR v2_A%<262 OR v2_A%>315
v1_2A$=""
ENDIF
ENDIF
@vB_1E
v0_5#=506
v0_6#=343
v1_3$=STRING$(2-(LEN(STR$(v2_4%))/2),32)+" LFD.NR. "+STR$(v2_4%)
@vB_1E
v0_5#=506
v0_6#=359
v1_3$=" LÖSCHEN"
@vB_1E
RETURN
> PROCEDURE vB_2B
@vB_21
v0_1#=144
v0_2#=54
v0_3#=268
v0_4#=72
v0_5#=150
v0_6#=72
v1_3$="BUCHUNG NACH:"
@vB_2E
v0_1#=144
v0_2#=72
v0_3#=268
v0_4#=88
v0_5#=150
v0_6#=88
v1_3$="<< SOLL >>"
@vB_2E
v0_7#=0
v0_B#=0
v0_C#=0
REPEAT
FOR v0_0#=0 TO v2_3%-1
MOUSE v2_9%,v2_A%,v2_B%
IF v2_9%>144 AND v2_9%<268 AND v2_A%>88+v0_0#*16 AND v2_A%<104+v0_0#*16
IF v0_B#=v0_0#+1
GOTO vA_16
ENDIF
IF v0_B#<>0
@vB_2F
ENDIF
v0_1#=144
v0_3#=268
v0_2#=88+v0_0#*16
v0_4#=104+v0_0#*16
v0_5#=144
v0_6#=104+v0_0#*16
v1_3$=v5_0$(v0_0#+1,2)
@vB_2E
v0_B#=v0_0#+1
vA_16:
IF v2_B%=1
v0_7#=v0_0#+1
v0_0#=v2_3%-1
ENDIF
ELSE
@vB_30
IF v0_A#>0 AND v0_A#<>2
v0_9#=v0_A#
v0_7#=-1
v0_0#=v2_3%-1
ENDIF
ENDIF
@vB_31
IF v0_7#<0
v0_0#=v2_3%-1
ENDIF
NEXT v0_0#
IF v0_7#<0
GOTO vA_17
ENDIF
IF (MOUSEX<144 OR MOUSEX>268 OR MOUSEY<88 OR MOUSEY>104+v0_0#*16) AND v0_B#>0
@vB_2F
v0_B#=0
ENDIF
UNTIL v0_7#>0
vA_17:
v0_1#=144
v0_2#=54
v0_3#=268
v0_4#=72
v0_5#=150
v0_6#=72
v1_3$="BUCHUNG NACH:"
@vB_2F
v0_1#=144
v0_2#=72
v0_3#=268
v0_4#=88
v0_5#=150
v0_6#=88
v1_3$="<< SOLL >>"
@vB_2F
LINE 142,88,266,88
RETURN
> PROCEDURE vB_2C
v0_1#=274
v0_2#=54
v0_3#=352
v0_4#=72
v0_5#=272
v0_6#=72
v1_3$="LEFT=SLOW"
@vB_2E
v0_1#=274
v0_2#=72
v0_3#=352
v0_4#=88
v0_5#=272
v0_6#=88
v1_3$="RIGHT=FAST"
@vB_2E
IF v5_1$(v2_4%)=""
v5_1$(v2_4%)=v5_1$(v2_4%-1)
ENDIF
v0_B#=0
v0_C#=0
v0_7#=0
REPEAT
FOR v0_0#=0 TO 8
MOUSE v2_9%,v2_A%,v2_B%
IF v2_9%>274 AND v2_9%<352 AND v2_A%>88+v0_0#*16 AND v2_A%<104+v0_0#*16
IF v0_B#=v0_0#+1
GOTO vA_18
ENDIF
IF v0_B#<>0
@vB_2F
ENDIF
v0_1#=274
v0_3#=352
v0_2#=88+v0_0#*16
v0_4#=104+v0_0#*16
v0_6#=104+v0_0#*16
IF v0_0#=0
v0_5#=271
v1_3$=v5_1$(v2_4%)
v0_F#=VAL(LEFT$(v1_3$,2))
v0_10#=VAL(MID$(v1_3$,4,2))
v0_11#=VAL(RIGHT$(v1_3$,4))
GOTO vA_19
ENDIF
RESTORE vA_2
v0_5#=280
FOR v0_E#=1 TO v0_0#
READ v1_3$
v0_6#=104+v0_0#*16
NEXT v0_E#
vA_19:
@vB_2E
v0_B#=v0_0#+1
vA_18:
IF v2_B%=1 OR v2_B%=2
IF v0_0#=0
v5_1$(v2_4%)=STR$(v0_F#)+"."+STR$(v0_10#)+"."+STR$(v0_11#)
v0_0#=8
v0_7#=1
ELSE
IF v0_B#<>0
@vB_2F
ENDIF
@vB_32
v0_B#=0
ENDIF
IF v2_B%=1
PAUSE 10
ENDIF
ENDIF
ELSE
@vB_30
IF v0_A#>0 AND v0_A#<>3
v0_9#=v0_A#
v0_7#=-1
v0_0#=8
ENDIF
ENDIF
@vB_31
IF v0_7#<0
v0_0#=8
ENDIF
NEXT v0_0#
IF v0_7#<0
GOTO vA_1A
ENDIF
IF (MOUSEX<274 OR MOUSEX>352 OR MOUSEY<88 OR MOUSEY>104+8*16) AND v0_B#>0
@vB_2F
v0_B#=0
ENDIF
UNTIL v0_7#>0
vA_1A:
v0_1#=274
v0_2#=54
v0_3#=352
v0_4#=72
v0_5#=274
v0_6#=72
v1_3$="BUCHUNGS-"
@vB_2F
v0_1#=274
v0_2#=72
v0_3#=352
v0_4#=88
v0_5#=289
v0_6#=88
v1_3$="DATUM"
@vB_2F
LINE 272,88,350,88
RETURN
> PROCEDURE vB_32
v1_5$=v5_1$(v2_4%)
v0_F#=VAL(LEFT$(v1_5$,INSTR(v1_5$,".")))
v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
v0_10#=VAL(LEFT$(v1_5$,INSTR(v1_5$,".")))
v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
v0_11#=VAL(v1_5$)
IF v1_3$="-1 Monat"
v0_10#=v0_10#-1
IF v0_10#=2 AND v0_F#>28 AND (v0_11#-80)/4<>INT((v0_11#-80)/4)
v0_F#=28
ELSE
IF v0_10#=2 AND v0_F#>29
v0_F#=29
ELSE
IF (v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11) AND v0_F#>30
v0_F#=30
ENDIF
ENDIF
ENDIF
ELSE
IF v1_3$="-1 Tag"
v0_F#=v0_F#-1
ELSE
IF v1_3$="+1 Monat"
v0_10#=v0_10#+1
IF v0_10#=2 AND v0_F#>28 AND (v0_11#-80)/4<>INT((v0_11#-80)/4)
v0_F#=28
ELSE
IF v0_10#=2 AND v0_F#>29
v0_F#=29
ELSE
IF (v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11) AND v0_F#>30
v0_F#=30
ENDIF
ENDIF
ENDIF
ELSE
IF v1_3$="+1 Tag"
v0_F#=v0_F#+1
ELSE
IF v1_3$="-1 Woche"
v0_F#=v0_F#-7
ELSE
IF v1_3$="+1 Woche"
v0_F#=v0_F#+7
ELSE
IF v1_3$="-1 Jahr"
v0_11#=v0_11#-1
ELSE
IF v1_3$="+1 Jahr"
v0_11#=v0_11#+1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
vA_1B:
IF v0_10#<1
v0_11#=v0_11#-1
v0_10#=v0_10#+12
ELSE
IF v0_10#>12
v0_11#=v0_11#+1
v0_10#=v0_10#-12
ENDIF
ENDIF
IF v0_F#<1
v0_F#=v0_F#+31
v0_10#=v0_10#-1
IF v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11
v0_F#=v0_F#-1
ELSE
IF v0_10#=2
v0_F#=v0_F#-2
IF (v0_11#-80)/4=INT(v0_11#-80)/4
v0_F#=v0_F#-1
ENDIF
ENDIF
ENDIF
GOTO vA_1B
ENDIF
IF v0_F#>28 AND v0_10#=2 AND (v0_11#-80)/4<>INT((v0_11#-80)/4)
v0_10#=v0_10#+1
v0_F#=v0_F#-28
GOTO vA_1B
ELSE
IF v0_F#>29 AND v0_10#=2 AND (v0_11#-80)/4=INT((v0_11#-80)/4)
v0_10#=v0_10#+1
v0_F#=v0_F#-29
GOTO vA_1B
ELSE
IF v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11 AND v0_F#>30
v0_10#=v0_10#+1
v0_F#=v0_F#-30
GOTO vA_1B
ELSE
IF v0_F#>31
v0_F#=v0_F#-31
v0_10#=v0_10#+1
GOTO vA_1B
ENDIF
ENDIF
ENDIF
ENDIF
v0_5#=272
v0_6#=104
v1_3$="0"+STR$(v0_F#)+".0"+STR$(v0_10#)+"."+STR$(v0_11#)
vA_1C:
IF LEN(v1_3$)>10
IF INSTR(v1_3$,".")>3
v1_3$=RIGHT$(v1_3$,LEN(v1_3$)-1)
GOTO vA_1C
ELSE
v1_3$=LEFT$(v1_3$,3)+RIGHT$(v1_3$,7)
GOTO vA_1C
ENDIF
ENDIF
@vB_1E
v5_1$(v2_4%)=v1_3$
RETURN
PROCEDURE vB_9
STOP
RETURN
> PROCEDURE vB_33
DEFTEXT 1,0,0,13
IF LEN(v1_B$)>LEN(v1_C$)
v1_D$=v1_B$
ELSE
v1_D$=v1_C$
ENDIF
IF LEN(v1_E$)>LEN(v1_D$)
v1_D$=v1_E$
ENDIF
v0_1#=(640-LEN(v1_D$)*8)/2-6
v0_3#=640-v0_1#
v0_2#=120
v0_4#=280
v0_12#=v0_3#
v0_13#=v0_1#
@vB_1D
@vB_24
' xp3,xp4 Außenmaße der randbox
v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
v0_6#=152
v0_1#=v0_5#
v0_3#=v0_1#+LEN(v1_B$)*8
v0_2#=138
v0_4#=152
v1_3$=v1_B$
@vB_2E
v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
v0_6#=184
v1_3$=v1_C$
@vB_1E
v0_5#=(v0_12#-v0_13#-LEN(v1_E$)*8)/2+v0_13#
v0_6#=200
v1_3$=v1_E$
@vB_1E
v0_1#=(v0_12#-v0_13#-v2_45%*8)/2+v0_13#-14
v0_4#=240+2
v0_3#=640-v0_1#+2
v0_2#=224-2
@vB_1D
PRINT AT(((v0_1#+2)/8+2),(240/16));
FORM INPUT v2_45%,v1_F$
DEFFILL ,2,4
PBOX 0,19,639,399
RETURN
> PROCEDURE vB_C
IF v1_4$<>""
ALERT 2,"Alte Daten löschen?|(Vielleicht solltest Du sie|erst abspeichern?)",2,"Löschen|Abbruch",v2_0%
IF v2_0%=1
ARRAYFILL v6_0%(),0
ARRAYFILL v4_0#(),0
ARRAYFILL v6_1%(),0
ARRAYFILL v6_2%(),0
v2_5%=0
FOR v2_3D%=0 TO 2000
v5_1$(v2_3D%)=""
v5_2$(v2_3D%)=""
NEXT v2_3D%
ELSE
GOTO vA_5D
ENDIF
ENDIF
v1_B$="INITIALISIEREN - Dateiname"
v1_C$="Das Suffix ist automatisch '.JAS'! Länge max. 8 Zeichen."
v1_E$="Welchen Namen soll die neue Datei bekommen?"
v2_45%=8
@vB_33
v1_14$=v1_F$
vB_38
v1_4$=v1_14$
v1_B$="INITIALISIEREN - Dateipfad für Dateiname"
v1_C$="Unter diesem Namen existierende Datei wird autom. geladen!"
v1_E$="Wo soll die Datei geladen und gespeichert werden?"
v2_45%=20
@vB_33
v1_10$=v1_F$
IF v1_7$=""
@vB_F
ENDIF
vA_5D:
RETURN
> PROCEDURE vB_30
' eing_jump=1: Kontovon
' "=2: kontonach
' "=3:bdatum
' "=4:MWSt
' "=5:Summenbox
' "=6:Blättern
v0_A#=0
MOUSE v2_9%,v2_A%,v2_B%
IF v2_B%<>1
GOTO vA_1D
ENDIF
IF v2_9%>10 AND v2_9%<138 AND v2_A%>55 AND v2_A%<92+v2_2%*16
v0_A#=1
ELSE
IF v2_9%>140 AND v2_9%<268 AND v2_A%>55 AND v2_A%<92+v2_3%*16
v0_A#=2
ELSE
IF v2_9%>270 AND v2_9%<352 AND v2_A%>55 AND v2_A%<240
v0_A#=3
ELSE
IF v2_9%>270 AND v2_9%<352
IF (v2_A%>250 AND v2_A%<290) OR (v2_A%>300 AND v2_A%<340) OR (v2_A%>350 AND v2_A%<390)
v0_A#=4
ENDIF
ELSE
IF v2_9%>369 AND v2_9%<619 AND v2_A%>104 AND v2_A%<240
v0_A#=5
ELSE
IF v2_9%>373 AND v2_9%<615 AND v2_A%>57 AND v2_A%<102
v0_A#=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
vA_1D:
RETURN
> PROCEDURE vB_34
DEFTEXT 1,0,0,13
' xp3,xp4 Außenmaße der randbox
v0_13#=369
v0_12#=619
v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
v0_6#=130
v0_1#=v0_5#
v0_3#=v0_1#+LEN(v1_B$)*8
v0_2#=116
v0_4#=130
v1_3$=v1_B$
@vB_2E
v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
v0_6#=152
v1_3$=v1_C$
@vB_1E
v0_1#=v0_13#+8
v0_3#=v0_12#-8
v0_2#=158
v0_4#=178
@vB_1D
v0_5#=v0_13#+8
v0_6#=205
v1_3$=v1_E$
@vB_1E
v0_1#=v0_13#+158
v0_4#=210
v0_3#=v0_12#-8
v0_2#=190
@vB_1D
vA_1E:
PRINT AT(((v0_13#+2)/8+3),(182/16));
v2_45%=27
v1_F$=v5_2$(v2_4%)
@vB_35
v5_2$(v2_4%)=v1_F$
IF v0_7#<0 OR v0_A#>0
GOTO vA_1F
ENDIF
v1_F$=STR$(v4_0#(v2_4%))
v2_45%=8
PRINT AT(((v0_13#+160)/8+1),(220/16));
@vB_35
IF v0_7#<0 OR (v0_A#>0 AND v0_A#<>5)
GOTO vA_1F
ENDIF
IF VAL(v1_F$)<=0 OR VAL(v1_F$)>99999
GOTO vA_1E
ENDIF
v0_24#=VAL(v1_F$)
v4_0#(v2_4%)=v0_24#
vB_49(v0_24#)
v1_F$=v1_21$
PRINT AT(((v0_13#+160)/8+1),(220/16));" ";
PRINT AT(((v0_13#+160)/8+1),(220/16));v1_F$;
DEFFILL ,2,4
vA_1F:
RETURN
> PROCEDURE vB_26
v1_B$="#Belege:"+STR$(v2_5%)+"/Aktuelle#:"+STR$(v2_4%)
v1_C$="Buchungstext:"
v1_E$="Betrag(xxxxx.xx DM)"
v2_45%=8
vB_34
IF v0_7#<0 OR v0_A#>0
GOTO vA_20
ENDIF
vA_20:
RETURN
> PROCEDURE vB_29
v0_1#=415
v0_3#=573
v0_2#=57
v0_4#=76
v0_5#=436
v0_6#=76
v1_3$="B L Ä T T E R N"
@vB_36
v0_2#=77
v0_4#=102
v0_5#=420
v0_6#=92
v1_3$="<zurück vorwärts>"
@vB_36
vA_21:
MOUSE v2_9%,v2_A%,v2_B%
IF v2_B%=1 AND v2_A%<100 AND v2_A%>59
IF v2_9%>373 AND v2_9%<414 AND v2_4%>1
@vB_37
v2_4%=v2_4%-1
vB_22
GOTO vA_22
ELSE
IF v2_9%>574 AND v2_9%<615
@vB_37
v2_4%=v2_4%+1
IF v2_4%>v2_5%
v2_5%=v2_4%
ENDIF
vB_22
GOTO vA_22
ENDIF
ENDIF
ENDIF
vB_28
vB_31
IF v0_7#<0
GOTO vA_22
ENDIF
v0_A#=0
vB_30
IF v0_A#>0 AND v0_A#<>6
GOTO vA_22
ENDIF
GOTO vA_21
vA_22:
RETURN
> PROCEDURE vB_28
MOUSE v2_9%,v2_A%,v2_B%
IF v2_B%=1 AND v2_9%>270 AND v2_9%<352
IF v2_A%>250 AND v2_A%<290
v6_1%(v2_4%)=0
@vB_23
ELSE
IF v2_A%>300 AND v2_A%<340
v6_1%(v2_4%)=7
@vB_23
ELSE
IF v2_A%>350 AND v2_A%<390
v6_1%(v2_4%)=14
@vB_23
ENDIF
ENDIF
ENDIF
ENDIF
RETURN
> PROCEDURE vB_23
v0_1#=270
v0_3#=352
v0_2#=250
v0_4#=267
v0_6#=266
v0_5#=291
v1_3$="MWST."
IF v6_1%(v2_4%)=0
@vB_36
ELSE
@vB_1D
@vB_1E
ENDIF
v0_2#=267
v0_4#=290
v0_6#=285
v1_3$=" 0 %"
IF v6_1%(v2_4%)=0
@vB_36
ELSE
@vB_1D
@vB_1E
ENDIF
v0_2#=300
v0_4#=317
v0_6#=316
v1_3$="MWST."
IF v6_1%(v2_4%)=7
@vB_36
ELSE
@vB_1D
@vB_1E
ENDIF
v0_2#=317
v0_4#=340
v0_6#=335
v1_3$=" 7 %"
IF v6_1%(v2_4%)=7
@vB_36
ELSE
@vB_1D
@vB_1E
ENDIF
v0_2#=350
v0_4#=367
v0_6#=366
v1_3$="MWST."
IF v6_1%(v2_4%)=14
@vB_36
ELSE
@vB_1D
@vB_1E
ENDIF
v0_2#=367
v0_4#=390
v0_6#=385
v1_3$="14 %"
IF v6_1%(v2_4%)=14
@vB_36
ELSE
@vB_1D
@vB_1E
ENDIF
RETURN
> PROCEDURE vB_36
' Invers für Boxen ohne Umrandung
GRAPHMODE 2
DEFFILL ,1,1
PBOX v0_1#,v0_2#,v0_3#,v0_4#
DEFFILL ,0,0
DEFTEXT 0,0,0,13
@vB_1E
GRAPHMODE 1
DEFTEXT 1,0,0,13
RETURN
> PROCEDURE vB_35
' Eingangsdaten:antwort$(Wert bei RETURN)
IF LEFT$(v1_F$,1)="0" AND VAL(v1_F$)=0
v1_F$=""
ENDIF
PRINT v1_F$;"_";
vA_23:
v1_5$=INKEY$
v0_A#=0
@vB_30
IF v0_A#>0
GOTO vA_24
ENDIF
@vB_31
IF v0_7#<0
GOTO vA_24
ENDIF
@vB_28
IF v1_5$=CHR$(8) AND LEN(v1_F$)>0
v1_F$=LEFT$(v1_F$,LEN(v1_F$)-1)
PRINT STRING$(2,8);"_ ";CHR$(8);
GOTO vA_23
ELSE
IF v1_5$=CHR$(13)
GOTO vA_24
ELSE
IF v1_5$="" OR ASC(v1_5$)<32 OR ASC(v1_5$)>154 OR ASC(v1_5$)=44
GOTO vA_23
ENDIF
ENDIF
ENDIF
IF LEN(v1_F$)<v2_45%
v1_F$=v1_F$+v1_5$
PRINT CHR$(8);v1_5$;"_";
ENDIF
GOTO vA_23
vA_24:
PRINT CHR$(8);" ";
RETURN
> PROCEDURE vB_25
@vB_23
v0_0#=v6_0%(v2_4%)
IF v0_0#>v2_2%
ALERT 1,"*** ERROR: Der Kontenrahmen|paßt nicht zu den Daten!|Es fehlen Konten!",1,"Abbruch",v2_0%
v0_7#=-4
GOTO vA_5E
ENDIF
v0_1#=14
v0_2#=72+v0_0#*16
v0_3#=138
v0_4#=88+v0_0#*16
v0_5#=14
v0_6#=88+v0_0#*16
v1_3$=v5_0$(v0_0#,1)
@vB_2E
v0_0#=v6_2%(v2_4%)
IF v0_0#>v2_3%
ALERT 1,"*** ERROR: Der Kontenrahmen|paßt nicht zu den Daten!|Es fehlen Konten!",1,"Abbruch",v2_0%
v0_7#=-4
GOTO vA_5E
ENDIF
v0_1#=144
v0_3#=268
v0_2#=72+v0_0#*16
v0_4#=88+v0_0#*16
v0_5#=144
v0_6#=88+v0_0#*16
v1_3$=v5_0$(v0_0#,2)
@vB_2E
v0_1#=274
v0_3#=352
v0_2#=88
v0_4#=104
v0_5#=271
v0_6#=104
v1_3$=v5_1$(v2_4%)
@vB_2E
v1_B$="#Belege:"+STR$(v2_5%)+"/Aktuelle#:"+STR$(v2_4%)
v1_C$="Buchungstext:"
v1_E$="Betrag(xxxxx.xx DM)"
DEFTEXT 1,0,0,13
' xp3,xp4 Außenmaße der randbox
v0_13#=369
v0_12#=619
v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
v0_6#=130
v0_1#=v0_5#
v0_3#=v0_1#+LEN(v1_B$)*8
v0_2#=116
v0_4#=130
v1_3$=v1_B$
@vB_2E
v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
v0_6#=152
v1_3$=v1_C$
@vB_1E
v0_1#=v0_13#+8
v0_3#=v0_12#-8
v0_2#=158
v0_4#=178
@vB_1D
v0_5#=v0_13#+8
v0_6#=205
v1_3$=v1_E$
@vB_1E
v0_1#=v0_13#+158
v0_4#=210
v0_3#=v0_12#-8
v0_2#=190
@vB_1D
PRINT AT(((v0_13#+2)/8+3),(182/16));v5_2$(v2_4%);
vB_49(v4_0#(v2_4%))
v1_F$=v1_21$
PRINT AT(((v0_13#+160)/8+1),(220/16));v1_F$;
DEFFILL ,2,4
vA_5E:
RETURN
> PROCEDURE vB_A
IF v1_4$=""
FILESELECT v1_10$+"\*.JAS","",v1_11$
ELSE
FILESELECT v1_10$+"\*.JAS",v1_4$+".JAS",v1_11$
ENDIF
IF v1_11$="" OR v1_11$="\"
v1_19$=""
GOTO vA_25
ENDIF
IF RIGHT$(v1_11$,3)<>"JAS"
GOTO vA_25
ENDIF
IF EXIST(v1_11$)=0
ALERT 1,"|Datei existiert nicht!",1,"Oioi!",v2_0%
GOTO vA_25
ENDIF
vB_4
OPEN "I",#1,v1_11$
INPUT #1,v1_4$
INPUT #1,v2_5%
FOR v0_0#=1 TO v2_5%
INPUT #1,v5_1$(v0_0#)
INPUT #1,v5_2$(v0_0#)
INPUT #1,v4_0#(v0_0#)
INPUT #1,v6_0%(v0_0#)
INPUT #1,v6_2%(v0_0#)
INPUT #1,v6_1%(v0_0#)
NEXT v0_0#
CLOSE #1
v1_14$=v1_4$
vB_38
v1_4$=v1_14$
vB_0
vA_25:
RETURN
> PROCEDURE vB_B
IF v1_4$="" OR v2_5%<2
ALERT 1,"Keine Datei gespeichert!",1," OK ",v2_0%
GOTO vA_26
ENDIF
vA_27:
FILESELECT v1_10$+"\*.JAS",v1_4$,v1_11$
IF v1_11$="" OR v1_11$="\"
v1_19$=""
GOTO vA_26
ENDIF
IF RIGHT$(v1_11$,3)<>"JAS"
ALERT 2,"*** FEHLER!|Dateiendung muß|'.JAS' sein!",2," OK |Abbruch",v2_0%
IF v2_0%=1
GOTO vA_27
ELSE
GOTO vA_26
ENDIF
ENDIF
IF EXIST(v1_11$)=-1
v1_0$="Datei existiert schon!|Ersetzen oder nicht?"
vB_19
IF v2_0%=2
GOTO vA_26
ENDIF
ENDIF
vB_4
OPEN "O",#1,v1_11$
PRINT #1,v1_4$
PRINT #1,v2_5%
FOR v0_0#=1 TO v2_5%
PRINT #1,v5_1$(v0_0#)
PRINT #1,v5_2$(v0_0#)
PRINT #1,v4_0#(v0_0#)
PRINT #1,v6_0%(v0_0#)
PRINT #1,v6_2%(v0_0#)
PRINT #1,v6_1%(v0_0#)
NEXT v0_0#
CLOSE #1
vB_0
vA_26:
RETURN
> PROCEDURE vB_1B
DEFTEXT 1,0,0,13
DEFFILL ,2,4
PBOX 0,19,639,399
RETURN
> PROCEDURE vB_37
v0_1#=415
v0_3#=573
v0_2#=59
v0_4#=100
@vB_1D
v0_5#=436
v0_6#=75
v1_3$="B L Ä T T E R N"
@vB_1E
v0_5#=436
v0_6#=92
v1_3$="Bitte anklicken."
@vB_1E
IF v6_0%(v2_4%)>0
v0_0#=v6_0%(v2_4%)
v0_1#=14
v0_2#=72+v0_0#*16
v0_3#=138
v0_4#=88+v0_0#*16
v0_5#=14
v0_6#=88+v0_0#*16
v1_3$=v5_0$(v0_0#,1)
@vB_2F
ENDIF
IF v6_2%(v2_4%)>0
v0_0#=v6_2%(v2_4%)
v0_1#=144
v0_3#=268
v0_2#=72+v0_0#*16
v0_4#=88+v0_0#*16
v0_5#=144
v0_6#=88+v0_0#*16
v1_3$=v5_0$(v0_0#,2)
@vB_2F
ENDIF
RETURN
> PROCEDURE vB_21
v0_1#=140
v0_2#=88
v0_3#=268
v0_4#=92+v2_3%*16
@vB_1D
v0_5#=144
FOR v0_15#=1 TO v2_3%
v0_6#=88+v0_15#*16
v1_3$=LEFT$(v5_0$(v0_15#,2)+STRING$(15,32),15)
@vB_1E
NEXT v0_15#
RETURN
> PROCEDURE vB_20
v0_1#=10
v0_2#=88
v0_3#=138
v0_4#=92+v2_2%*16
@vB_1D
v0_5#=14
FOR v0_16#=1 TO v2_2%
v0_6#=88+v0_16#*16
v1_3$=LEFT$(v5_0$(v0_16#,1)+STRING$(15,32),15)
@vB_1E
NEXT v0_16#
RETURN
> PROCEDURE vB_F
IF v1_7$<>""
ALERT 2,"Alten Kontenrahmen löschen?|(Vielleicht solltest Du ihn|erst abspeichern?)",2,"Löschen|Abbruch",v2_0%
IF v2_0%=1
FOR v2_3D%=0 TO 99
v5_0$(v2_3D%,1)=""
v5_0$(v2_3D%,2)=""
NEXT v2_3D%
vB_5
ALERT 1,"|Basiskontenrahmen|initialisiert.",1," OK ",v2_0%
ELSE
ALERT 1,"Alter Kontenrahmen bekommt|neuen Namen!",1," OK ",v2_0%
ENDIF
ENDIF
v1_B$="INITIALISIEREN - Kontenrahmen"
v1_C$="Suffix ist automatisch '.KON'! Länge max. 8 Zeichen."
v1_E$="Bei [RETURN] automatisch Basiskontenrahmen. Welchen Kontenrahmen?"
v2_45%=8
@vB_33
v1_14$=v1_F$
vB_38
v1_7$=v1_14$
v1_B$="INITIALISIEREN - Dateipfad für Kontenrahmen"
v1_C$="Unter diesem Namen existierende Datei wird autom. geladen!"
v1_E$="Wo soll der Kontenrahmen geladen und gespeichert werden?"
v2_45%=20
@vB_33
v1_13$=v1_F$
RETURN
> PROCEDURE vB_12
vA_58:
IF v1_7$=""
ALERT 1,"|Erst Kontenrahmen|initialisieren!",1,"OKAY",v2_0%
GOTO vA_28
ENDIF
vB_4B
v1_B$="NEUES KONTO"
v1_C$="Länge des Namens max. 13 Zeichen!"
v1_E$="Bitte Name des neuen Kontos eingeben:"
v2_45%=13
@vB_33
v1_14$=v1_F$
@vB_38
v1_F$=v1_14$
ALERT 2,"Konto wird geführt|(1)-SOLL (2)-HABEN (3)-BEIDES|Bitte wählen!",3,"1|2|3",v2_0%
IF v2_0%=1 OR v2_0%=3
IF v2_3%=18
ALERT 1,"|Kontenrahmen voll!|Kapazität im SOLL erreicht.",1,"Mist!",v2_0%
GOTO vA_28
ENDIF
INC v2_3%
v5_0$(v2_3%,2)=v1_F$
ALERT 2,"Konto ist|(a) BESTANDSKONTO|(b) ERFOLGSKONTO",1,"(a)|(b)",v2_3D%
IF v2_3D%=1
v6_4%(v2_3%,2)=1
ELSE
v6_4%(v2_3%,2)=2
ENDIF
ENDIF
IF v2_0%=2 OR v2_0%=3
IF v2_2%=18
ALERT 1,"|Kontenrahmen voll!|Kapazität im HABEN erreicht.",1,"Mist!",v2_0%
GOTO vA_28
ENDIF
INC v2_2%
v5_0$(v2_2%,1)=v1_F$
ALERT 2,"Konto ist|(a) BESTANDSKONTO|(b) ERFOLGSKONTO",1,"(a)|(b)",v2_3D%
IF v2_3D%=1
v6_4%(v2_2%,1)=1
ELSE
v6_4%(v2_2%,1)=2
ENDIF
ENDIF
vB_4B
v1_0$="|Weiter neue Konten|eingeben?"
vB_19
IF v2_0%=1
GOTO vA_58
ENDIF
vA_28:
RETURN
> PROCEDURE vB_E
v1_B$="ÜBERSCHRIFT"
v1_C$="Z.B.: Name, Adresse, Steuernummer etc. max. 70 Zeichen."
v1_E$="Überschrift wird als Kopf auf den Abschluß gesetzt:"
v2_45%=70
@vB_33
v1_15$=v1_F$
RETURN
> PROCEDURE vB_8
ALERT 1,"JOURNAL-AS V 1.01|(C) 10/1988 by Ingmar Brunken|Mauritiussteinweg 1|5000 KÖLN 1",1,"OKAY",v2_0%
ALERT 1,"Last Update 31/08/89 00:39|Compatible NEC Pxx|Update F.R.G. 0221-215976|German Configuration",1,"OKAY",v2_0%
ALERT 2,"|Kurzanleitung ausgeben ?",2," JA |NEIN",v2_0%
IF v2_0%=2
GOTO vA_2A
ENDIF
ALERT 2,"|Drucker fertig ?",2," JA |NEIN",v2_0%
IF v2_0%=2
GOTO vA_2A
ENDIF
LPRINT "JOURNAL-AS V 1.01"
LPRINT "(C) 10/1988 by Ingmar P. Brunken"
LPRINT "Last Update 31/08/89 00:39"
LPRINT "Update Hot Line F.R.G. 0221-215976"
LPRINT "Mauritiussteinweg 1 - 5000 KÖLN 1"
LPRINT ""
LPRINT "Dieses Programm ist voll GEM-unterstützt und bietet alle Möglichkeiten"
LPRINT "optisch in der Menüleiste an. Zudem werden alle erforderlichen Vorgänge"
LPRINT "kommenntiert."
LPRINT
LPRINT "Das Programm erstellt auch für kaufmännisch Ungeübte eine saubere "
LPRINT "Buchführung für ein kleines Geschäft. Es ist damit optimal für "
LPRINT "Selbständige, die ihr Gewerbe nebenberuflich betreiben oder deren"
LPRINT "Geschäft keine solchen Ausmaße angenommen hat, daß ein professioneller"
LPRINT "Buchhalter angestellt werden kann.-"
LPRINT
LPRINT "Zuerst erstellen Sie einen Kontenplan für Ihr Geschäft. Das notwendige"
LPRINT "Wissen hierzu erlesen Sie sich in einem Ratgeber zur Buchhaltung,"
LPRINT "erfragen es bei Ihrem Steuerberater, übernehmen es aus Ihrer bisherigen"
LPRINT "Buchführung oder rufen mich an. Ich stehe Ihnen gerne zur Verfügung und"
LPRINT "installiere das System individuell auf Ihr Geschäft. Bitte haben Sie unter"
LPRINT "diesen Umständen jedoch Verständnis, daß ich ein kleines Honorar dafür"
LPRINT "berechnen muß."
LPRINT
LPRINT "Nun die Menüpunkte kurz im Einzelnen:"
LPRINT "1) INFO habebn Sie bereits entdeckt."
LPRINT "2) DATEN ...initialisieren"
LPRINT "Damit können Sie einen neuen Datensatz definieren, z.B. alle Daten"
LPRINT "für ein bestimmtes jahr, für das die Buchhaltung vorgenommen werden"
LPRINT "soll. Dieser Datensatz wird bearbeitet. Sie müssen nur initialieren,"
LPRINT "wenn Sie einen neuen Datensatz beginnen wollen. Bereits eingegebene"
LPRINT "Datensätze werden mit"
LPRINT "DATEN ...laden"
LPRINT "geladen und sind damit initialisiert."
LPRINT "Fertig bearbeitete Datensätze werden mit"
LPRINT "DATEN ...speichern"
LPRINT "unter einem von Ihnen anzugebenden Namen auf ein von Ihnen anzugebendes"
LPRINT "Laufwerk (auch Festplatte) abgespeichert. Abgespeichert werden immer "
LPRINT "Die Daten der Belege. Abschlüsse werden nie abgespeichert, sie können "
LPRINT "nur angesehen oder ausgedruckt werden. Aus denselben Belegen errechnet das"
LPRINT "Programm Ihnen natürlich aber jederzeit einen bestimmten Abschluß, so daß"
LPRINT "dieser indirekt natürlich auch in Form der belege gespeichert ist."
LPRINT "DATEN ...Editor"
LPRINT "ist eigentlich DER zentrale Menüpunkt. Er dient dazu, alle Belege, die sich"
LPRINT "in Ihrem Geschäft gesammelt haben, einzugeben, zu ändern, anzusehen und zu"
LPRINT "löschen. Sie werden ein sehr umfangreiches GEM-gesteuertes Kontrollfeld"
LPRINT "vorfinden, daß sich selbst erklärt. In der Eingabebox rechts oben können"
LPRINT "BLÄTTERN, indem Sie auf die PLAY-Taste links (zurück) oder rechts"
LPRINT "(vorwärts) drücken. Nur die Eingaben TEXT und BETRAG müssen mit [RETURN]"
LPRINT "abgeschlossen werden. Ansonsten sind die invers dargestellten Felder"
LPRINT "jeweils aktiv. Sie werden links den von Ihnen eingegebenen Kontenrahmen"
LPRINT "speziell für Ihr Geschäft finden. Aus diesem Grund ist dieser Menüpunkt"
LPRINT "auch nur in Verbindung mit einem aktivierten Kontenrahmen funktionstüchtig,"
LPRINT "dessen Namen und dessen Konten Sie immer auf dem Grundbildschirm des"
LPRINT "Programmes finden."
LPRINT "Komforthalber ist in der Eingabebox rechts oben ein WEGWEISER integriert,"
LPRINT "der Ihnen immer angibt, welcher Schritt als nächstes zu tun ist."
LPRINT "Zudem finden Sie rechts unten vier BUTTONS, in denen Ihnen ein"
LPRINT "TASCHENRECHNER-TOOL, ein BELEGE-SUCHEN-TOOL, ein LÖSCHEN-TOOL"
LPRINT "und ein BELEGE-SORTIEREN-TOOL angeboten wird. Der Toll zum Sortieren"
LPRINT "der Belege ist immer erforderlich, wenn Sie die Eingabe abschließen"
LPRINT "wollen. Die Belege werden dann automatisch sortiert."
LPRINT "Es ist daher leicht ersichtlich, daß es am aller einfachsten ist, Sie"
LPRINT "sammeln Ihre Belege in einem Schuhkarton, bis der Termin Ihrer Steuer-"
LPRINT "erklärung näherrückt und das Jehr zuende ist. Das geben Sie einfach die"
LPRINT "Belege in beliebiger Reiehenfolge ein und lassen sich ihr Journal"
LPRINT "erstellen."
LPRINT "Die vorgegeben Basiskonten sind dabei obligatorisch, sie kommen in"
LPRINT "einem ordentlichen Geschäft nicht ohne sie aus (Kasse, Sachanlagen etc.)."
LPRINT
LPRINT "2) PARAMETER ...Datum"
LPRINT "Geben Sie hier das aktuelle Datum ein. Es wird bei Ausdrucken übernommen,"
LPRINT "so daß Sie immer im Bilde sind, welches die letzte Buchführung war."
LPRINT "PARAMETER ...Name"
LPRINT "geben Sie ein, damit Ihr Ausdruck Ihren Namen trägt. Hier können Sie"
LPRINT "bereits auch Ihre Steuernummer vorsehen,"
LPRINT
LPRINT "PARAMETER ---Kontenrahmen--- ...initialisieren ...neues Konto"
LPRINT "PARAMETER ---Kontenrahmen--- ...Konto löschen ...umsortieren"
LPRINT "Wie bereits unter 1) erläutert, geben Sie hier den für Sie individuellen"
LPRINT "Kontenrahmen ein (erst initialisieren, dann neues Konto). Änderungen"
LPRINT "können Sie mit 'umsortieren' und 'löschen' vornehmen."
LPRINT "PARAMETER ---Kontenrahmen--- ...laden ...speichern"
LPRINT "sind selbstverständliche Datenaktionsbefehle zum laden bereits "
LPRINT "vorgefertiger oder speichern gerade erstellter Kontenrahmen."
LPRINT "PARAMETER ---Kontenrahmen--- ...zeigen"
LPRINT "schließlich zeigt Ihnen Ihren Kontenrahmen. 'B' steht dabei"
LPRINT "für Bestandskonto, 'E' für Erfolgskonto."
LPRINT
LPRINT "3) ARBEITEN ...Abschluß"
LPRINT "erstellt vollautomatisch ein Journal mit Vorsteuer und Salden etc."
LPRINT "Vorher werden Sie nach Angaben über die Reihenfolge der Konten im"
LPRINT "Ausdruck und über die Anfangsbestände der Bestandskonten befragt, die"
LPRINT "Sie jeweils aus den Endbeständen des Vorjahresabschlusses übernehmen."
LPRINT "Bei Geschäftsgründung sind die Anfansbestände natürlich je 0,-- DM."
LPRINT
LPRINT "ARBEITEN ...G&V-Rechnung"
LPRINT "erstellt Ihnen vollautomatisch eine 1-a-Gewinn-und-Verlust-Rechnung"
LPRINT "mit Berücksichtigung evrtl. pauschalen Telefon- und KFZ-Kosten."
LPRINT
LPRINT "ARBEITEN ...Anlagespiegel"
LPRINT "schreibt Ihre Sachanlagen regulär (linear) ab und unterscheidet "
LPRINT "selbständig innerhalb eines Jahres absetzbare Sachanlagen von"
LPRINT "längerfristig abschreibbaren. Bei voller Abschreibung bleibt eine"
LPRINT "Mark als Erinnerungswert stehen, wie in der Buchhaltung üblich."
LPRINT
LPRINT "Alle diese Berechnungen entsprechen ordentlicher regulärer Buchführung."
LPRINT
LPRINT "4) AUSGABE ...Bildschirm"
LPRINT "zeigt Ihnen die gerade aktuelle Berechnung (gekennzeichnet durch"
LPRINT "einen Haken im ARBEITEN-Menü) auf dem Bildschirm unter voller GEM-"
LPRINT "Einbindung ind Window-Technik. Sie können blättern und walten, bis Sie"
LPRINT "mit dem Ergebnis zufrieden sind und Papier opfern wollen."
LPRINT "AUSGABE ...Drucker"
LPRINT "bringt Ihre Buchhaltung zu Papier."
LPRINT "AUSGABE ...Journalform"
LPRINT "ist in dieser Version des Programmes obligatorisch."
LPRINT "Optional ist die AUSGABE ...Kontenform vorgesehen, die eine Buchhaltung"
LPRINT "auch für größere Geschäfte ermöglichen wird."
LPRINT
LPRINT "Möge Ihnen dieses Programm eine Menge"
LPRINT "GELD (Steuerberater),"
LPRINT "ARZTBESUCHE (Nervenzusammenbruch: Buchhaltung klappt nicht: SUMME IST FALSCH!)"
LPRINT "ZEIT (32 Bleistifte verbraucht)"
LPRINT "ersparen!!"
LPRINT
LPRINT "Drei Bitten habe ich noch (ach, so wenig??):"
LPRINT "1) SCHICKEN SIE MIR KEIN GELD. PUBLIC DOMAIN SOLL GRATIS BLEIBEN."
LPRINT "2) SCHICKEN SIE MIR LIEBER DIE KOPIE EINES GUTEN PD-PROGRAMMES,"
LPRINT "FALLS SIE MAL EINS SCHREIBEN"
LPRINT "3) SCHICKEN SIE MIR KRITIK. ICH BELOHNE SIE MIT DEM NEUESTEN UPDATE!"
LPRINT
LPRINT "INGMAR P. BRUNKEN"
LPRINT
LPRINT "P.S. WENN SIE DIE HERRLICHEN ERFOLGSSTATISTIK-GRAFIKEN AUSDRUCKEN"
LPRINT "WOLLEN, LADEN SIE VORHER DEN NEC-P6-HARDCOPY-TREIBER IND DRUCKEN SIE"
LPRINT "IN IHREM GEWÜNSCHTEN FORMAT MIT ALTERNATE+HELP AUS!"
vA_2A:
RETURN
> PROCEDURE vB_10
FILESELECT v1_13$+"\*.KON",v1_7$,v1_11$
IF v1_11$="" OR v1_11$="\"
v1_19$=""
GOTO vA_2C
ENDIF
IF RIGHT$(v1_11$,3)<>"KON"
GOTO vA_2C
ENDIF
IF EXIST(v1_11$)=0
ALERT 1,"|Datei existiert nicht.",1,"Huh?",v2_0%
GOTO vA_2C
ENDIF
v1_7$=RIGHT$(v1_11$,12)
v1_13$=LEFT$(v1_11$,INSTR(v1_11$,v1_7$)-1)
OPEN "I",#1,v1_11$
INPUT #1,v2_2%
INPUT #1,v2_3%
FOR v0_0#=1 TO v2_2%
INPUT #1,v5_0$(v0_0#,1)
INPUT #1,v6_4%(v0_0#,1)
NEXT v0_0#
FOR v0_0#=1 TO v2_3%
INPUT #1,v5_0$(v0_0#,2)
INPUT #1,v6_4%(v0_0#,2)
NEXT v0_0#
CLOSE #1
vA_2C:
RETURN
> PROCEDURE vB_11
FILESELECT v1_13$+"\*.KON",v1_7$,v1_11$
IF v1_11$="" OR v1_11$="\"
v1_19$=""
GOTO vA_2D
ENDIF
IF RIGHT$(v1_11$,3)<>"KON"
GOTO vA_2D
ENDIF
OPEN "O",#1,v1_11$
PRINT #1,v2_2%
PRINT #1,v2_3%
FOR v0_0#=1 TO v2_2%
PRINT #1,v5_0$(v0_0#,1)
PRINT #1,v6_4%(v0_0#,1)
NEXT v0_0#
FOR v0_0#=1 TO v2_3%
PRINT #1,v5_0$(v0_0#,2)
PRINT #1,v6_4%(v0_0#,2)
NEXT v0_0#
CLOSE #1
vA_2D:
RETURN
> PROCEDURE vB_13
IF v1_7$=""
ALERT 1,"|Erst Kontenrahmen|initialisieren!",1,"OKAY",v2_0%
GOTO vA_2E
ENDIF
vA_2F:
DEFFILL ,2,4
PBOX 0,19,639,399
IF v2_3%=0 AND v2_2%=0
ALERT 1,"|Keine Konten gespeichert!",1,"Hmpf.",v2_0%
GOTO vA_2E
ENDIF
vB_4B
v1_B$="KONTO LÖSCHEN"
v1_C$="Bitte exakt dieselbe Schreibweise verwenden!"
v1_E$="Bitte Name des zu löschenden Kontos eingeben:"
v2_45%=13
@vB_33
v0_0#=1
v1_14$=v1_F$
@vB_38
IF v1_14$="VORSTEUER" OR v1_14$="SACHANLAGEN"
ALERT 1,"Nö, lösche ich nicht, Du|Saboteur! Das Konto brauche|ich noch! VORSTEUER und|SACHANLAGEN sind Zwang.",1," OK ",v2_0%
GOTO vA_30
ENDIF
v1_F$=v1_14$
v0_1E#=FALSE
WHILE v0_0#<=v2_2%
IF v5_0$(v0_0#,1)=v1_F$
ALERT 2,"|'"+v1_F$+"' löschen?",2,"Löschen|Abbruch",v2_0%
IF v2_0%<>1
GOTO vA_30
ENDIF
v3_0!=TRUE
DEC v2_2%
FOR v0_E#=v0_0# TO v2_2%
v5_0$(v0_E#,1)=v5_0$(v0_E#+1,1)
NEXT v0_E#
v5_0$(v2_2%+1,1)=""
GOTO vA_31
ENDIF
INC v0_0#
WEND
vA_31:
v0_0#=1
WHILE v0_0#<=v2_3%
IF v5_0$(v0_0#,2)=v1_F$
IF NOT v3_0!
ALERT 2,"|'"+v1_F$+"' löschen?",2,"Löschen|Abbruch",v2_0%
ENDIF
DEC v2_3%
FOR v0_E#=v0_0# TO v2_3%
v5_0$(v0_E#,2)=v5_0$(v0_E#+1,2)
NEXT v0_E#
v5_0$(v2_3%+1,2)=""
GOTO vA_30
ENDIF
INC v0_0#
WEND
ALERT 3,"Konto '"+v1_F$+"'|nicht gefunden.|Neuer Versuch?",2,"Ja |Nein",v2_0%
IF v2_0%=2
GOTO vA_2E
ELSE
GOTO vA_2F
ENDIF
vA_30:
ALERT 2,"|Weiter löschen?",2,"Ja |Nein",v2_0%
IF v2_0%=1
GOTO vA_2F
ENDIF
IF v2_0%=2
GOTO vA_2E
ENDIF
GOTO vA_30
vA_2E:
RETURN
> PROCEDURE vB_2D
IF v1_4$="" OR v2_5%<2
ALERT 1,"Wie wär's, Kumpel,|erst 'mal'n Paar DATEN|eingeben, oder???",1,"Yeah!",v2_0%
GOTO vA_32
ENDIF
@vB_4
vA_33:
IF v4_0#(v2_5%)=0
DEC v2_5%
GOTO vA_33
ENDIF
FOR v2_D%=1 TO v2_5%
v1_5$=v5_1$(v2_D%)
v1_27$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
IF LEN(v1_27$)=1
v1_27$="0"+v1_27$
ENDIF
v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
v1_26$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
IF LEN(v1_26$)=1
v1_26$="0"+v1_26$
ENDIF
v1_20$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
v6_7%(v2_D%)=v2_D%
v6_8%(v2_D%)=VAL(v1_20$+v1_26$+v1_27$)
v5_F$(v2_D%)=v1_27$+"."+v1_26$+"."+v1_20$
v5_10$(v2_D%)=v5_2$(v2_D%)
v4_6#(v2_D%)=v4_0#(v2_D%)
v6_A%(v2_D%)=v6_1%(v2_D%)
v6_B%(v2_D%)=v6_0%(v2_D%)
v6_C%(v2_D%)=v6_2%(v2_D%)
NEXT v2_D%
SSORT v6_8%(-),v2_5%+1,v6_7%()
FOR v2_D%=1 TO v2_5%
v5_1$(v2_D%)=v5_F$(v6_7%(v2_D%))
v5_2$(v2_D%)=v5_10$(v6_7%(v2_D%))
v4_0#(v2_D%)=v4_6#(v6_7%(v2_D%))
v6_1%(v2_D%)=v6_A%(v6_7%(v2_D%))
v6_0%(v2_D%)=v6_B%(v6_7%(v2_D%))
v6_2%(v2_D%)=v6_C%(v6_7%(v2_D%))
NEXT v2_D%
@vB_0
ALERT 1,"Datei '"+v1_4$+"'|sortiert...",1,"Gut.",v2_0%
vA_32:
@vB_0
RETURN
> PROCEDURE vB_39 !<== Noch auf andere Drucker erweitern
IF v1_7$=""
ALERT 1,"Erst Kontenrahmen|definieren!|Was, dazu auch?",1,"Jaja.",v2_0%
GOTO vA_34
ENDIF
DEFTEXT 1,0,0,13
v1_B$="DRUCKERFORMAT"
v2_E%=v2_2%+v2_3%
v2_F%=v2_E%-2
v2_10%=v2_E%-4
v2_11%=v2_E%-5
v2_12%=v2_E%-7
vA_35:
IF v2_F%>0
v2_F%=1+INT(((v2_E%-3)/6)+1)
ELSE
v2_F%=1
ENDIF
IF v2_10%>0
v2_10%=1+INT(((v2_E%-4)/8)+1)
ELSE
v2_10%=1
ENDIF
IF v2_11%>0
v2_11%=1+INT(((v2_E%-6)/9)+1)
ELSE
v2_11%=1
ENDIF
IF v2_12%>0
v2_12%=1+INT(((v2_E%-7)/11)+1)
ELSE
v2_12%=1
ENDIF
v1_C$="Zeichen pro Zeile/# der erf. A4-Seiten: 96/"+STR$(v2_F%)+" 120/"+STR$(v2_10%)+" 137/"+STR$(v2_11%)+" 160/"+STR$(v2_12%)
v1_E$="Alle Angaben bzgl. des aktuellen Kontenrahmens. Bitte wählen:"
IF LEN(v1_B$)>LEN(v1_C$)
v1_D$=v1_B$
ELSE
v1_D$=v1_C$
ENDIF
IF LEN(v1_E$)>LEN(v1_D$)
v1_D$=v1_E$
ENDIF
v0_1#=(640-LEN(v1_D$)*8)/2-6
v0_3#=640-v0_1#
v0_2#=120
v0_4#=280
v0_12#=v0_3#
v0_13#=v0_1#
@vB_1D
@vB_24
' xp3,xp4 Außenmaße der randbox
v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
v0_6#=152
v0_1#=v0_5#
v0_3#=v0_1#+LEN(v1_B$)*8
v0_2#=138
v0_4#=152
v1_3$=v1_B$
@vB_2E
v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
v0_6#=184
v1_3$=v1_C$
@vB_1E
v0_5#=(v0_12#-v0_13#-LEN(v1_E$)*8)/2+v0_13#
v0_6#=200
v1_3$=v1_E$
@vB_1E
v0_4#=242
v0_2#=222
v0_1#=95
v0_3#=170
v0_6#=237
v0_5#=124
v1_3$="96"
@vB_1D
@vB_1E
v0_1#=220
v0_3#=295
v0_5#=245
v1_3$="120"
@vB_1D
@vB_1E
v0_1#=345
v0_3#=420
v0_5#=370
v1_3$="137"
@vB_1D
@vB_1E
v0_1#=470
v0_3#=545
v0_5#=495
v1_3$="160"
@vB_1D
@vB_1E
@vB_36
REPEAT
MOUSE v2_9%,v2_A%,v2_B%
IF v2_A%>222 AND v2_A%<242
IF v2_9%>95 AND v2_9%<170 AND v1_3$<>"96"
@vB_1D
@vB_1E
v0_1#=95
v0_3#=170
v0_5#=124
v1_3$="96"
@vB_36
ENDIF
IF v2_9%>220 AND v2_9%<295 AND v1_3$<>"120"
@vB_1D
@vB_1E
v0_1#=220
v0_3#=295
v0_5#=245
v1_3$="120"
@vB_36
ENDIF
IF v2_9%>345 AND v2_9%<420 AND v1_3$<>"137"
@vB_1D
@vB_1E
v0_1#=345
v0_3#=420
v0_5#=370
v1_3$="137"
@vB_36
ENDIF
IF v2_9%>470 AND v2_9%<545 AND v1_3$<>"160"
@vB_1D
@vB_1E
v0_1#=470
v0_3#=545
v0_5#=495
v1_3$="160"
@vB_36
ENDIF
ENDIF
UNTIL v2_B%=1
v1_16$=v1_3$
IF v1_3$="96"
v1_17$=CHR$(18)+CHR$(27)+CHR$(77)
v2_13%=v2_F%
ELSE
IF v1_3$="120"
v1_17$=CHR$(18)+CHR$(27)+CHR$(103)
v2_13%=v2_10%
ELSE
IF v1_3$="137"
v1_17$=CHR$(27)+CHR$(15)+CHR$(27)+CHR$(80)
v2_13%=v2_11%
ELSE
IF v1_3$="160"
v1_17$=CHR$(27)+CHR$(15)+CHR$(27)+CHR$(103)
v2_13%=v2_12%
ENDIF
ENDIF
ENDIF
ENDIF
DEFFILL ,2,4
vA_34:
PBOX 0,19,639,399
RETURN
> PROCEDURE vB_16
IF v1_7$=""
ALERT 1,"|Erst Kontenrahmen|initialisieren!",1," OK ",v2_0%
GOTO vA_36
ENDIF
vA_37:
DEFFILL ,2,4
PBOX 0,19,639,399
IF v2_3%=0 AND v2_2%=0
ALERT 1,"|Keine Konten gespeichert!",1,"Hmpf.",v2_0%
GOTO vA_36
ENDIF
IF v1_4$="" OR v2_5%<2
ALERT 3,"Sag 'mal, also a|paar Belege eingeben|mußt scho', gell?!",1,"Firti!",v2_0%
GOTO vA_36
ENDIF
IF v2_1%<=-1 ! Abschluß ist schon ausgeführt
ALERT 2,"Neuer Abschluß?Alten|Abschluß löschen oder|nur zurückrufen?",1,"Löschen|Zurück",v2_0%
IF v2_0%=1
ARRAYFILL v4_1#(),0
ARRAYFILL v4_2#(),0
ARRAYFILL v6_3%(),0
FOR v2_3D%=0 TO 2000
v5_5$(v2_3D%)=""
v5_3$(v2_3D%)=""
NEXT v2_3D%
ELSE
v2_1%=-1
ALERT 1,"|Ausgabeobjekt: ABSCHLUSS.",1," OKAY ",v2_0%
GOTO vA_36
ENDIF
ENDIF
v2_14%=0
v0_8#=0
v0_1D#=0
ALERT 2,"Reihenfolge der Konten|im Journal definieren (NEU)|oder wie im EDITOR (ALT)?",2," NEU | ALT ",v2_0%
IF v2_0%=1
v1_1E$="NEU"
ELSE
v1_1E$="ALT"
ENDIF
DO
INC v2_14%
vA_38:
EXIT IF v0_8#=v2_2% AND v0_1D#=v2_3%
IF v1_1E$="NEU"
vB_4B
v1_B$="KONTENREIHENFOLGE IM ABSCHLUSSBOGEN"
v1_C$="Bitte exakt dieselbe Schreibweise verwenden!"
v1_E$="Name des "+STR$(v2_14%)+".Kontos eingeben (v.l.n.r.):"
v2_45%=13
@vB_33
v1_14$=v1_F$
@vB_38
ELSE
IF v0_1D#<v2_3%
v2_3D%=1
vA_4A:
IF VAL(LEFT$(v5_0$(v2_3D%,2),2))=0
v1_14$=v5_0$(v2_3D%,2)
ELSE
INC v2_3D%
GOTO vA_4A
ENDIF
ELSE
v2_3D%=1
vA_4B:
IF VAL(LEFT$(v5_0$(v2_3D%,1),2))=0
v1_14$=v5_0$(v2_3D%,1)
ELSE
INC v2_3D%
GOTO vA_4B
ENDIF
ENDIF
ENDIF
IF v1_14$="VORSTEUER"
v2_15%=v2_14%
ENDIF
SWAP v1_F$,v1_14$
v0_1E#=0
v1_5$=LEFT$(" ",2-LEN(STR$(v2_14%)))+STR$(v2_14%)
FOR v2_D%=1 TO v2_3%
IF v5_0$(v2_D%,2)=v1_F$
IF v6_4%(v2_D%,2)=1 ! Eröffnungsbestand nur bei Bestandskonto
SWAP v1_F$,v1_14$
v1_B$="ERÖFFNUNGSBESTAND DES BESTANDSKONTOS '"+v1_14$+"'"
v1_C$="Betrag ist Endbestand des Kontos aus der Vorperiode."
v1_E$="Bitte Betrag eingeben:"
v2_45%=13
@vB_33
IF VAL(v1_F$)<=0 OR VAL(v1_F$)>1E+07
v4_2#(v2_14%)=0
ENDIF
SWAP v1_14$,v1_F$
' Rucksack nötig, da Ungenauigkeiten im Bereich 10^-12 eingetreten sind!
v0_1F#=INT(VAL(v1_14$)*100+0.1)/100
ADD v4_2#(v2_14%),v0_1F#
ENDIF
v5_0$(v2_D%,2)=v1_5$+v5_0$(v2_D%,2)
v4_1#(v2_14%)=v2_D%+0.5
v0_1E#=-1
INC v0_1D#
ENDIF
NEXT v2_D%
FOR v2_D%=1 TO v2_2%
IF v5_0$(v2_D%,1)=v1_F$
IF v6_4%(v2_D%,1)=1 ! Eröffnungsbestand nur bei Bestandskonto
IF v0_1E#<>-1
SWAP v1_F$,v1_14$
v1_B$="ERÖFFNUNGSBESTAND DES BESTANDSKONTOS '"+v1_14$+"'"
v1_C$="Betrag ist Endbestand des Kontos aus der Vorperiode."
v1_E$="Bitte Betrag eingeben:"
v2_45%=13
@vB_33
IF VAL(v1_F$)<=0 OR VAL(v1_F$)>1E+07
v4_2#(v2_14%)=0
ENDIF
SWAP v1_14$,v1_F$
' Rucksack nötig, da Ungenauigkeiten im Bereich 10^-12 eingetreten sind!
v0_1F#=INT(VAL(v1_14$)*100+0.1)/100
ADD v4_2#(v2_14%),v0_1F#
ELSE
INC v2_14%
v1_5$=LEFT$(" ",2-LEN(STR$(v2_14%)))+STR$(v2_14%)
IF v1_14$="SACHANLAGEN"
v2_0%=1
ELSE
ALERT 2,"|Kontostand befindet|sich im:",2,"SOLL|HABEN",v2_0%
ENDIF
IF v2_0%=2
SUB v4_2#(v2_14%-1),v0_1F#
ADD v4_2#(v2_14%),v0_1F#
v1_14$=""
ENDIF
v0_1F#=0
ENDIF
v1_14$=""
ELSE IF v0_1E#=-1
INC v2_14%
v1_5$=LEFT$(" ",2-LEN(STR$(v2_14%)))+STR$(v2_14%)
ENDIF
v5_0$(v2_D%,1)=v1_5$+v5_0$(v2_D%,1)
v4_1#(v2_14%)=v2_D%
v0_1E#=-1
INC v0_8#
ENDIF
IF v1_14$="SACHANLAGEN"
v2_3E%=v2_14%-1
v0_23#=v4_2#(v2_14%-1)
ENDIF
NEXT v2_D%
IF v0_1E#=0
ALERT 1,"|Konto unbekannt.",1,"WEITER|ABBRUCH",v2_0%
IF v2_0%=1
GOTO vA_38
ELSE
GOTO vA_36
ENDIF
ENDIF
LOOP
@vB_4
FOR v2_D%=1 TO v2_2%
v6_3%(v2_D%,1)=VAL(LEFT$(v5_0$(v2_D%,1),2))
v5_0$(v2_D%,1)=RIGHT$(v5_0$(v2_D%,1),LEN(v5_0$(v2_D%,1))-2)
NEXT v2_D%
FOR v2_D%=1 TO v2_3%
v6_3%(v2_D%,2)=VAL(LEFT$(v5_0$(v2_D%,2),2))
v5_0$(v2_D%,2)=RIGHT$(v5_0$(v2_D%,2),LEN(v5_0$(v2_D%,2))-2)
NEXT v2_D%
v5_3$(3)="LfdNr"+CHR$(179)+"Datum "+CHR$(179)+"Buchungstext "+CHR$(186)+"Summe "+CHR$(228)+" "+CHR$(179)+"MWSt"+CHR$(186)
v5_3$(4)=" [#] "+CHR$(179)+"tt.mm.jj"+CHR$(179)+STRING$(26,32)+CHR$(186)+" [DM] "+CHR$(179)+"[%] "+CHR$(186)
v5_3$(5)=STRING$(5,205)+CHR$(216)+STRING$(8,205)+CHR$(216)+STRING$(26,205)+CHR$(206)+STRING$(9,205)+CHR$(216)+STRING$(4,205)+CHR$(206)
v1_18$=" "+CHR$(179)+" "+CHR$(179)+".........................."+CHR$(186)+" "+CHR$(179)+" "+CHR$(186)
v5_3$(6)="-----"+CHR$(179)+"--------"+CHR$(179)+"ERÖFFNUNGSBESTÄNDE "+CHR$(186)+"---------"+CHR$(179)+"----"+CHR$(186)
' Kontennamen in den Tabellenkopf
FOR v2_D%=1 TO v2_2%+v2_3%
IF v4_1#(v2_D%)=INT(v4_1#(v2_D%))
' Haben-Konto
v5_3$(3)=v5_3$(3)+v5_0$(v4_1#(v2_D%),1)+STRING$(13-LEN(v5_0$(v4_1#(v2_D%),1)),32)+CHR$(186)
v5_3$(4)=v5_3$(4)+"HABEN [DM] "+CHR$(186)
v5_3$(5)=v5_3$(5)+STRING$(13,205)+CHR$(206)
v5_3$(6)=v5_3$(6)+" "+CHR$(186)
v1_18$=v1_18$+" "+CHR$(186)
ELSE
' Soll_konto
IF v4_1#(v2_D%+1)=INT(v4_1#(v2_D%+1)) AND v5_0$(v4_1#(v2_D%),2)=v5_0$(v4_1#(v2_D%+1),1)
v5_3$(3)=v5_3$(3)+v5_0$(INT(v4_1#(v2_D%)),2)+STRING$(13-LEN(v5_0$(INT(v4_1#(v2_D%)),2)),32)+CHR$(179)
v5_3$(4)=v5_3$(4)+"SOLL [DM] "+CHR$(179)
v5_3$(5)=v5_3$(5)+STRING$(13,205)+CHR$(216)
v5_3$(6)=v5_3$(6)+" "+CHR$(179)
v1_18$=v1_18$+" "+CHR$(179)
ELSE
v5_3$(3)=v5_3$(3)+v5_0$(INT(v4_1#(v2_D%)),2)+STRING$(13-LEN(v5_0$(INT(v4_1#(v2_D%)),2)),32)+CHR$(186)
v5_3$(4)=v5_3$(4)+"SOLL [DM] "+CHR$(186)
v5_3$(5)=v5_3$(5)+STRING$(13,205)+CHR$(206)
v5_3$(6)=v5_3$(6)+" "+CHR$(186)
v1_18$=v1_18$+" "+CHR$(186)
ENDIF
ENDIF
NEXT v2_D%
' aform$ ist Zeilen-Maske für Journal
v5_3$(1)=v1_15$+RIGHT$(STRING$(LEN(v1_18$),32),LEN(v1_18$)-LEN(v1_15$))
v5_3$(2)=STRING$(LEN(v1_18$),32)
v2_16%=0
DO
INC v2_16%
v5_3$(v2_16%*66-65)=v5_3$(1)
v5_3$(v2_16%*66-64)=v5_3$(2)
v5_3$(v2_16%*66-63)=v5_3$(3)
v5_3$(v2_16%*66-62)=v5_3$(4)
v5_3$(v2_16%*66-61)=v5_3$(5)
IF v2_16%>1
v5_3$(v2_16%*66-60)="ÜBERTRAG VON LETZTER SEITE: "+RIGHT$(v5_3$((v2_16%-1)*66),LEN(v5_3$((v2_16%-1)*66))-35)
ELSE
' Eröffnungsbestände
FOR v2_7%=1 TO v2_3%+v2_2%
IF v4_2#(v2_7%)=0
v1_5$="-------------"
ELSE
vB_49(v4_2#(v2_7%))
v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
ENDIF
v5_3$(6)=LEFT$(v5_3$(6),56+v2_7%*14-LEN(v1_5$))+v1_5$+RIGHT$(v5_3$(6),LEN(v5_3$(6))-56-v2_7%*14)
NEXT v2_7%
ENDIF
v5_3$(v2_16%*66-1)=v5_3$(5)
FOR v2_D%=v2_16%*66-59 TO v2_16%*66-2
v5_3$(v2_D%)=v1_18$
v2_17%=v2_D%-6*v2_16%-(v2_16%-1)*2
EXIT IF v2_17%>v2_5%
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),5-LEN(STR$(v2_17%)))+STR$(v2_17%)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-5)
' Jahreszahl von jjjj auf jj kürzen
IF INSTR(RIGHT$(v5_1$(v2_17%),4),".")=0
v1_5$=LEFT$(v5_1$(v2_17%),3+INSTR(RIGHT$(v5_1$(v2_17%),LEN(v5_1$(v2_17%))-3),"."))+RIGHT$(v5_1$(v2_17%),2)
ELSE
v1_5$=v5_1$(v2_17%)
ENDIF
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),14-LEN(v1_5$))+v1_5$+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-14)
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),15)+v5_2$(v2_17%)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-15-LEN(v5_2$(v2_17%)))
vB_49(v4_0#(v2_17%))
v1_5$=v1_21$
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),51-LEN(v1_5$))+v1_5$+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-51)
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),55-LEN(STR$(v6_1%(v2_17%))))+STR$(v6_1%(v2_17%))+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-55)
IF v6_1%(v2_17%)=0
v2_18%=v6_3%(v6_0%(v2_17%),1)
v0_20#=v4_0#(v2_17%)
ADD v4_2#(v2_18%),v0_20#
@vB_3A
v2_18%=v6_3%(v6_2%(v2_17%),2)
v0_20#=v4_0#(v2_17%)
ADD v4_2#(v2_18%),v0_20#
@vB_3A
ELSE
v2_18%=v6_3%(v6_0%(v2_17%),1)
v0_20#=v4_0#(v2_17%)
ADD v4_2#(v2_18%),v0_20#
@vB_3A
v2_18%=v2_15%
v0_20#=INT(v4_0#(v2_17%)*v6_1%(v2_17%)/(100+v6_1%(v2_17%))*100+0.5)/100
ADD v4_2#(v2_18%),v0_20#
@vB_3A
v2_18%=v6_3%(v6_2%(v2_17%),2)
v0_20#=v4_0#(v2_17%)-v0_20#
ADD v4_2#(v2_18%),v0_20#
@vB_3A
ENDIF
NEXT v2_D%
EXIT IF v2_17%>v2_5%
v5_3$(v2_16%*66)="ÜBERTRAG AN NÄCHSTE SEITE: "+RIGHT$(v1_18$,LEN(v1_18$)-56)
' Nächste Schleife wegen Saldo bei SOLL+HABEN-Kontos
FOR v2_7%=57 TO 57+(v2_3%+v2_2%)*14-28 STEP 14
IF MID$(v1_18$,v2_7%+14,1)=CHR$(179)
' Dann ist es nämlich ein im SOLL und HABEN geführtes Konto!
IF v4_2#((v2_7%-43)/14)>v4_2#((v2_7%-29)/14)
SUB v4_2#((v2_7%-43)/14),v4_2#((v2_7%-29)/14)
v4_2#((v2_7%-29)/14)=0
ELSE
SUB v4_2#((v2_7%-29)/14),v4_2#((v2_7%-43)/14)
v4_2#((v2_7%-43)/14)=0
ENDIF
ADD v2_7%,14
ENDIF
NEXT v2_7%
' Jetzt werden die Kontosummen in die Übertragszeile eingetragen
FOR v2_7%=1 TO v2_3%+v2_2%
IF v4_2#(v2_7%)=0
v1_5$="-------------"
ELSE
vB_49(v4_2#(v2_7%))
v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
ENDIF
v5_3$(v2_16%*66)=LEFT$(v5_3$(v2_16%*66),43+v2_7%*14)+v1_5$+RIGHT$(v5_3$(v2_16%*66),LEN(v5_3$(v2_16%*66))-56-v2_7%*14)
NEXT v2_7%
LOOP
v2_19%=v2_D%
v5_3$(v2_19%)=STRING$(5,205)+CHR$(207)+STRING$(8,205)+CHR$(207)+STRING$(26,205)+CHR$(202)+STRING$(9,205)+CHR$(207)+RIGHT$(v5_3$(5),LEN(v5_3$(5))-52)
INC v2_19%
v5_3$(v2_19%)="*** ABSCHLUSSBETRÄGE DER KONTEN ************************"+RIGHT$(v1_18$,LEN(v1_18$)-56)
FOR v2_7%=1 TO v2_3%+v2_2%
IF v2_7%<v2_2%+v2_3% AND v5_0$(v4_1#(v2_7%),2)=v5_0$(v4_1#(v2_7%+1),1)
IF v4_2#(v2_7%)>v4_2#(v2_7%+1)
SUB v4_2#(v2_7%),v4_2#(v2_7%+1)
v4_2#(v2_7%+1)=0
ELSE
SUB v4_2#(v2_7%+1),v4_2#(v2_7%)
v4_2#(v2_7%)=0
ENDIF
ENDIF
IF v4_2#(v2_7%)=0
v1_5$="-------------"
ELSE
vB_49(v4_2#(v2_7%))
v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
ENDIF
v5_3$(v2_19%)=LEFT$(v5_3$(v2_19%),43+v2_7%*14)+v1_5$+RIGHT$(v5_3$(v2_19%),LEN(v5_3$(v2_19%))-56-v2_7%*14)
NEXT v2_7%
@vB_0
ALERT 1,"BERECHNUNG BEENDET.|Zur Ausgabe des|Abschlusses bitte im|Menü Ausgabeart wählen!",1," OK ",v2_0%
v2_1%=-1
v2_43%=0
v2_47%=0
vA_36:
RETURN
> PROCEDURE vB_38
' Wandelt gross$ so um, daß Kleinbuchst. zu Grossbuchst. werden
v1_14$=UPPER$(v1_14$)
RETURN
> PROCEDURE vB_3A
vB_49(v0_20#)
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),56+v2_18%*14-LEN(v1_21$))+v1_21$+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-56-v2_18%*14)
RETURN
> PROCEDURE vB_15
IF v2_43%>0
ALERT 2,"Soll ich einen neuen|Anlagespiegel erstellen oder|den alten zurückrufen?",2," Neu | Alt ",v2_0%
IF v2_0%=2
v2_1%=-2
ALERT 1,"|Ausgabeobjekt: ANLAGESPIEGEL.",1," OKAY ",v2_0%
GOTO vA_4C
ELSE
v2_1%=-1
ENDIF
ENDIF
v3_1!=FALSE
SELECT v2_1%
CASE 0, TO -2
ALERT 3,"|Erst Abschluß machen!",1,"Ah ja!",v2_0%
GOTO vA_4C
CASE -1
v2_1%=-2
v2_40%=0
IF v0_23#=0
ALERT 1,"Armer Schlucker!|Hat keine Sachanlagen in|der Firma...",1,"Grlmpf.",v2_0%
GOTO vA_56
ELSE
vB_49(v0_23#)
ALERT 1,"Bitte schlüssele die Eröf-|fnungssumme von DM "+v1_21$+"|auf! Maßgeblich ist der|letztjährige Anlagespiegel!",1,"OKAY",v2_0%
ENDIF
v0_2D#=0
DO
vA_50:
v1_B$="SACHANLAGE POSTEN BEZEICHNUNG"
v1_C$="Bitte die Bezeichnung des Sachanlagepostens eingeben."
v1_E$="Eingabe in DM. Eingabe max. 27 Zeichen (Leer=Abbruch)."
v2_45%=27
vB_33
IF v1_F$=""
v1_0$="|Abbruch?"
vB_19
IF v2_0%=1
GOTO vA_4C
ELSE
GOTO vA_50
ENDIF
ENDIF
INC v2_40%
v5_6$(v2_40%)=v1_F$
vA_4D:
v1_B$="'"+v1_F$+"' ANSCHAFFUNGSKOSTEN"
v1_C$="Bitte Anschaffungskosten in DM angeben."
v1_E$="Es wird eine lineare Abschreibung auf 5 Jahre vorgenommen."
v2_45%=12
vB_33
IF VAL(v1_F$)<=0
ALERT 1,"|Sehr witzig!|AK von NULL. Harhar!",1,"Schäm!",v2_0%
GOTO vA_4D
ELSE IF VAL(v1_F$)<=800
ALERT 1,"Quatsch! Bei den|Anschaffungskosten hätte der|Posten schon im ersten Jahr|abgeschrieben werden müssen!",1,"Schäm!",v2_0%
GOTO vA_4D
ENDIF
v4_3#(v2_40%)=VAL(v1_F$)
vA_4E:
v1_B$="'"+v5_6$(v2_40%)+"' RESTBUCHWERT"
v1_C$="Bitte Buchungswert aus dem letztjährigen"
v1_E$="Anlagespiegel angeben: [DM]"
v2_45%=12
vB_33
IF VAL(v1_F$)<=0
ALERT 2,"Posten ohne Restbuchwert?|[1] Buchwert neu eingeben|[2] Posten löschen",1," 1 | 2 ",v2_0%
SELECT v2_0%
CASE 1
DEC v2_40%
GOTO vA_50
CASE 2
GOTO vA_4E
ENDSELECT
ELSE IF VAL(v1_F$)>v4_3#(v2_40%)
ALERT 2,"Restbuchwert>Anschaffungskosten?|[1] Anschaffungskosten neu|[2] Restbuchwert neu",2," 1 | 2 ",v2_0%
SELECT v2_0%
CASE 1
GOTO vA_4D
CASE 2
GOTO vA_4E
ENDSELECT
ENDIF
v4_4#(v2_40%)=VAL(v1_F$)
v0_2D#=v0_2D#+v4_4#(v2_40%)
EXIT IF v0_2D#=v0_23#
IF v0_2D#>v0_23#
v1_0$="Hier stimmt die Aufschlüsselung|nicht mit Buchwert von|DM "+v1_21$+" überein.|Abbruch?"
vB_19
IF v2_0%=1
GOTO vA_4C
ELSE
v0_2D#=0
v2_40%=0
GOTO vA_50
ENDIF
ENDIF
LOOP
IF v2_40%=0
GOTO vA_4C
ENDIF
vA_56:
vB_4
v2_D%=1
WHILE v5_0$(v2_D%,2)<>"SACHANLAGEN"
INC v2_D%
WEND
IF v5_0$(v2_D%,2)<>"SACHANLAGEN"
v2_7%=0
ELSE
v2_7%=v2_D% ! hi%: Zeigt an, wo das SOLL der SACHANLAGEN gebucht ist
ENDIF
v2_D%=1
WHILE v5_0$(v2_D%,1)<>"SACHANLAGEN" AND v2_D%<=v2_2%
INC v2_D%
WEND
IF v5_0$(v2_D%,1)<>"SACHANLAGEN"
v2_38%=0
ELSE
v2_38%=v2_D% ! si%: Zeigt an, wo HABEN der SACHANLAGEN gebucht ist
ENDIF
IF v2_38%=0 AND v2_7%=0
ALERT 1,"Na, hast Du Lümmel|das SACHANLAGENKONTO gelöscht?|Ich kann es nicht finden!",1,"Nee?",v2_0%
ALERT 1,"Anlagespiegel ohne Konto|SACHANLAGEN unmöglich!",1,"Bäh!",v2_0%
GOTO vA_4C
ELSE IF v2_38%=0
ALERT 1,"ACHTUNG: Das Konto SACHANLAGEN|hat keine HABEN-Seite.|Keine Abgangsbuchungen!",1,"Und?",v2_0%
ELSE IF v2_7%=0
ALERT 3,"ACHTUNG: Konto SACHANLAGEN hat keine|SOLL-Seite. Keine Zugangsbuchung.|Vermutlich Fehler?",2,"Weiter|Abbruch",v2_0%
IF v2_0%=2
GOTO vA_4C
ENDIF
ENDIF
FOR v2_D%=1 TO v2_5%
IF v6_2%(v2_D%)=v2_7% AND v2_7%<>0 ! Zugang an SACHANLAGEN
INC v2_40%
v5_6$(v2_40%)=v5_2$(v2_D%)+" ⇦Zugang am "+v5_1$(v2_D%)
v4_3#(v2_40%)=v4_0#(v2_D%)/(1+0.01*v6_1%(v2_D%))+0.005
v4_4#(v2_40%)=v4_3#(v2_40%)
ENDIF
IF v6_0%(v2_D%)=v2_38% AND v2_38%<>0 ! Abgang an SACHANLAGEN
INC v2_40%
v5_6$(v2_40%)=v5_2$(v2_D%)+" ⇦Abgang am "+v5_1$(v2_D%)
v4_3#(v2_40%)=-v4_0#(v2_D%)/(1+0.01*v6_1%(v2_D%))-0.005
v4_4#(v2_40%)=v4_3#(v2_40%)
ENDIF
NEXT v2_D%
v1_20$=RIGHT$(v5_1$(v2_5%),2)
v5_3$(v2_19%+1)="Anlagespiegel 19"+v1_20$
IF INSTR(v1_15$,"Steuer")>0
v5_3$(v2_19%+2)=LEFT$(v1_15$,INSTR(v1_15$,"Steuer")-1)
v5_3$(v2_19%+3)=RIGHT$(v1_15$,LEN(v1_15$)-LEN(v5_3$(v2_19%+2)))
ELSE
v5_3$(v2_19%+2)=v1_15$
v5_3$(v2_19%+3)=""
ENDIF
v5_3$(v2_19%+4)=STRING$(80,"-")
v5_3$(v2_19%+5)=""
v5_3$(v2_19%+6)=""
' Format Anlagespiegel-ausgabe:
' 80 Zeichen Textbreite, dafür:
' 28 Zeichen Text (Postenbezeichnung)
' Je 12 Zeichen für STAND 31.12., ABGANG/ZUGANG, AfA, STAND 1.1.
' plus je ein Zwischenzeichen
v5_3$(v2_19%+7)=STRING$(28," ")+" Stand "+" "+" - Abgang "+" "+" "+" "+" Stand"
v5_3$(v2_19%+8)="I. Anlagegegenstände "+" 1.1.19"+STR$(VAL(v1_20$)-1)+" "+" "+" + Zugang "+" "+" AfA "+" "+" 31.12.19"+v1_20$
v5_3$(v2_19%+9)="-------------------- "+STRING$(52,"-")
v2_3D%=9
FOR v2_D%=1 TO v2_40%
IF v4_3#(v2_D%)>800 !Kein geringwertiges Wirtschaftsgut
INC v2_3D%
IF v4_3#(v2_D%)>v4_4#(v2_D%)
v5_3$(v2_19%+v2_3D%)=LEFT$(v5_6$(v2_D%),28)+STRING$(28-LEN(LEFT$(v5_6$(v2_D%),28))," ")
' 2. Zeile von posten$ AK vermerken
INC v2_3D%
vB_49(v4_3#(v2_D%))
v1_5$="[AK "+v1_21$+" DM]"
v5_3$(v2_19%+v2_3D%)=v1_5$+STRING$(28-LEN(v1_5$)," ")
' Stand 1.1. Restbuchwert vermerken
vB_49(v4_4#(v2_D%))
v1_5$=STRING$(13-LEN(v1_21$)," ")+v1_21$
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+v1_5$
' Kein Zugang/Abgang
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+" ./. "
' Afa 5 Jahre 20% vermerken
v0_24#=0.2*v4_3#(v2_D%)
IF v4_4#(v2_D%)<v0_24#
v0_24#=v4_4#(v2_D%)
ENDIF
vB_49(v0_24#)
v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+v1_5$
' Neuer Restbuchwert Stand 31.12. vermerken
v0_24#=v4_4#(v2_D%)-v0_24#
vB_49(v0_24#)
v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+v1_5$
ELSE
v1_5$=LEFT$(v5_6$(v2_D%),INSTR(v5_6$(v2_D%),"⇦")-1)
v5_3$(v2_19%+v2_3D%)=LEFT$(v1_5$,28)+STRING$(28-LEN(LEFT$(v1_5$,28))," ")
' 2.Zeile posten$ ADatum vermerken
INC v2_3D%
v1_5$=RIGHT$(v5_6$(v2_D%),LEN(v5_6$(v2_D%))-LEN(v1_5$)-1)
v1_5$="["+v1_5$+"]"
v1_14$=v1_1$ ! gross$ hier nur als Transfervariable
v5_3$(v2_19%+v2_3D%)=v1_5$+STRING$(28-LEN(v1_5$),32)
' Kein Stand 1.1. vermerken
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+" ./. "
IF v4_3#(v2_D%)<0 ! Abgang
' Abgang vermerken
v0_24#=ABS(v4_3#(v2_D%))
vB_49(v0_24#)
v1_21$="- "+v1_21$
vA_51:
vB_0
v1_B$="ABGANG DES POSTENS '"+v5_6$(v2_D%)+"'"
v1_C$="Ich muß den Anschaffungswert wissen, um den Abgang"
v1_E$="verbuchen zu können! AK = ?"
v2_45%=12
vB_33
IF VAL(v1_F$)<ABS(v4_3#(v2_D%))
ALERT 2,"Anschaffungswert kleiner als|Abgang? Buchungsfehler!",1," Neu |Abbruch",v2_0%
IF v2_0%=2
v3_1!=TRUE
v2_D%=v2_40%
GOTO vA_53
ELSE
GOTO vA_51
ENDIF
ENDIF
vB_4
v0_24#=VAL(v1_F$)
SWAP v1_21$,v1_F$
vB_49(v0_24#)
v1_5$=v5_3$(v2_19%+v2_3D%)
v1_5$=LEFT$(v1_5$,LEN(v1_5$)-13)+STRING$(13-LEN(v1_21$),32)+v1_21$
v0_27#=VAL(v1_21$)-VAL(v1_F$)
SWAP v1_21$,v1_F$
ELSE
' Zugang vermerken
vB_49(v4_3#(v2_D%))
v1_21$="+ "+v1_21$
ENDIF
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
' Afa vermerken /(evtl. anteilig auf Jahr)
IF v4_3#(v2_D%)<0
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+" ./. "
' Neuer Restbuchwert 31.12. vermerken
vB_49(v0_27#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
ELSE
v1_14$=RIGHT$(v1_14$,LEN(v1_14$)-INSTR(v1_14$,"."))
v1_14$=LEFT$(v1_14$,2)
SELECT VAL(v1_14$) ! dm hier Wert der anteiligen Abschreibung
CASE TO 4
v0_24#=0.2*2/3
CASE 5 TO 8
v0_24#=0.2*1/3
CASE 9 TO 12
v0_24#=0
ENDSELECT
v0_24#=v0_24#*v4_3#(v2_D%)
vB_49(v0_24#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
v0_24#=v4_3#(v2_D%)-v0_24#
vB_49(v0_24#)
' Neuer Restbuchwert 31.12. vermerken
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
INC v2_3D%
v5_3$(v2_19%+v2_3D%)="5 Jahre ND 20 % Afa p.r.t."
ENDIF
ENDIF
v5_6$(v2_D%)=""
ENDIF
vA_53:
NEXT v2_D%
IF v3_1!
GOTO vA_4C
ENDIF
INC v2_3D%
v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(52,"-")
INC v2_3D%
' Summen vermerken
v0_28#=0
v0_29#=0
v0_2A#=0
v0_2B#=0
FOR v2_7%=v2_19%+10 TO v2_19%+v2_3D%
vB_4A(MID$(v5_3$(v2_7%),29,13))
v0_28#=v0_28#+v0_24#
vB_4A(MID$(v5_3$(v2_7%),42,13))
v0_29#=v0_29#+v0_24#
vB_4A(MID$(v5_3$(v2_7%),55,13))
v0_2A#=v0_2A#+v0_24#
vB_4A(MID$(v5_3$(v2_7%),68,13))
v0_2B#=v0_2B#+v0_24#
NEXT v2_7%
vB_49(v0_28#)
v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(13-LEN(v1_21$),32)+v1_21$
vB_49(v0_29#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
vB_49(v0_2A#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
vB_49(v0_2B#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
v0_33#=v0_2A# ! Wichtig für GuV-Rechnung
INC v2_3D%
v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(52,"=")
INC v2_3D%
v5_3$(v2_19%+v2_3D%)=""
INC v2_3D%
v5_3$(v2_19%+v2_3D%)="II. Geringwertige"+STRING$(37,32)+" Stand"
INC v2_3D%
v5_3$(v2_19%+v2_3D%)=" Wirtschaftsgüter Zugang Afa 31.12.19"+v1_20$
INC v2_3D%
v5_3$(v2_19%+v2_3D%)="-------------------- "+STRING$(39,"-")
v2_43%=v2_19%+v2_3D%
v0_29#=0
FOR v2_D%=1 TO v2_40%
IF v5_6$(v2_D%)<>""
INC v2_3D%
' posten und Datum vermerken
v1_5$=LEFT$(v5_6$(v2_D%),INSTR(v5_6$(v2_D%),"⇦")-1)
v5_3$(v2_19%+v2_3D%)=LEFT$(v1_5$,28)+STRING$(28-LEN(LEFT$(v1_5$,28))," ")
' 2.Zeile posten$ ADatum vermerken
INC v2_3D%
v1_5$=RIGHT$(v5_6$(v2_D%),LEN(v5_6$(v2_D%))-LEN(v1_5$)-1)
v1_5$="["+v1_5$+"]"
' Zugang vermerken
v5_3$(v2_19%+v2_3D%)=v1_5$+STRING$(28-LEN(v1_5$),32)
v5_3$(v2_19%+v2_3D%)=LEFT$(v5_3$(v2_19%+v2_3D%),25)
vB_49(v4_3#(v2_D%))
ADD v0_29#,v4_3#(v2_D%)
v0_28#=v4_3#(v2_D%) ! spalte1 nur als Transfervariable
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
' Gesamte AK als Afa vermerken
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
' Restbuchwert "-,--" zum 31.12. vermerken
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+" -,--"
v5_6$(v2_D%)=""
ENDIF
NEXT v2_D%
' Erinnerungsmark
v5_3$(v2_19%+v2_3D%)=LEFT$(v5_3$(v2_19%+v2_3D%),38)
v0_24#=v0_28#-1
vB_49(v0_24#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$+" 1,--"
' Summen vermerken
INC v2_3D%
v0_2A#=v0_29#-1
v0_2B#=1
v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(39,"-")
INC v2_3D%
vB_49(v0_29#)
v5_3$(v2_19%+v2_3D%)=STRING$(25,32)+STRING$(13-LEN(v1_21$),32)+v1_21$
vB_49(v0_2A#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
vB_49(v0_2B#)
v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
INC v2_3D%
v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(39,"=")
v2_43%=v2_19%+v2_3D%
vB_0
ALERT 1,"ANLAGESPIEGEL FERTIG.|Anschauen im Ausgabemenü|Ausgabeart wählen!",1," OKAY ",v2_0%
ENDSELECT
v2_47%=0
vA_4C:
RETURN
> PROCEDURE vB_3B
IF v2_47%>0
ALERT 2,"Soll ich eine neue|G&V-Rechnung erstellen oder|die alte zurückrufen?",2," Neu | Alt ",v2_0%
IF v2_0%=2
v2_1%=-3
ALERT 1,"|Ausgabeobjekt: G&V-RECHNUNG.",1," OKAY ",v2_0%
GOTO vA_62
ELSE
v2_1%=-2
ENDIF
ENDIF
v3_1!=FALSE
SELECT v2_1%
CASE 0
ALERT 3,"|Erst Abschluß machen!",1,"Ah ja!",v2_0%
GOTO vA_62
CASE -1
ALERT 3,"Erst Anlagespiegel machen.|Für die G&V-Rechnung|brauche ich nämlich|die Summe der Abschreibungen!",1,"Ah ja!",v2_0%
GOTO vA_62
CASE -2
v2_1%=-3
v1_20$=RIGHT$(v5_1$(v2_5%),2)
v5_3$(v2_43%+1)="Einnahme-Überschuss-Rechnung 19"+v1_20$
IF INSTR(v1_15$,"Steuer")>0
v5_3$(v2_43%+2)=LEFT$(v1_15$,INSTR(v1_15$,"Steuer")-1)
v5_3$(v2_43%+3)=RIGHT$(v1_15$,LEN(v1_15$)-LEN(v5_3$(v2_43%+2)))
ELSE
v5_3$(v2_43%+2)=v1_15$
v5_3$(v2_43%+3)=""
ENDIF
v5_3$(v2_43%+4)=STRING$(80,"-")
v5_3$(v2_43%+5)=""
v5_3$(v2_43%+6)=""
v2_3D%=v2_43%+6
' Sonderbehandlung Kfz?
v1_0$="Wird im Rahmen des Ge-|schäftsbetriebes ein Auto|genutzt, das in der Buch-|haltung unberücksichtigt ist?"
vB_19
IF v2_0%=1
v1_B$="REGULÄRE GESCHÄFTSFAHRTEN WOHNORT"
v1_C$="Von welchem Ort beginnen Ihre regulären"
v1_E$="Geschäftsfahrten (Name)?"
v2_45%=20
vB_33
v1_5$=v1_F$
v1_B$="REGULÄRE GESCHÄFTSFAHRTEN ARBEITSPLATZ"
v1_C$="An welchem Ort enden Ihre regulären"
v1_E$="Geschäftsfahrten (Name)?"
v2_45%=20
vB_33
v5_3$(v2_3D%+1)="Kfz-Kosten a) "+v1_5$+" - "+v1_F$
vA_63:
v1_B$="REGULÄRE KFZ-GESCHÄFTSFAHRTEN STRECKE"
v1_C$="Wie weit ist die reguläre Wegstrecke pro Geschäftstag[km]?"
v1_E$="(Z.B. Strecke Wohnort-Arbeitsplatz Hinfahrt+Rückfahrt)"
v2_45%=3
vB_33
IF VAL(v1_F$)<=0
ALERT 1,"|Eine Strecke muß angegeben werden!",1," Neu |Abbruch",v2_0%
IF v2_0%=1
GOTO vA_63
ELSE
GOTO vA_62
ENDIF
ENDIF
v2_7%=VAL(v1_F$)
vA_64:
v1_B$="ANZAHL REGULÄRER GESCHÄFTSFAHRTEN"
v1_C$="Wieviele Tage im Jahr wird die Strecke von"
v1_E$=v1_F$+" km gefahren?"
v2_45%=3
vB_33
IF VAL(v1_F$)<=30
ALERT 1,"Das ist wohl nicht sehr|regulär?! Zuwenig Tage im Jahr!",1," Neu |Abbruch",v2_0%
IF v2_0%=1
GOTO vA_64
ELSE
GOTO vA_62
ENDIF
ELSE IF VAL(v1_F$)>365
v1_0$="Lebst Du auf einem ande-|ren Planeten, daß Dein Jahr|mehr als 365 Tage hat?"
vB_19
IF v2_0%=1
ALERT 1,"|Gratuliere, Herr Raumfahrer!",1,"Danke!",v2_0%
GOTO vA_62
ELSE
GOTO vA_64
ENDIF
ENDIF
v2_38%=VAL(v1_F$)
vA_65:
v1_B$="SONSTIGE GESCHÄFTSFAHRTEN"
v1_C$="Bitte die Kilometerzahl der irregulär noch"
v1_E$="gefahrenen Kilometer angeben?"
v2_45%=5
vB_33
IF VAL(v1_F$)<0
GOTO vA_65
ENDIF
v5_3$(v2_3D%+2)="---------- "+STR$(v2_7%)+" km * "+STR$(v2_38%)+" Tage * -,36 DM"
v5_3$(v2_3D%+2)=v5_3$(v2_3D%+2)+STRING$(60-LEN(v5_3$(v2_3D%+2)),32)
v0_24#=v2_38%*v2_7%*0.36
vB_49(v0_24#)
v0_28#=v0_24#
v0_2B#=v0_24#
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%+2)=LEFT$(v5_3$(v2_3D%+2),60-LEN(v1_21$))+v1_21$
v5_3$(v2_3D%+3)=" b) Sonstige Fahrten pauschal ca."
v5_3$(v2_3D%+4)=" "+v1_F$+" km * -,42 DM"
v5_3$(v2_3D%+4)=v5_3$(v2_3D%+4)+STRING$(60-LEN(v5_3$(v2_3D%+4)),32)
v0_24#=VAL(v1_F$)*0.42
vB_49(v0_24#)
ADD v0_28#,v0_24#
v1_21$=v1_21$+" DM"
v1_5$=v1_21$
v5_3$(v2_3D%+4)=LEFT$(v5_3$(v2_3D%+4),60-LEN(v1_21$))+v1_21$
vB_49(v0_28#)
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%+5)=STRING$(60-LEN(v1_21$)," ")+STRING$(LEN(v1_21$),"-")
v5_3$(v2_3D%+6)=STRING$(60-LEN(v1_21$)," ")+v1_21$
v5_3$(v2_3D%+7)=" Kfz-Kosten USt herausgerechnet"
v5_3$(v2_3D%+8)=" (7,6 % aus "+v1_5$+")"
vB_4A(v1_5$)
v0_2A#=v0_24#-v0_24#/1.076
v0_29#=v0_24#/1.076
vB_49(v0_2A#)
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%+9)=" [Vorsteuer "+v1_21$+"]"
vB_49(v0_29#)
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%+9)=v5_3$(v2_3D%+9)+STRING$(60-LEN(v5_3$(v2_3D%+9)),32)
v5_3$(v2_3D%+9)=LEFT$(v5_3$(v2_3D%+9),60-LEN(v1_21$))+v1_21$
v0_30#=v0_2B#+v0_29#
vB_49(v0_30#)
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%+10)=STRING$(60-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
v5_3$(v2_3D%+11)=STRING$(60-LEN(v1_21$),32)+v1_21$
v5_3$(v2_3D%+12)=STRING$(60-LEN(v1_21$)," ")+STRING$(LEN(v1_21$),"=")
v5_3$(v2_3D%+13)=""
ADD v2_3D%,13
ELSE
v0_30#=0
ENDIF
' Sonderbehandlung Telefon?
v1_0$="Sollen etwaige Telefonkosten|pauschal veranlagt werden,|da kein separates Konto|dafür im Journal ist?"
vB_19
IF v2_0%=1
v1_B$="TELEFONKOSTEN (PAUSCHAL)"
v1_C$="Wie hoch sind die Telefonkosten (pauschal)"
v1_E$="cirka in DM (RETURN = 250,-- DM)?"
v2_45%=3
vB_33
IF VAL(v1_F$)<=0
v0_31#=250
ELSE
v0_31#=VAL(v1_F$)
ENDIF
ELSE
v0_31#=0
ENDIF
vB_4
' Alle HABEN-Erfolgskontos aufführen und Summe bilden => EINNAHMEN
v0_28#=0
v0_29#=0
' Hier: spalte1: Summe der Einnahmen
' spalte2: Summe der Ausgaben
v5_3$(v2_3D%+1)="Einnahmen"
v5_3$(v2_3D%+2)="---------"
ADD v2_3D%,2
FOR v2_7%=1 TO v2_3%+v2_2%
IF v6_4%(v4_1#(v2_7%),1)=2 AND v4_1#(v2_7%)=INT(v4_1#(v2_7%)) AND v4_2#(v2_7%)>0
ADD v0_28#,v4_2#(v2_7%)
INC v2_3D%
v5_3$(v2_3D%)=v5_0$(v4_1#(v2_7%),1)
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%)),32)
vB_49(v4_2#(v2_7%))
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),80-LEN(v1_21$))+v1_21$
ENDIF
NEXT v2_7%
vB_49(v0_28#)
INC v2_3D%
v5_3$(v2_3D%+1)="Einnahmen aus Geschäftsbetrieb"
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%+1)=v5_3$(v2_3D%+1)+STRING$(80-LEN(v1_21$),32)
v5_3$(v2_3D%+1)=LEFT$(v5_3$(v2_3D%+1),80-LEN(v1_21$))+v1_21$
v5_3$(v2_3D%)=STRING$(80-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
ADD v2_3D%,2
v5_3$(v2_3D%)=""
' Alle SOLL-Erfolgskontos aufführen und Summe bilden => KOSTEN
v5_3$(v2_3D%+1)="Betriebsausgaben"
v5_3$(v2_3D%+2)="----------------"
ADD v2_3D%,2
FOR v2_7%=1 TO v2_3%+v2_2%
IF v6_4%(v4_1#(v2_7%),2)=2 AND v4_1#(v2_7%)<>INT(v4_1#(v2_7%)) AND v4_2#(v2_7%)>0 AND v5_0$(v4_1#(v2_7%),2)<>"VORSTEUER"
ADD v0_29#,v4_2#(v2_7%)
INC v2_3D%
v5_3$(v2_3D%)=v5_0$(v4_1#(v2_7%),2)
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
vB_49(v4_2#(v2_7%))
v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
ENDIF
NEXT v2_7%
IF v0_31#>0
INC v2_3D%
v5_3$(v2_3D%)="TELEFONKOSTEN (pauschal)"
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
ADD v0_29#,v0_31#
vB_49(v0_31#)
v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
ENDIF
IF v0_30#>0
INC v2_3D%
v5_3$(v2_3D%)="KFZ-KOSTEN (siehe oben)"
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
ADD v0_29#,v0_30#
vB_49(v0_30#)
v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
ENDIF
IF v0_33#>0
INC v2_3D%
v5_3$(v2_3D%)="ABSCHREIBUNG LT. ANLAGESPIEGEL"
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
ADD v0_29#,v0_33#
vB_49(v0_33#)
v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
ENDIF
v5_3$(v2_3D%+1)=STRING$(60-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
vB_49(v0_29#)
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%))-LEN(v1_21$),32)+v1_21$
INC v2_3D%
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%))-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
INC v2_3D%
v5_3$(v2_3D%)=""
' Differenz aus Einnahmen und Kosten bilden => Gewinn aus Gesch.betr.
INC v2_3D%
IF v0_28#>=v0_29#
v0_2A#=v0_28#-v0_29#
v5_3$(v2_3D%)="Gewinn aus Geschäftsbetrieb"
ELSE
v0_2A#=v0_29#-v0_28#
v5_3$(v2_3D%)="Verlust aus Geschäftsbetrieb"
ENDIF
v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%)),32)
vB_49(v0_2A#)
v1_21$=v1_21$+" DM"
v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),80-LEN(v1_21$))+v1_21$
INC v2_3D%
v5_3$(v2_3D%)=STRING$(80-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"=")
v2_47%=v2_3D%
vB_0
ALERT 1,"GuV-Rechnung fertig.|Anschauen im Ausgabemenü|Ausgabeart wählen!",1," OKAY ",v2_0%
ENDSELECT
vA_62:
RETURN
> PROCEDURE vB_3C
IF v1_7$=""
ALERT 1,"|Erst Kontenrahmen|initialisieren!",1," OK ",v2_0%
GOTO vA_74
ENDIF
v1_F$=""
v0_84#=0
' ####AU¯DGABEART IN LEISTE$= ' säulen '' blöcke '' kuchen '' linien '' balken '
' Dann Proc 3d (säulen, blöcke) oder 2d (balken, linien) oder kuchen aufrufen
' ****EINGABE HAUPTÜBERSCHRIFT <= 35 ZEICHEN
' ****UNTERTITEL <=70 ZEICHEN
' ****EINGABE DER ANZAHL DER REIHEN <=4
' ****EINGABE ANZAHL DER SPALTEN <=14
' ****BEZEICHNUNG DER REIHE(I)
' ****WERT DER REIHE(I) SPALTE(J)
' ****1.NAME DER SPALTEN(I)
' ****2.NAME DER SPALTE(I)
ALERT 2,"Soll die Erfolgsstatistik|dieser Periode mit einer|anderen Periode|verglichen werden ?",2," JA |NEIN|Abbruch",v2_0%
SELECT v2_0%
CASE 1
v1_F$="VERGLEICH"
ALERT 1,"Bitte die Datei der|Vergleichsperiode wählen.",1,"OKAY|Abbruch",v2_0%
IF v2_0%=2
GOTO vA_74
ELSE
vB_A
v1_39$=v1_4$
v2_59%=v2_5%
FOR v0_0#=1 TO v2_59%
v5_F$(v0_0#)=v5_1$(v0_0#)
' btext$ in Erfolgsstatistik uninteressant
v4_6#(v0_0#)=v4_0#(v0_0#)
v6_B%(v0_0#)=v6_0%(v0_0#)
v6_C%(v0_0#)=v6_2%(v0_0#)
' MWST uninterssant cmwst%(i)=bmwst%(i)
' bkto etc. auf ckto umschreiben
NEXT v0_0#
ENDIF
CASE 3
GOTO vA_74
ENDSELECT
ALERT 1,"Bitte die Datei der|Basisperiode wählen.",1,"OKAY|Abbruch",v2_0%
IF v2_0%=2
GOTO vA_74
ELSE
vB_A
ENDIF
' Hier folgt die Datenübergabe
vA_7B:
IF v1_F$="VERGLEICH"
vB_55("|Berechnung.")
' Schleife von 1 bis Kontenzahl -> Vergleich der Konten Periode 1 und 2
vB_4
FOR v0_0#=1 TO v2_2%
INC v0_84#
IF v1_4$=v1_39$ OR v1_39$=""
v4_E#(v0_84#)=1
v5_1A$(v0_84#)="Kontenentwicklung und..."
ELSE
v5_1A$(v0_84#)="Vergleich von "+v1_4$+" und "+v1_39$
v4_E#(v0_84#)=2
ENDIF
v5_1B$(v0_84#)="...Verlauf des Kontos "+v5_0$(v0_0#,1)+"'HABENSEITE' Mittelherkunft"
v4_F#(v0_84#)=12
v5_1C$(1,v0_84#)=v1_4$
v5_1C$(2,v0_84#)=v1_39$
RESTORE vA_76
FOR v2_14%=1 TO 12
READ v5_1D$(v2_14%,v0_84#),v5_1E$(v2_14%,v0_84#)
NEXT v2_14%
FOR v2_14%=1 TO v2_5%
IF v6_0%(v2_14%)=v0_0#
ADD v4_10#(1,VAL(MID$(v5_1$(v2_14%),INSTR(v5_1$(v2_14%),".")+1,2)),v0_84#),v4_0#(v2_14%)
ENDIF
NEXT v2_14%
FOR v2_14%=1 TO v2_59%
IF v6_B%(v2_14%)=v0_0#
ADD v4_10#(2,VAL(MID$(v5_F$(v2_14%),INSTR(v5_F$(v2_14%),".")+1,2)),v0_84#),v4_6#(v2_14%)
ENDIF
NEXT v2_14%
v5_19$(v0_84#)=" linien "
NEXT v0_0#
FOR v0_0#=1 TO v2_3%
INC v0_84#
IF v1_4$=v1_39$ OR v1_39$=""
v4_E#(v0_84#)=1
v5_1A$(v0_84#)="Kontenentwicklung und..."
ELSE
v5_1A$(v0_84#)="Vergleich von "+v1_4$+" und "+v1_39$
v4_E#(v0_84#)=2
ENDIF
v5_1B$(v0_84#)="...Verlauf des Kontos "+v5_0$(v0_0#,2)+"'SOLLSEITE' Mittelverwendung"
v4_F#(v0_84#)=12
v5_1C$(1,v0_84#)=v1_4$
v5_1C$(2,v0_84#)=v1_39$
RESTORE vA_76
FOR v2_14%=1 TO 12
READ v5_1D$(v2_14%,v0_84#),v5_1E$(v2_14%,v0_84#)
NEXT v2_14%
FOR v2_14%=1 TO v2_5%
IF v6_2%(v2_14%)=v0_0#
ADD v4_10#(1,VAL(MID$(v5_1$(v2_14%),INSTR(v5_1$(v2_14%),".")+1,2)),v0_84#),v4_0#(v2_14%)
ENDIF
NEXT v2_14%
FOR v2_14%=1 TO v2_59%
IF v6_C%(v2_14%)=v0_0#
ADD v4_10#(2,VAL(MID$(v5_F$(v2_14%),INSTR(v5_F$(v2_14%),".")+1,2)),v0_84#),v4_6#(v2_14%)
ENDIF
NEXT v2_14%
v5_19$(v0_84#)=" linien "
NEXT v0_0#
vB_0
vB_76
ENDIF
ALERT 2,"Möchten Sie einen|Überblick über die Ent-|wicklung aller Konten|in der Periode ?",2," JA |NEIN",v2_0%
IF v2_0%=1
v0_84#=0
ARRAYFILL v4_E#(),0
ARRAYFILL v4_F#(),0
ARRAYFILL v4_10#(),0
v1_F$="VERGLEICH"
GOTO vA_7B
ENDIF
v0_84#=0
ARRAYFILL v4_E#(),0
ARRAYFILL v4_F#(),0
ARRAYFILL v4_10#(),0
ALERT 2,"Möchten Sie die Entwicklung|einzelner Konten oder meh-|rerer Konten in der Periode|separat sehen?",2," JA |NEIN|Abbruch",v2_0%
SELECT v2_0%
CASE 1
vA_7A:
INC v0_84#
ALERT 1,"Es können bis zu|4 Konten gleichzeitig|dargestellt werden.",1,"OKAY",v2_0%
vA_78:
vB_4B
v1_B$="KONTENENTWICKLUNG - Habenkonten"
v1_C$="Sie sehen links die Haben-Konten. Wählen Sie die zugleich"
v1_E$="darzustellenden Haben-Konten aus (Nr./ENDE=RETURN):"
v2_45%=2
vB_33
IF v1_F$<>"" AND VAL(v1_F$)<=v2_2%
INC v4_E#(v0_84#)
v5_B$(v4_E#(v0_84#))=v1_F$+"H"
IF v4_E#(v0_84#)>4
ALERT 1,"Sie haben mehr als|4 Vergleichskonten|angegeben!",1,"Sorry",v2_0%
DEC v4_E#(v0_84#)
ENDIF
v5_1C$(v4_E#(v0_84#),v0_84#)="H-"+v5_0$(VAL(v1_F$),1)
GOTO vA_78
ENDIF
vA_79:
vB_4B
v1_B$="KONTENENTWICKLUNG - Sollkonten"
v1_C$="Nun wählen Sie rechts die darzu-"
v1_E$="stellenden Soll-Konten(Nr./ENDE=RETURN):"
v2_45%=2
vB_33
IF v1_F$<>"" AND VAL(v1_F$)<=v2_3%
INC v4_E#(v0_84#)
v5_B$(v4_E#(v0_84#))=v1_F$+"S"
IF v4_E#(v0_84#)>4
ALERT 1,"Sie haben mehr als|4 Vergleichskonten|angegeben!",1,"Sorry",v2_0%
DEC v4_E#(v0_84#)
ENDIF
v5_1C$(v4_E#(v0_84#),v0_84#)="S-"+v5_0$(VAL(v1_F$),2)
GOTO vA_79
ENDIF
IF v4_E#(v0_84#)=0
GOTO vA_74
ENDIF
v5_1A$(v0_84#)="Entwicklung der Konten..."
v5_1B$(v0_84#)=""
FOR v2_14%=1 TO v4_E#(v0_84#)
v5_1B$(v0_84#)=v5_1B$(v0_84#)+" / "+v5_1C$(v2_14%,v0_84#)
NEXT v2_14%
v5_1B$(v0_84#)=RIGHT$(v5_1B$(v0_84#),LEN(v5_1B$(v0_84#))-3)
RESTORE vA_76
FOR v2_14%=1 TO 12
READ v5_1D$(v2_14%,v0_84#),v5_1E$(v2_14%,v0_84#)
NEXT v2_14%
v4_F#(v0_84#)=12
'
FOR v2_14%=1 TO v4_E#(v0_84#)
v2_5C%=VAL(LEFT$(v5_B$(v2_14%),LEN(v5_B$(v2_14%))-1))
v5_B$(v2_14%)=RIGHT$(v5_B$(v2_14%),1)
IF v5_B$(v2_14%)="H"
FOR v2_5B%=1 TO v2_5%
IF v6_0%(v2_5B%)=v2_5C%
ADD v4_10#(v2_14%,VAL(MID$(v5_1$(v2_5B%),INSTR(v5_1$(v2_5B%),".")+1,2)),v0_84#),v4_0#(v2_5B%)
ENDIF
NEXT v2_5B%
ELSE
FOR v2_5B%=1 TO v2_5%
IF v6_2%(v2_5B%)=v2_5C%
ADD v4_10#(v2_14%,VAL(MID$(v5_1$(v2_5B%),INSTR(v5_1$(v2_5B%),".")+1,2)),v0_84#),v4_0#(v2_5B%)
ENDIF
NEXT v2_5B%
ENDIF
NEXT v2_14%
ALERT 2,"Sollen weiter Konten-|grafiken erstellt|werden ?",2," JA |NEIN",v2_0%
IF v2_0%=1
GOTO vA_7A
ENDIF
v5_19$(v0_84#)=" säulen "
vB_76
CASE 3
GOTO vA_74
ENDSELECT
vA_74:
RETURN
> PROCEDURE vB_17
MENU OFF
v3_1!=FALSE
vB_3D
SELECT v2_1%
CASE 0
GOTO vA_3A
CASE -1
IF v2_19%<1
ALERT 2,"Ich habe ein Augabeobjekt,|aber keinen Text?!",1,"Hä???",v2_0%
GOTO vA_3A
ENDIF
vB_42
CASE -2
IF v2_43%<1
ALERT 2,"Ich habe ein Augabeobjekt,|aber keinen Text?!",1,"Hä???",v2_0%
GOTO vA_3A
ENDIF
v2_48%=v2_19%
v2_49%=v2_43%
vB_52
CASE -3
IF v2_47%<1
ALERT 2,"Ich habe ein Augabeobjekt,|aber keinen Text?!",1,"Hä???",v2_0%
GOTO vA_3A
ENDIF
v2_48%=v2_43%
v2_49%=v2_47%
vB_52
ENDSELECT
vA_3A:
RETURN
> PROCEDURE vB_18 ! <=== Andere Drucker implement.
vB_3D
SELECT v2_1%
CASE 0
GOTO vA_3B
CASE -1
vB_39
v1_5$=STR$(INT(v2_19%/66+1)*v2_13%)
ALERT 1,v1_9$+"|Bitte Drucker bereitmachen.|Ausdruck braucht "+v1_5$+" Seiten.",1,"Druck|Abbruch",v2_0%
IF v2_0%=2
GOTO vA_36
ENDIF
' Anpassung des Ausdrucks an eingestellte Schriftart (96/120/137/160)
vB_55("Ich drucke.|Abbruch mit der|'ESC'-Taste...")
vB_4
FOR v2_D%=1 TO v2_19%
IF v1_16$="96"
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),85)+STRING$(11,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-85)
IF 96+84>=LEN(v5_3$(v2_D%))
GOTO vA_3C
ENDIF
v2_8%=0
vA_3D:
INC v2_8%
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),v2_8%*96+84)+STRING$(12,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-v2_8%*96-84)
IF (v2_8%+1)*96+84<LEN(v5_3$(v2_D%))
GOTO vA_3D
ENDIF
vA_3C:
ELSE
IF v1_16$="120"
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),113)+STRING$(7,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-113)
IF 120+112>=LEN(v5_3$(v2_D%))
GOTO vA_3E
ENDIF
v2_8%=0
vA_3F:
INC v2_8%
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),v2_8%*120+112)+STRING$(8,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-v2_8%*120-112)
IF (v2_8%+1)*120+112<LEN(v5_3$(v2_D%))
GOTO vA_3F
ENDIF
vA_3E:
ELSE
IF v1_16$="137"
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),127)+STRING$(10,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-127)
IF 137+126>=LEN(v5_3$(v2_D%))
GOTO vA_40
ENDIF
v2_8%=0
vA_41:
INC v2_8%
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),v2_8%*137+126)+STRING$(11,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-v2_8%*137-126)
IF (v2_8%+1)*137+126<LEN(v5_3$(v2_D%))
GOTO vA_41
ENDIF
vA_40:
ELSE
IF v1_16$="160"
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),155)+STRING$(5,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-155)
IF 160+154>=LEN(v5_3$(v2_D%))
GOTO vA_42
ENDIF
v2_8%=0
vA_43:
INC v2_8%
v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),v2_8%*160+154)+STRING$(6,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-v2_8%*160-154)
IF (v2_8%+1)*160+154<LEN(v5_3$(v2_D%))
GOTO vA_43
ENDIF
vA_42:
ENDIF
ENDIF
ENDIF
ENDIF
NEXT v2_D%
' Druckroutine
IF INKEY$=CHR$(27)
ALERT 2,"Abbruch durch 'ESC'.|Laß' mich doch|arbeiten, Mensch!",1,"Mensch!",v2_0%
GOTO vA_3B
ENDIF
LPRINT v1_17$;
FOR v2_D%=1 TO INT(v2_19%/66+1)
FOR v2_8%=1 TO v2_13%
FOR v2_1B%=1 TO 66
IF (v2_D%-1)*66+v2_1B%>v2_19%
v2_1B%=66
GOTO vA_44
ENDIF
v1_5$=MID$(v5_3$((v2_D%-1)*66+v2_1B%),(v2_8%-1)*VAL(v1_16$),VAL(v1_16$))
' if-Routine: Seitennumerierung 1...x (a...z) z.B. (SEITE 3f) -
IF v2_1B%=1
v1_3$="(SEITE "+STR$(v2_D%)+CHR$(96+v2_8%)+")"
IF LEN(v1_5$+v1_3$)>95
v1_5$=v1_3$+LEFT$(v1_5$,LEN(v1_5$)-LEN(v1_3$))
ELSE
v1_5$=v1_3$+" "+v1_5$
ENDIF
ENDIF
LPRINT v1_5$
vA_44:
IF INKEY$=CHR$(27)
v2_D%=INT(v2_19%/66+1)
v2_8%=v2_13%
v2_1B%=66
ALERT 2,"Findest Du das gut,|mich mitten in der Arbeit|zu unterbrechen?!...",1,"Nein.",v2_0%
ENDIF
NEXT v2_1B%
LPRINT CHR$(12);
NEXT v2_8%
EXIT IF (v2_D%-1)*66+v2_1B%>v2_19%
NEXT v2_D%
vB_0
CASE -2
IF v2_43%-v2_19%<=66
v1_5$="eine Seite."
ELSE
v2_13%=INT((v2_43%-v2_19%)/61+1)
v1_5$=STR$(v2_13%)+" Seiten."
ENDIF
v2_48%=v2_19%
v2_49%=v2_43%
vB_53
CASE -3
IF v2_47%-v2_43%<=66
v1_5$="eine Seite."
ELSE
v2_13%=INT((v2_47%-v2_43%)/61+1)
v1_5$=STR$(v2_13%)+" Seiten."
ENDIF
v2_48%=v2_43%
v2_49%=v2_47%
vB_53
ENDSELECT
vA_3B:
RETURN
> PROCEDURE vB_3D
SELECT v2_1%
CASE -1
v1_9$="AUSGABEOBJEKT: Abschluß."
CASE -2
v1_9$="AUSGABEOBJEKT: Anlagespiegel."
CASE -3
v1_9$="AUSGABEOBJEKT: V&G-Rechnung."
CASE -4
v1_9$="AUSGABEOBJEKT: Erfolgsstatistik."
CASE TO -5,0 TO
ALERT 2,"|Kein Ausgabeobjekt definiert?!",1,"Hä???",v2_0%
v2_1%=0
ENDSELECT
RETURN
> PROCEDURE vB_42
vB_43
DEFFILL 1,0,0
CLS
TEXT 0,54,"LfdNr"
TEXT 0,70,"Beleg"
'
' Für Kopf- und Fußbox Leerstrings anfügen
v5_5$(4)=v5_5$(4)+STRING$(80," ")
v5_5$(3)=v5_5$(3)+STRING$(80," ")
v5_5$(v2_2B%)=v5_5$(v2_2B%)+STRING$(32," ")
' DIM wort&(7) ! 16 Byte für
v2_1E%=V:vC_0&(0) ! Message-Puffer
'
' Fenster ohne FULL, SIZER, MOVER definieren
v2_1F%=WIND_CREATE(&X111111010011,41,37,598,343)
v1_1A$=v1_9$+CHR$(0)
v2_20%=V:v1_1A$
v1_1B$="Zum Absuchen den Objektes bitte Pfeile rechts und unten anklicken!"+CHR$(0)
v2_21%=V:v1_1B$
'
' Fenstername und Infozeile
~WIND_SET(v2_1F%,2,CARD(SWAP(v2_20%)),CARD(v2_20%),0,0)
~WIND_SET(v2_1F%,3,CARD(SWAP(v2_21%)),CARD(v2_21%),0,0)
~WIND_OPEN(v2_1F%,41,37,598,343)
'
vB_40
vB_41
'
DO
' nächste Zeile aus Platzgründen geteilt
~EVNT_MULTI(&X110000,0,0,0,0,0,0,0,0,0,0,0,0,0,v2_1E%,100)
SELECT vC_0&(0)
CASE 22 ! WM_CLOSED
EXIT IF TRUE
'
CASE 24 ! WM_ARROWED
~WIND_GET(v2_1F%,4,v2_22%,v2_23%,v2_24%,v2_25%) ! Fenstergröße
~WIND_GET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%) ! Slider-
~WIND_GET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%) ! position
SELECT vC_0&(4)
CASE 0 ! side up
v2_29%=v2_25%/16-1
v2_2A%=MAX(6,v2_2A%-v2_29%)
v2_28%=(v2_2A%-1)/(v2_2B%-8)*1000
~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
'
CASE 1 ! side down
v2_29%=v2_25%/16-1
v2_2A%=MIN((v2_2B%-2),v2_2A%+v2_29%)
v2_28%=(v2_2A%-1)/(v2_2B%-8)*1000
~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
'
CASE 2 ! line up
v2_2A%=MAX(6,v2_2A%-1)
v2_28%=(v2_2A%-1)/(v2_2B%-8)*1000
~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
'
CASE 3 ! line down
v2_2A%=MIN(v2_2B%-2,v2_2A%+1)
v2_28%=(v2_2A%-1)/v2_2B%*1000
~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
'
CASE 4 ! side left
v2_2C%=v2_24%/8-1
v2_2D%=MAX(1,v2_2D%-v2_2C%)
v2_26%=(v2_2D%-1)/v2_2E%*1000
~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
'
CASE 5 ! side right
v2_2C%=v2_24%/8-1
v2_2D%=MIN(v2_2E%,v2_2D%+v2_2C%)
v2_26%=(v2_2D%-1)/v2_2E%*1000
~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
'
CASE 6 ! line left
v2_2D%=MAX(1,v2_2D%-1)
v2_26%=(v2_2D%-1)/v2_2E%*1000
~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
'
CASE 7 ! line right
v2_2D%=MIN(v2_2E%,v2_2D%+1)
v2_26%=(v2_2D%-1)/v2_2E%*1000
~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
'
ENDSELECT
vB_41
'
CASE 25 ! WM_HSLID
~WIND_SET(v2_1F%,8,vC_0&(4),v2_27%,v2_27%,v2_27%)
v2_2D%=vC_0&(4)*v2_2E%/1000+1
vB_41
'
CASE 26 ! WM_VSLID
~WIND_SET(v2_1F%,9,vC_0&(4),v2_27%,v2_27%,v2_27%)
v2_2A%=vC_0&(4)*v2_2B%/1000+1
vB_41
'
ENDSELECT
LOOP
~WIND_CLOSE(v2_1F%)
~WIND_DELETE(v2_1F%)
DEFFILL 1,2,4
PBOX 0,19,639,399 ! Hintergrundmuster
DEFFILL 1,0
'
RETURN
> PROCEDURE vB_41
~WIND_GET(v2_1F%,4,v2_22%,v2_23%,v2_24%,v2_25%)
PBOX v2_22%-1,v2_23%-1,v2_22%+v2_24%,v2_23%+v2_25% ! Inhalt löschen
v2_31%=v2_23%/16+2 ! Beginn der PRINT-Ausgabe
v2_32%=(v2_23%+v2_25%)/16 ! Ende der PRINT-Ausgabe
v2_33%=v2_2A%
v2_34%=v2_22%/8+2 ! Spalte der Textausgabe
v2_35%=v2_24%/8-1 ! Länge einer Textzeile
IF v2_33%<6
v2_33%=6
ENDIF
IF v2_33%>=v2_2B%-17
v2_33%=v2_2B%-18
ENDIF
IF v2_2D%+v2_35%>LEN(v5_5$(v2_33%))
v2_2D%=LEN(v5_5$(v2_33%))-v2_35%
ENDIF
REPEAT
v1_3$=MID$(v5_5$(v2_33%),v2_2D%+6,v2_35%)
TEXT 0,v2_31%*16-3,LEFT$(v5_5$(v2_33%),5)
PRINT AT(v2_34%,v2_31%);v1_3$;
INC v2_31%
INC v2_33%
UNTIL v2_31%>v2_32% OR v2_33%>v2_2B%-2
vC_0&(0)=0
FOR v2_14%=1 TO 2
TEXT 0,(v2_14%)*16,MID$(v5_5$(v2_14%+2),v2_2D%,80)
NEXT v2_14%
TEXT 0,398,MID$(v5_5$(v2_2B%),v2_2D%,80)
RETURN
> PROCEDURE vB_40
~WIND_GET(v2_1F%,4,v2_22%,v2_23%,v2_24%,v2_25%)
v2_29%=v2_25%/16-1
v2_36%=v2_29%/v2_2B%*1000
~WIND_SET(v2_1F%,16,v2_36%,v2_27%,v2_27%,v2_27%)
v2_2C%=v2_24%/8-1
v2_37%=v2_2C%/v2_2E%*1000
~WIND_SET(v2_1F%,15,v2_37%,v2_27%,v2_27%,v2_27%)
RETURN
> PROCEDURE vB_43
v2_2B%=v2_19%
v2_2A%=6
v2_2D%=1
vB_4
FOR v2_D%=1 TO v2_2B%
v2_2E%=MAX(v2_2E%,LEN(v5_3$(v2_D%)))
v5_5$(v2_D%)=v5_3$(v2_D%)
RESTORE vA_46
DO
READ v2_7%,v2_38%
EXIT IF v2_7%=0 OR v2_38%=0
vB_45
LOOP
NEXT v2_D%
PRINT CHR$(27)+"w";
vA_46:
DATA 205,45,196,45,180,43,181,43,182,43,195,43,193,43,194,43,197,43
DATA 206,43,207,43,208,43,209,43,210,43,215,43,216,43,179,124,186,124
DATA 202,43,0,0
vB_0
RETURN
> PROCEDURE vB_45
DO
v2_8%=INSTR(v5_5$(v2_D%),CHR$(v2_7%))
EXIT IF v2_8%=0
MID$(v5_5$(v2_D%),v2_8%)=CHR$(v2_38%)
LOOP
RETURN
> PROCEDURE vB_49(v0_24#)
' Prozedur-Aufruf: dm_format(REALZAHL)
' Prozedur-Rückgabe steht in dm$
' Funktion: Umwandlung beliebiger Zahlen in DM-Format
' z.B. Aufruf dm_format(3412.3) Ausgabe in dm$: 3.412,30
v0_24#=INT(v0_24#*100+0.1)/100
v1_21$=STR$(v0_24#)
IF INSTR(v1_21$,".")=0
v1_21$=v1_21$+",--"
ELSE IF INSTR(v1_21$,".")=LEN(v1_21$)-1
v1_21$=LEFT$(v1_21$,LEN(v1_21$)-2)+","+RIGHT$(v1_21$,1)+"0"
ELSE
v1_21$=LEFT$(v1_21$,LEN(v1_21$)-3)+","+RIGHT$(v1_21$,2)
ENDIF
IF INSTR(v1_21$,",")>7
v1_21$=LEFT$(v1_21$,LEN(v1_21$)-9)+"."+RIGHT$(v1_21$,9)
ENDIF
IF INSTR(v1_21$,",")>4
v1_21$=LEFT$(v1_21$,LEN(v1_21$)-6)+"."+RIGHT$(v1_21$,6)
ENDIF
RETURN
> PROCEDURE vB_4A(v1_21$)
' Umkehrprozedur zu dm_format
vA_52:
IF INSTR(v1_21$,".")>0
v1_21$=LEFT$(v1_21$,INSTR(v1_21$,".")-1)+RIGHT$(v1_21$,LEN(v1_21$)-INSTR(v1_21$,"."))
GOTO vA_52
ENDIF
IF INSTR(v1_21$,",")>0
v1_21$=LEFT$(v1_21$,INSTR(v1_21$,",")-1)+"."+RIGHT$(v1_21$,LEN(v1_21$)-INSTR(v1_21$,","))
ENDIF
v0_24#=VAL(v1_21$)
RETURN
> PROCEDURE vB_4B
vB_1B
DEFFILL ,2,4
PBOX 0,19,639,399
IF v2_3%=0 AND v2_2%=0
ALERT 1,"|Keine Konten gespeichert!",1,"Hmpf.",v2_0%
GOTO vA_57
ENDIF
v0_1#=0
v0_3#=128
v0_2#=56
v0_4#=88
v0_5#=16
v0_6#=80
v1_3$="HABEN-KONTOS"
vB_36
v0_1#=0
v0_2#=88
v0_3#=128
v0_4#=92+v2_2%*16
@vB_1D
v0_5#=4
FOR v0_16#=1 TO v2_2%
IF v5_4$(MENU(0))="...zeigen"
SELECT v6_4%(v0_16#,1)
CASE 1
v5_0$(v0_16#,1)="B "+v5_0$(v0_16#,1)
CASE 2
v5_0$(v0_16#,1)="E "+v5_0$(v0_16#,1)
ENDSELECT
ELSE
v5_0$(v0_16#,1)=STRING$(2-LEN(STR$(v0_16#)),32)+STR$(v0_16#)+v5_0$(v0_16#,1)
ENDIF
v0_6#=88+v0_16#*16
v1_3$=LEFT$(v5_0$(v0_16#,1)+STRING$(15,32),15)
@vB_1E
v0_3#=v0_1#+18
v0_4#=v0_6#+1
v0_2#=v0_6#-15
v1_3$=LEFT$(v5_0$(v0_16#,1),2)
@vB_36
v5_0$(v0_16#,1)=RIGHT$(v5_0$(v0_16#,1),LEN(v5_0$(v0_16#,1))-2)
NEXT v0_16#
v0_1#=511
v0_2#=88
v0_3#=639
v0_4#=92+v2_3%*16
@vB_1D
v0_5#=515
FOR v0_15#=1 TO v2_3%
IF v5_4$(MENU(0))="...zeigen"
SELECT v6_4%(v0_15#,2)
CASE 1
v5_0$(v0_15#,2)="B "+v5_0$(v0_15#,2)
CASE 2
v5_0$(v0_15#,2)="E "+v5_0$(v0_15#,2)
ENDSELECT
ELSE
v5_0$(v0_15#,2)=STRING$(2-LEN(STR$(v0_15#)),32)+STR$(v0_15#)+v5_0$(v0_15#,2)
ENDIF
v0_6#=88+v0_15#*16
v1_3$=LEFT$(v5_0$(v0_15#,2)+STRING$(15,32),15)
@vB_1E
v0_3#=v0_1#+18
v0_4#=v0_6#+1
v0_2#=v0_6#-15
v1_3$=LEFT$(v5_0$(v0_15#,2),2)
@vB_36
v5_0$(v0_15#,2)=RIGHT$(v5_0$(v0_15#,2),LEN(v5_0$(v0_15#,2))-2)
NEXT v0_15#
v0_1#=511
v0_3#=639
v0_2#=56
v0_4#=88
v0_5#=535
v0_6#=80
v1_3$="SOLL-KONTOS"
vB_36
v0_1#=170
v0_3#=470
v0_2#=56
v0_4#=88
v1_3$="Aktueller Kontenrahmen: '"+LEFT$(v1_7$,8)+"'"
IF v1_7$=""
v1_3$="Bitte Kontenrahmen initialisieren!"
ENDIF
v0_6#=80
v0_5#=INT(320-LEN(v1_3$)/2*8)
vB_36
v0_1#=170
v0_3#=470
v0_2#=94
v0_4#=126
v1_3$="Aktuelle Datei: '"+v1_4$+"'"
IF v1_4$=""
v1_3$="Bitte Datei initialisieren!"
ENDIF
v0_6#=118
v0_5#=INT(320-LEN(v1_3$)/2*8)
vB_36
IF v5_4$(MENU(0))="...zeigen"
ALERT 1,"|'E' => Erfolgskonto|'B' => Bestandskonto",1,"Ah ja!",v2_0%
ENDIF
vA_57:
RETURN
> PROCEDURE vB_4D
IF v1_7$=""
ALERT 1,"|Erst Kontenrahmen|initialisieren!",1,"OKAY",v2_0%
GOTO vA_5A
ENDIF
vA_5C:
vB_4B
ALERT 2,"Soll ein SOLL- oder ein|HABEN-Konto umsortiert|werden?",1,"HABEN| SOLL ",v2_0%
v2_3D%=v2_0%
vA_59:
v1_B$="KONTENRAHMEN UMSORTIEREN"
v1_C$="Bitte die Nummer des Kontos angeben,"
v1_E$="das umsortiert werden soll:"
v2_45%=2
vB_33
SELECT v2_3D%
CASE 1
IF VAL(v1_F$)>v2_2% OR VAL(v1_F$)<1
ALERT 3,"Eine echte Quatscheingabe!|In der Kontenliste stehen die|möglichen HABEN-Kontennummern!",1,"OKAY",v2_0%
vB_4B
GOTO vA_59
ENDIF
CASE 2
IF VAL(v1_F$)>v2_3% OR VAL(v1_F$)<1
ALERT 3,"Eine echte Quatscheingabe!|In der Kontenliste stehen die|möglichen SOLL-Kontennummern!",1,"OKAY",v2_0%
vB_4B
GOTO vA_59
ENDIF
ENDSELECT
v0_28#=VAL(v1_F$)
vA_5B:
vB_4B
v1_B$="ZIELSTELLE WÄHLEN"
v1_C$="An welche Stelle soll das gewählte Konto"
v1_E$="sortiert werden?"
v2_45%=2
vB_33
SELECT v2_3D%
CASE 1
IF VAL(v1_F$)>v2_2% OR VAL(v1_F$)<1
ALERT 1,"Es sind nur bereits bestehende|Nummern möglich! Keine Konten-|neueingabe!",1," OKAY |Abbruch",v2_0%
IF v2_0%=2
GOTO vA_5A
ELSE
vB_4B
GOTO vA_5B
ENDIF
ENDIF
CASE 2
IF VAL(v1_F$)>v2_3% OR VAL(v1_F$)<1
ALERT 1,"Es sind nur bereits bestehende|Nummern möglich! Keine Konten-|neueingabe!",1," OKAY |Abbruch",v2_0%
IF v2_0%=2
GOTO vA_5A
ELSE
vB_4B
GOTO vA_5B
ENDIF
ENDIF
ENDSELECT
v0_29#=VAL(v1_F$)
SWAP v5_0$(v0_28#,v2_3D%),v5_0$(v0_29#,v2_3D%)
SWAP v6_4%(v0_28#,v2_3D%),v6_4%(v0_29#,v2_3D%)
vB_4B
v1_0$="|Weiter umsortieren?"
vB_19
IF v2_0%=1
GOTO vA_5C
ENDIF
vA_5A:
RETURN
> PROCEDURE vB_52
v2_7%=0
v0_1#=0
v0_3#=639
v0_2#=19
v0_4#=35
v0_5#=200
v0_6#=31
v1_3$="Nach oben blättern hier anklicken!"
vB_36
v0_1#=0
v0_3#=639
v0_2#=383
v0_4#=399
v0_5#=40
v0_6#=399
v1_3$="Nach unten blättern hier anklicken! Abbruch rechte Maustaste anklicken!"
vB_36
vA_5F:
DEFFILL ,0,0
PBOX 0,35,639,383
FOR v2_D%=1 TO 21
TEXT 0,36+v2_D%*16,v5_3$(v2_48%+v2_30%+v2_D%)
vA_55:
NEXT v2_D%
DO
MOUSE v2_9%,v2_A%,v2_B%
IF v2_B%=2
v3_1!=TRUE
ENDIF
IF v2_B%=1
IF v2_A%<35 AND v2_A%>19
SUB v2_30%,3
ELSE IF v2_A%>382
ADD v2_30%,3
ENDIF
IF v2_30%<0
v2_30%=0
ELSE IF v2_30%+22>v2_49%
v2_30%=v2_49%-21
ENDIF
ENDIF
EXIT IF v2_B%>0
LOOP
IF v3_1!
GOTO vA_66
ELSE
GOTO vA_5F
ENDIF
vA_66:
RETURN
> PROCEDURE vB_53
ALERT 1,v1_9$+"|Bitte Drucker bereitmachen.|Ausdruck braucht "+v1_5$,1,"Druck|Abbruch",v2_0%
IF v2_0%=2
GOTO vA_67
ENDIF
LPRINT CHR$(18);CHR$(27);CHR$(80);
v2_38%=0
v2_D%=0
v2_13%=0
vB_55("Ich drucke.|Abbruch mit der|'ESC'-Taste...")
vB_4
DO
' i%=Druckzeile bezogen auf den Text (nur ein Überschriftblock)
' si%=Druckzeile bezogen auf Drucker (extra Überschrift auf jeder Seite!)
INC v2_38%
INC v2_D%
EXIT IF v2_D%>v2_49%-v2_48% OR INKEY$=CHR$(27)
IF v2_38%/66=INT(v2_38%/66)
INC v2_13%
v1_5$="- Fortsetzung auf Seite "+STR$(v2_13%)+" -"
LPRINT STRING$(80-LEN(v1_5$)," ");v1_5$
LPRINT v5_3$(v2_48%+1)
LPRINT v5_3$(v2_48%+2)
LPRINT v5_3$(v2_48%+3)
LPRINT v5_3$(v2_48%+4)
LPRINT
ADD v2_38%,6
ENDIF
LPRINT v5_3$(v2_48%+v2_D%)
LOOP
LPRINT CHR$(12);
vB_0
vA_67:
RETURN
> PROCEDURE vB_55(v1_1B$)
IF INSTR(v1_1B$,"|")=0
v1_23$=v1_1B$
GOTO vA_68
ELSE
v1_23$=LEFT$(v1_1B$,INSTR(v1_1B$,"|")-1)
v1_1B$=RIGHT$(v1_1B$,LEN(v1_1B$)-LEN(v1_23$)-1)
IF INSTR(v1_1B$,"|")=0
v1_24$=v1_1B$
GOTO vA_68
ELSE
v1_24$=LEFT$(v1_1B$,INSTR(v1_1B$,"|")-1)
v1_25$=RIGHT$(v1_1B$,LEN(v1_1B$)-LEN(v1_24$)-1)
ENDIF
ENDIF
vA_68:
v0_2#=160
v0_4#=224
v0_1#=200
v0_3#=440
@vB_1D
vB_24
v0_5#=320-LEN(v1_23$)*4
v0_6#=184
v1_3$=v1_23$
vB_1E
v0_5#=320-LEN(v1_24$)*4
v0_6#=200
v1_3$=v1_24$
vB_1E
v0_5#=320-LEN(v1_25$)*4
v0_6#=216
v1_3$=v1_25$
vB_1E
RETURN
> PROCEDURE vB_57
PRINT CHR$(27)+"j";
GET 0,0,639,399,v1_2C$
v1_2B$=""
v1_B$="TASCHENRECHNER-TOOL"
v1_C$="Bitte Rechenaufgabe eingeben (nur Grundrechenarten):"
v1_E$="(Keine Klammern! Keine Punkt- vor Strichrechnung!)"
v2_45%=30
vB_33
vA_6B:
v2_51%=INSTR(v1_F$,"*")
v2_52%=INSTR(v1_F$,"/")
v2_53%=INSTR(v1_F$,"+")
v2_54%=INSTR(v1_F$,"-")
IF v2_51%=0 AND v2_52%=0 AND v2_53%=0 AND v2_54%=0
v0_28#=VAL(v1_F$)
IF v0_28#<>0
v1_F$=""
vB_58
ENDIF
IF v1_F$<>""
v1_2A$="** ERROR:|"+LEFT$(v1_F$,7)+"?"
ELSE
vB_49(v0_29#)
v1_2A$="ERGEBNIS:|"+v1_21$
ENDIF
GOTO vA_6C
ELSE
IF v2_51%>0 AND (v2_51%<v2_52% OR v2_52%=0) AND (v2_51%<v2_54% OR v2_54%=0) AND (v2_51%<v2_53% OR v2_53%=0)
v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"*")))
v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"*"))
vB_58
v1_2B$="*"
ELSE IF v2_52%>0 AND (v2_52%<v2_51% OR v2_51%=0) AND (v2_52%<v2_53% OR v2_53%=0) AND (v2_52%<v2_54% OR v2_54%=0)
v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"/")))
v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"/"))
vB_58
v1_2B$="/"
ELSE IF v2_53%>0 AND (v2_53%<v2_51% OR v2_51%=0) AND (v2_53%<v2_52% OR v2_52%=0) AND (v2_53%<v2_54% OR v2_54%=0)
v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"+")))
v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"+"))
vB_58
v1_2B$="+"
ELSE IF v2_54%>0 AND (v2_54%<v2_51% OR v2_51%=0) AND (v2_54%<v2_52% OR v2_52%=0) AND (v2_54%<v2_53% OR v2_53%=0)
v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"-")))
v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"-"))
vB_58
v1_2B$="-"
ENDIF
ENDIF
GOTO vA_6B
vA_6C:
PUT 0,0,v1_2C$
v1_1B$="Das Ergebnis erscheint|rechts unten im|Taschenrechner-Button!"
vB_55(v1_1B$)
MOUSE v2_9%,v2_A%,v2_B%
REPEAT
MOUSE v2_7%,v2_38%,v2_B%
UNTIL v2_7%<>v2_9% OR v2_38%<>v2_A%
PUT 0,0,v1_2C$
PRINT CHR$(27)+"k";
RETURN
> PROCEDURE vB_58
IF v1_2B$="*"
v0_29#=v0_29#*v0_28#
ELSE IF v1_2B$="/" AND v0_28#<>0
v0_29#=v0_29#/v0_28#
ELSE IF v1_2B$="+"
v0_29#=v0_29#+v0_28#
ELSE IF v1_2B$="-"
v0_29#=v0_29#-v0_28#
ELSE
v0_29#=v0_28#
ENDIF
RETURN
> PROCEDURE vB_56
v2_55%=v2_4%
GET 0,0,639,399,v1_2C$
PRINT CHR$(27)+"j";
v1_B$="SUCHEN-TOOL"
v1_C$="Bitte Buchungsdatum des gesuchten Belegs eingeben!"
v1_E$="(Falls unbekannt, einfach RETURN drücken!)"
v2_45%=10
vB_33
PUT 0,0,v1_2C$
v5_F$(1)=v1_F$
v1_C$="Bitte Buchungstext des gesuchten Belegs eingaben!"
v2_45%=27
vB_33
PUT 0,0,v1_2C$
v5_10$(1)=v1_F$
v1_C$="Bitte Buchungsbetrag des gesuchten Belegs eingeben!"
v2_45%=12
vB_33
PUT 0,0,v1_2C$
v4_6#(1)=VAL(v1_F$)
IF v5_F$(1)="" AND v5_10$(1)="" AND v4_6#(1)=0
PUT 0,0,v1_2C$
ALERT 2,"Sehr freundlich!|Ich darf mir also|einen Beleg aussuchen.",1,"Ja,äh..",v2_0%
GOTO vA_6E
ENDIF
IF v5_F$(1)<>""
v1_5$=v5_F$(1)
v1_27$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
IF LEN(v1_27$)=1
v1_27$="0"+v1_27$
ENDIF
v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
v1_26$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
IF LEN(v1_26$)=1
v1_26$="0"+v1_26$
ENDIF
v1_20$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
ENDIF
FOR v2_D%=1 TO v2_5%
IF v5_F$(1)<>""
v1_5$=v5_1$(v2_D%)
v1_2E$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
IF LEN(v1_27$)=1
v1_2E$="0"+v1_2E$
ENDIF
v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
v1_2F$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
IF LEN(v1_2F$)=1
v1_2F$="0"+v1_2F$
ENDIF
v1_30$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
IF v1_27$<>v1_2E$ OR v1_26$<>v1_2F$ OR v1_20$<>v1_30$
GOTO vA_6F
ENDIF
ENDIF
IF v5_10$(1)<>"" AND v5_10$(1)<>v5_2$(v2_D%)
GOTO vA_6F
ENDIF
IF v4_6#(1)>0 AND v0_35#<>v4_0#(v2_D%)
GOTO vA_6F
ENDIF
v2_4%=v2_D%
v2_D%=v2_5%
vA_6F:
NEXT v2_D%
IF v2_4%=v2_55%
GOTO vA_6E
ENDIF
v1_1B$="SUCHEN-TOOL|Beleg gefunden.|Lfd.Nr. "+STR$(v2_4%)
vB_55(v1_1B$)
MOUSE v2_9%,v2_A%,v2_B%
REPEAT
MOUSE v2_7%,v2_38%,v2_B%
UNTIL v2_7%<>v2_9% OR v2_38%<>v2_A%
PUT 0,0,v1_2C$
PRINT CHR$(27)+"k";
vB_37
vB_25
GOTO vA_70
vA_6E:
PUT 0,0,v1_2C$
PRINT CHR$(27)+"k";
vA_70:
RETURN
' **** Beginn des grafischen Teils
> PROCEDURE vB_60
CLS
DEFTEXT 1,0,0,32
TEXT 20,32,v1_31$
DEFTEXT 1,0,0,6
TEXT 20,44,v1_32$
v0_41#=30
v0_42#=355
v0_43#=25
v0_44#=50
v0_45#=470
v0_46#=250
v0_47#=v0_46#
v0_48#=v0_45#
v0_49#=v0_41#+v0_43#
v0_4A#=v0_42#-v0_44#
GOSUB vB_69
v0_4B#=v0_49#+v0_48#
v0_4C#=v0_4A#-v0_47#
v0_4D#=v0_41#+v0_48#
v0_4E#=v0_42#-v0_47#
v0_4F#=0
v0_21#=v0_4F#
v0_50#=(v0_49#-v0_41#)/v0_3E#
v0_51#=(v0_4A#-v0_42#)/v0_3E#
FOR v0_25#=0 TO v0_3E#
DRAW v0_41#+v0_4F#,v0_42#+v0_21# TO v0_4D#+v0_4F#,v0_42#+v0_21#
v0_4F#=v0_4F#+v0_50#
v0_21#=v0_21#+v0_51#
NEXT v0_25#
v0_4F#=0
v0_50#=(v0_4D#-v0_41#)/v0_3F#
FOR v0_25#=0 TO v0_3F#
DRAW v0_41#+v0_4F#,v0_42# TO v0_49#+v0_4F#,v0_4A#
DRAW v0_49#+v0_4F#,v0_4A# TO v0_49#+v0_4F#,v0_4C#
v0_4F#=v0_4F#+v0_50#
NEXT v0_25#
v0_4F#=0
v0_21#=v0_4F#
v0_50#=(v0_4E#-v0_42#)/v0_52#
FOR v0_25#=0 TO v0_52#
DRAW v0_41#,v0_42#+v0_4F# TO v0_49#,v0_4A#+v0_4F#
DRAW v0_49#,v0_4A#+v0_4F# TO v0_4B#,v0_4A#+v0_4F#
v0_4F#=v0_4F#+v0_50#
v0_53#=v0_4B#+2
v0_54#=v0_4A#+v0_25#*v0_50#
v0_55#=INT(v0_25#*v0_E#/v0_52#)
v1_36$=STR$(v0_55#)
v0_56#=4
DEFTEXT 1,0,0,v0_56#
TEXT v0_53#,v0_54#,v1_36$
NEXT v0_25#
DRAW v0_41#,v0_42# TO v0_41#,v0_4E#
v0_50#=(v0_4D#-v0_41#)/v0_3F#
v0_51#=(v0_42#-v0_4A#)/v0_3E#
v0_57#=(v0_49#-v0_41#)/v0_3E#
v0_55#=v0_50#/4
v0_21#=0
v0_58#=v0_21#
IF v1_38$=" säulen "
GOSUB vB_6A
ELSE
GOSUB vB_6B
ENDIF
RETURN
> PROCEDURE vB_6A
FOR v0_59#=v0_3E# DOWNTO 1
v0_4F#=0
v0_5A#=1
DEFFILL 1,2,v0_59#*2-2
v1_36$=v5_13$(v0_59#)
FOR v0_25#=1 TO v0_3F#
v0_5B#=v0_49#+v0_4F#+1+v0_55#*0.5-v0_58#-3*v0_57#/4
v0_5C#=v0_5B#+v0_50#-v0_55#
v0_5D#=v0_4A#+v0_21#+3*v0_51#/4
v0_5E#=v0_5D#-v4_9#(v0_59#,v0_25#)*v0_5F#
BOX v0_5B#,v0_5E#,v0_5C#,v0_5D#
PBOX v0_5B#+1,v0_5E#+1,v0_5C#-1,v0_5D#-1
GOSUB vB_6C
GOSUB vB_6D
v0_4F#=v0_4F#+v0_50#
NEXT v0_25#
v0_56#=6
v0_53#=v0_5B#+v0_50#+4
v0_54#=v0_5D#+4
DEFTEXT 1,0,0,v0_56#
TEXT v0_53#,v0_54#,v5_13$(v0_59#)
v0_58#=v0_58#+v0_57#
v0_21#=v0_21#+v0_51#
NEXT v0_59#
FOR v0_25#=1 TO v0_3F#
v0_53#=v0_41#+v0_50#*v0_25#-(v0_50#/4)*3.5
v0_54#=v0_42#+8+v0_D#
v1_36$=STR$(v0_25#)
DEFTEXT 1,0,0,6
TEXT v0_53#,v0_54#,v5_14$(v0_25#)
DEFTEXT 1,0,0,4
TEXT v0_53#,v0_54#+7,v5_15$(v0_25#)
NEXT v0_25#
RETURN
> PROCEDURE vB_6C
v4_A#(1)=v0_5C#
v4_A#(2)=v0_5C#+2*v0_57#/4
v4_A#(3)=v0_5C#+2*v0_57#/4
v4_A#(0)=v0_5C#
v4_B#(1)=v0_5D#
v4_B#(2)=v0_5D#-2*v0_51#/4
v4_B#(3)=v0_5E#-2*v0_51#/4
v4_B#(0)=v0_5E#
POLYFILL 4,v4_A#(),v4_B#()
RETURN
> PROCEDURE vB_6D
v4_A#(1)=v0_5B#
v4_A#(2)=v0_5C#
v4_A#(3)=v0_5C#+2*v0_57#/4
v4_A#(0)=v0_5B#+2*v0_57#/4
v4_B#(1)=v0_5E#
v4_B#(2)=v0_5E#
v4_B#(3)=v0_5E#-2*v0_51#/4
v4_B#(0)=v0_5E#-2*v0_51#/4
POLYFILL 4,v4_A#(),v4_B#()
RETURN
> PROCEDURE vB_6B
FOR v0_59#=v0_3E# DOWNTO 1
DEFFILL 1,2,v0_59#*2-2
GOSUB vB_6E
v1_36$=v5_13$(v0_59#)
v0_53#=v0_49#+v0_45#+5-v0_60#*v0_57#
v0_54#=v0_4A#+v0_51#+v0_60#*v0_51#
DEFTEXT 1,0,0,6
TEXT v0_53#,v0_54#,v5_13$(v0_59#)
NEXT v0_59#
FOR v0_0#=0 TO v0_3F#-1
v0_53#=v0_41#+v0_0#*v0_50#-20
v0_54#=v0_42#+10
DEFTEXT 1,0,0,6
TEXT v0_53#,v0_54#,v5_14$(v0_0#+1)
DEFTEXT 1,0,0,4
TEXT v0_53#,v0_54#+7,v5_15$(v0_0#+1)
NEXT v0_0#
RETURN
> PROCEDURE vB_6E
v0_61#=v0_3F#-1
v0_60#=v0_3E#-v0_59#
FOR v0_62#=0 TO v0_61#
v0_63#=v0_61#-v0_62#
v4_A#(v0_62#)=v0_49#+v0_62#*v0_50#-v0_60#*v0_57#-v0_57#
v4_A#(v0_3F#+v0_63#)=v4_A#(v0_62#)+v0_57#
v4_B#(v0_62#)=v0_4A#-v0_5F#*v4_9#(v0_59#,v0_62#+1)+4.2*v0_51#/4+v0_60#*v0_51#
v4_B#(v0_3F#+v0_63#)=v4_B#(v0_62#)-v0_51#
NEXT v0_62#
POLYFILL v0_3F#*2,v4_A#(),v4_B#()
FOR v0_62#=0 TO v0_61#
DRAW v4_A#(v0_62#),v4_B#(v0_62#) TO v4_A#(v0_62#)+v0_57#,v4_B#(v0_62#)-v0_51#
NEXT v0_62#
v4_A#(v0_3F#)=v4_A#(v0_61#)
v4_B#(v0_3F#)=v0_4A#+v0_51#+v0_60#*v0_51#
v4_A#(v0_3F#+1)=v0_49#-v0_60#*v0_57#-v0_57#
v4_B#(v0_3F#+1)=v4_B#(v0_3F#)
POLYFILL v0_3F#+2,v4_A#(),v4_B#()
v4_A#(1)=v4_A#(v0_61#)
v4_B#(1)=v4_B#(v0_61#)
v4_A#(2)=v4_A#(1)+v0_57#
v4_B#(2)=v4_B#(1)-v0_51#
v4_A#(3)=v4_A#(2)
v4_B#(3)=v0_4A#+v0_60#*v0_51#
v4_A#(0)=v4_A#(1)
v4_B#(0)=v0_4A#+v0_51#+v0_60#*v0_51#
POLYFILL 4,v4_A#(),v4_B#()
RETURN
> PROCEDURE vB_5F
CLS
GOSUB vB_69
v0_64#=260/v0_52#
v0_65#=450/(v0_3F#-1)
v0_66#=450/(v0_3F#-1)
v0_67#=v0_3F#-1
v0_68#=0
IF v1_38$=" balken "
v0_68#=1
v0_67#=v0_3F#
v0_65#=450/v0_3F#
v0_66#=v0_65#
ENDIF
v0_69#=v0_E#/v0_52#
v0_6A#=260/v0_E#
v0_3B#=40
v0_6B#=330
DRAW v0_3B#,v0_6B# TO v0_3B#+450,v0_6B#
FOR v0_0#=1 TO v0_52#
v0_6B#=330-v0_0#*v0_64#
DRAW v0_3B#,v0_6B# TO 490,v0_6B#
NEXT v0_0#
v0_6B#=330
FOR v0_0#=0 TO v0_67#
v0_3B#=40+v0_0#*v0_65#
DRAW v0_3B#,v0_6B# TO v0_3B#,v0_6B#-260
NEXT v0_0#
FOR v0_6C#=1 TO v0_3E#
IF v0_6C#<3
v0_6D#=3
ELSE
v0_6D#=5
ENDIF
v0_3B#=40
v0_6B#=330
IF v0_68#=1
GOSUB vB_6F
ELSE
PLOT v0_3B#,v0_6B#-(v4_9#(v0_6C#,1)*v0_6A#)
DEFLINE 1,v0_6D#,2,2
FOR v0_0#=2 TO v0_3F#
v0_3B#=v0_3B#+v0_66#
v0_6B#=330-(v4_9#(v0_6C#,v0_0#)*v0_6A#)
GOSUB vB_70
NEXT v0_0#
IF v0_6C#/2<>INT(v0_6C#/2)
GOSUB vB_71
ENDIF
DEFTEXT 1,0,0,6
TEXT v0_3B#+25,v0_6B#,v5_13$(v0_6C#)
ENDIF
NEXT v0_6C#
IF v1_38$=" linien "
DEFLINE 1,1,0,0
GOSUB vB_72
ENDIF
RETURN
> PROCEDURE vB_70
DRAW TO v0_3B#,v0_6B#
RETURN
> PROCEDURE vB_71
v0_3B#=40
v0_6B#=330
PLOT v0_3B#,v0_6B#-(v4_9#(v0_6C#,1)*v0_6A#)
DEFLINE 1,1,2,2
GRAPHMODE 3
FOR v0_0#=2 TO v0_3F#
v0_3B#=v0_3B#+v0_66#
v0_6B#=330-(v4_9#(v0_6C#,v0_0#)*v0_6A#)
DRAW TO v0_3B#,v0_6B#
NEXT v0_0#
GRAPHMODE 1
RETURN
> PROCEDURE vB_6F
v0_66#=450/v0_3F#
v0_6E#=v0_66#/v0_3E#
FOR v0_0#=1 TO v0_3E#
DEFFILL 1,2,v0_0#*2-1
FOR v0_63#=1 TO v0_3F#
v0_6F#=v0_66#*v0_63#-35+(v0_0#-1)*v0_6E#
v0_6F#=40+(v0_63#-1)*v0_66#+(v0_0#-1)*v0_6E#
v0_70#=v0_6F#+v0_6E#
v0_71#=330-(v4_9#(v0_0#,v0_63#)*v0_6A#)
PBOX v0_6F#,330,v0_70#,v0_71#
NEXT v0_63#
NEXT v0_0#
v0_72#=(12-v0_3F#)*10
FOR v0_25#=1 TO v0_3E#
DEFFILL 1,2,v0_25#*2-1
PCIRCLE 535,v0_72#+v0_25#*(340/14)+47,12
NEXT v0_25#
FOR v0_25#=1 TO v0_3E#
DEFTEXT 1,0,0,6
TEXT 551,v0_72#+49+v0_25#*24.2,v5_13$(v0_25#)
NEXT v0_25#
GOSUB vB_72
RETURN
> PROCEDURE vB_72
DEFTEXT 1,0,0,32
TEXT 20,30,v1_31$
DEFTEXT 1,0,0,6
TEXT 20,45,v1_32$
FOR v0_0#=1 TO v0_52#
DEFTEXT 1,0,0,4
TEXT 500,330-(v0_0#*v0_64#),INT(v0_0#*v0_69#)
NEXT v0_0#
v0_73#=500-(v0_68#=1)
v0_E#=0
FOR v0_0#=25 TO v0_73# STEP v0_66#
v0_74#=v0_0#
IF v0_68#=1
v0_74#=v0_74#+20
ENDIF
v0_E#=v0_E#+1
DEFTEXT 1,0,0,6
TEXT v0_74#,340,v5_14$(v0_E#)
DEFTEXT 1,0,0,4
TEXT v0_74#,348,v5_15$(v0_E#)
NEXT v0_0#
RETURN
> PROCEDURE vB_69
v0_E#=0
FOR v0_3B#=1 TO v0_3E#
FOR v0_4F#=1 TO v0_3F#
IF v4_9#(v0_3B#,v0_4F#)>v0_E#
v0_E#=v4_9#(v0_3B#,v0_4F#)
ENDIF
NEXT v0_4F#
NEXT v0_3B#
IF v0_40#>v0_E#
v0_E#=v0_40#
ENDIF
IF v0_E#=0
v0_E#=1
ENDIF
v0_5F#=v0_47#/v0_E#
IF v0_E#<31
v0_52#=v0_E#
ELSE
v0_52#=INT(SQR(v0_E#))
ENDIF
RETURN
> PROCEDURE vB_5E
CLS
ALERT 2,"Beschriftung der Kuchenteile :",1,"keine|Zahlwert|% -wert",v0_38#
FOR v0_63#=1 TO v0_3E#
v0_75#=0
FOR v0_0#=1 TO v0_3F#
v0_75#=v0_75#+v4_9#(v0_63#,v0_0#)
NEXT v0_0#
v0_76#=3600/v0_75#
v0_77#=0
IF v0_3E#=1
v0_78#=240
v0_79#=190
v0_7A#=135
v0_7B#=105
ENDIF
IF v0_3E#=2
v0_7A#=105
v0_7B#=90
IF v0_63#=1
v0_78#=130
v0_79#=200
ELSE
v0_78#=380
v0_79#=200
ENDIF
ENDIF
IF v0_3E#=3
v0_7A#=87
v0_7B#=78
v0_78#=105
v0_79#=145
IF v0_63#=2
v0_78#=400
v0_79#=145
ENDIF
IF v0_63#=3
v0_78#=250
v0_79#=270
ENDIF
ENDIF
IF v0_3E#=4
v0_7A#=75
v0_7B#=67
v0_78#=90
v0_79#=125
IF v0_63#=2
v0_78#=320
v0_79#=125
ENDIF
IF v0_63#=3
v0_78#=200
v0_79#=285
ENDIF
IF v0_63#=4
v0_78#=430
v0_79#=285
ENDIF
ENDIF
ELLIPSE v0_78#,v0_79#,v0_7A#,v0_7B#
FOR v0_0#=1 TO v0_3F#
DEFTEXT 1,0,0,4
v0_7C#=v0_77#
v0_77#=v0_77#+v4_9#(v0_63#,v0_0#)*v0_76#
DEFFILL v0_0#>1,2,v0_0#
PELLIPSE v0_78#,v0_79#,v0_7A#,v0_7B#,v0_7C#,v0_77#
ELLIPSE v0_78#,v0_79#,v0_7A#,v0_7B#,v0_7C#,v0_77#
IF v0_38#>1
v0_66#=((v0_7C#+v0_77#)/2)*PI/1800
v0_7D#=0
IF v0_66#>PI/2
IF v0_66#<5.3
v0_7D#=8
ENDIF
ENDIF
v0_7E#=v4_9#(v0_63#,v0_0#)
IF v0_38#=3
v0_7E#=INT(100*v0_7E#/v0_75#)
ENDIF
TEXT v0_78#-v0_7D#+v0_7A#*1.1*SIN(v0_66#+0.5*PI),v0_79#+v0_7B#*1.1*COS(v0_66#+0.5*PI),v0_7E#
ENDIF
NEXT v0_0#
DEFTEXT 1,0,0,6
v1_37$="Summe="+STR$(v0_75#)
TEXT v0_78#-v0_7A#/3,v0_79#+5*v0_7B#/4+9,v1_37$
DEFTEXT 1,1,0,6
TEXT v0_78#-v0_7A#/3,v0_79#+5*v0_7B#/4,v5_13$(v0_63#)
NEXT v0_63#
v0_72#=(12-v0_3F#)*10
CIRCLE 530,v0_72#+70,12
FOR v0_25#=2 TO v0_3F#
DEFFILL v0_25#>1,2,v0_25#
PCIRCL