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 >
GFA-BASIC Atari  |  1986-02-06  |  114KB  |  4,958 lines

  1. ' JOURNAL-AS
  2. ' (C) 10/1988 by Ingmar P. Brunken
  3. ' Update W.-Germany (0)221/215976
  4. ' V 1.01 Last Update 31/08/89 18:00
  5. vB_0
  6. vB_1
  7. ON MENU GOSUB vB_2
  8. DO
  9.   ON MENU
  10. LOOP
  11. > PROCEDURE vB_0
  12.   DEFMOUSE 0
  13. RETURN
  14. > PROCEDURE vB_4
  15.   DEFMOUSE 2
  16. RETURN
  17. > PROCEDURE vB_1
  18.   DIM v5_0$(99,2),v5_1$(2000),v6_0%(2000),v4_0#(2000)
  19.   DIM v6_1%(2000),v6_2%(2000),v5_2$(2000),v5_3$(2000),v4_1#(99)
  20.   DIM v5_4$(100),v5_5$(2000),vC_0&(7)
  21.   DIM v4_2#(99),v6_3%(99,2),v6_4%(99,2)
  22.   DIM v5_6$(200),v4_3#(200),v4_4#(200)
  23.   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)
  24.   ' Dimensionierung für den Grafikteil für 100 Grafiken, max 4 Reihen 14 Spalten
  25.   DIM v5_1A$(100),v5_1B$(100),v4_E#(100),v4_F#(100)
  26.   DIM v4_10#(4,14,100),v5_1C$(4,100),v5_1D$(14,100),v5_1E$(14,100),v5_19$(100)
  27.   DIM v4_9#(4,14),v5_13$(4),v5_14$(14),v5_15$(14)
  28.   DIM v5_B$(5),v4_A#(50),v4_B#(50)
  29.   RESTORE vA_0
  30.   FOR v0_0#=0 TO 60
  31.     READ v5_4$(v0_0#)
  32.     EXIT IF v5_4$(v0_0#)="+++++"
  33.   NEXT v0_0#
  34.   v5_4$(v0_0#)=""
  35.   v5_4$(v0_0#+1)=""
  36. vA_0:
  37.   DATA JOURNAL-AS, Info
  38.   DATA ------------,     ,     ,     ,     ,     ,     ,""
  39.   DATA DATEN,...initialisieren,...EDITOR,-----------------,...laden,...speichern,-----------------
  40.   DATA    QUIT,""
  41.   DATA PARAMETER,...Datum,...Überschrift
  42.   DATA ---KONTENRAHMEN---,...initialisieren,...zeigen,...umsortieren
  43.   DATA ...laden,...speichern,...neues Konto,...Konto auflösen,""
  44.   DATA ARBEITEN,   Abschluß,   Anlagespiegel,   G&V-Rechnung
  45.   DATA    Erfolgsstatistik,""
  46.   DATA AUSGABE,   Bildschirm,   Drucker,---------------
  47.   DATA "   Kontenform","   Journalform",""
  48.   DATA +++++
  49.   DEFTEXT 1,0,0,13
  50.   DEFFILL ,2,4
  51.   PBOX 0,19,639,399
  52.   @vB_5
  53.   ' Inits für Tanzschulbuchhaltung wie Kontennamen etc.
  54.   MENU v5_4$()
  55.   @vB_6
  56.   v5_1$(0)=DATE$
  57.   @vB_7
  58. RETURN
  59. > PROCEDURE vB_2
  60.   @vB_0
  61.   MENU OFF
  62.   IF v5_4$(MENU(0))=" Info"
  63.     MENU v5_4$()
  64.     @vB_8
  65.   ENDIF
  66.   IF v5_4$(MENU(0))="   QUIT"
  67.     MENU v5_4$()
  68.     @vB_9
  69.   ENDIF
  70.   IF v5_4$(MENU(0))="...laden" AND MENU(0)<>26
  71.     MENU v5_4$()
  72.     @vB_A
  73.   ENDIF
  74.   IF v5_4$(MENU(0))="...speichern" AND MENU(0)<>27
  75.     MENU v5_4$()
  76.     @vB_B
  77.   ENDIF
  78.   IF v5_4$(MENU(0))="...initialisieren" AND MENU(0)=11
  79.     MENU v5_4$()
  80.     @vB_C
  81.   ENDIF
  82.   IF v5_4$(MENU(0))="...EDITOR"
  83.     MENU v5_4$()
  84.     @vB_D
  85.   ENDIF
  86.   IF v5_4$(MENU(0))="...Datum"
  87.     MENU v5_4$()
  88.     @vB_6
  89.   ENDIF
  90.   IF v5_4$(MENU(0))="...Überschrift"
  91.     MENU v5_4$()
  92.     @vB_E
  93.   ENDIF
  94.   IF v5_4$(MENU(0))="...initialisieren" AND MENU(0)=23
  95.     MENU v5_4$()
  96.     @vB_F
  97.   ENDIF
  98.   IF v5_4$(MENU(0))="...laden" AND MENU(0)=26
  99.     MENU v5_4$()
  100.     @vB_10
  101.   ENDIF
  102.   IF v5_4$(MENU(0))="...speichern" AND MENU(0)=27
  103.     MENU v5_4$()
  104.     @vB_11
  105.   ENDIF
  106.   IF v5_4$(MENU(0))="...neues Konto"
  107.     MENU v5_4$()
  108.     @vB_12
  109.   ENDIF
  110.   IF v5_4$(MENU(0))="...Konto auflösen"
  111.     MENU v5_4$()
  112.     @vB_13
  113.   ENDIF
  114.   IF v5_4$(MENU(0))="   G&V-Rechnung"
  115.     MENU v5_4$()
  116.     vB_3B
  117.   ENDIF
  118.   IF v5_4$(MENU(0))="   Anlagespiegel"
  119.     MENU v5_4$()
  120.     @vB_15
  121.   ENDIF
  122.   IF v5_4$(MENU(0))="   Abschluß"
  123.     MENU v5_4$()
  124.     @vB_16
  125.   ENDIF
  126.   IF v5_4$(MENU(0))="   Erfolgsstatistik"
  127.     MENU v5_4$()
  128.     @vB_3C
  129.   ENDIF
  130.   IF v5_4$(MENU(0))="   Bildschirm"
  131.     MENU v5_4$()
  132.     @vB_17
  133.   ENDIF
  134.   IF v5_4$(MENU(0))="   Drucker"
  135.     MENU v5_4$()
  136.     @vB_18
  137.   ENDIF
  138.   IF v5_4$(MENU(0))="...umsortieren"
  139.     MENU v5_4$()
  140.     vB_4D
  141.   ENDIF
  142.   vB_7
  143.   vB_4B
  144.   vB_0
  145. RETURN
  146. > PROCEDURE vB_6
  147.   DEFTEXT 1,0,0,13
  148.   PRINT AT(10,20);
  149.   v1_0$="Stimmt Zeit und Datum"+"|Datum: "+DATE$+"|Zeit : "+TIME$
  150.   @vB_19
  151.   IF v2_0%=2
  152.     @vB_1A
  153.   ENDIF
  154.   v1_1$=DATE$
  155.   ALERT 1,"Basiskontenrahmen gespeichert.|Individuelle Änderungen unter|Menüpunkt 'Kontenrahmen'!",1," OK ",v2_0%
  156.   ALERT 2,"|Aktuelles Laufwerk angeben:",1," A | B |Harddisk",v2_0%
  157.   SELECT v2_0%
  158.   CASE 1
  159.     v1_10$="A:"
  160.     v1_13$="A:"
  161.   CASE 2
  162.     v1_10$="B:"
  163.     v1_13$="B:"
  164.   CASE 3
  165.     v1_B$="LAUFWERK DER HARDDISC"
  166.     v1_C$="Arbeitslaufwerk der Harddisc angeben. Falls verschiedene"
  167.     v1_E$="Laufwerke benutzt werden sollen, '0' eingeben!"
  168.     v2_45%=1
  169.     vB_33
  170.     IF INSTR("ABCDEFGHIJKLMNabcdefghijklmn",v1_F$)>0
  171.       v1_13$=UPPER$(v1_F$)+":"
  172.       v1_10$=UPPER$(v1_F$)+":"
  173.     ENDIF
  174.   ENDSELECT
  175.   vB_4B
  176. RETURN
  177. > PROCEDURE vB_19
  178.   ALERT 2,v1_0$,2," JA |NEIN",v2_0%
  179. RETURN
  180. > PROCEDURE vB_1A
  181.   @vB_1C
  182.   REPEAT
  183.     PRINT AT(45,13);
  184.     FORM INPUT 10,v1_1$
  185.     PRINT AT(45,15);
  186.     FORM INPUT 10,v1_2$
  187.     REPEAT
  188.     UNTIL MOUSEK
  189.   UNTIL MOUSEK
  190.   SETTIME v1_2$,v1_1$
  191.   @vB_6
  192. RETURN
  193. > PROCEDURE vB_1C
  194.   v0_1#=137
  195.   v0_2#=47
  196.   v0_3#=503
  197.   v0_4#=303
  198.   @vB_1D
  199.   v0_1#=140
  200.   v0_2#=50
  201.   v0_3#=500
  202.   v0_4#=300
  203.   @vB_1D
  204.   v0_1#=141
  205.   v0_2#=50
  206.   v0_3#=499
  207.   v0_4#=299
  208.   @vB_1D
  209.   v0_5#=190
  210.   v0_6#=80
  211.   v1_3$="JOURNAL-AS 1.0 ST"
  212.   @vB_1E
  213.   v0_5#=190
  214.   v0_6#=140
  215.   v1_3$="Datum und Uhrzeit einstellen"
  216.   @vB_1E
  217.   v0_5#=190
  218.   v0_6#=200
  219.   v1_3$="Datum: "+DATE$
  220.   @vB_1E
  221.   v0_5#=190
  222.   v0_6#=230
  223.   v1_3$="Zeit : "+TIME$
  224.   @vB_1E
  225.   v0_1#=346
  226.   v0_2#=181
  227.   v0_3#=455
  228.   v0_4#=210
  229.   @vB_1D
  230.   v0_1#=346
  231.   v0_2#=212
  232.   v0_3#=455
  233.   v0_4#=243
  234.   @vB_1D
  235.   v0_1#=260
  236.   v0_2#=250
  237.   v0_3#=380
  238.   v0_4#=270
  239.   @vB_1D
  240.   v0_5#=300
  241.   v0_6#=266
  242.   v1_3$="OKAY"
  243.   @vB_1E
  244. RETURN
  245. > PROCEDURE vB_1D
  246.   DEFFILL 0,0,
  247.   PBOX v0_1#,v0_2#,v0_3#,v0_4#
  248.   BOX v0_1#,v0_2#,v0_3#,v0_4#
  249.   DEFFILL 1,0,0
  250. RETURN
  251. > PROCEDURE vB_1E
  252.   TEXT v0_5#,v0_6#,v1_3$
  253. RETURN
  254. > PROCEDURE vB_7
  255.   MENU v5_4$()
  256.   ' Menu-Status bei Programmstart
  257.   MENU 33,2
  258.   MENU 33,0
  259.   MENU 34,2
  260.   MENU 34,0
  261.   MENU 35,3
  262.   MENU 35,0
  263.   MENU 38,0
  264.   MENU 38,2
  265.   MENU 39,0
  266.   MENU 39,2
  267.   MENU 42,2
  268.   MENU 42,1
  269.   ' Menu-Status aus bisherigem Programmablauf
  270.   IF MENU(0)=42
  271.     '    Menu 41,2
  272.     '    Menu 41,1
  273.     '    Menu 42,3
  274.     '    Menu 42,0
  275.   ENDIF
  276.   IF MENU(0)=41
  277.     MENU 42,2
  278.     MENU 42,1
  279.     MENU 41,3
  280.     MENU 41,0
  281.     ALERT 1,"Bisher nur Journalform|möglich. Kontenform|noch Option!",1,"OK",v2_0%
  282.   ENDIF
  283.   ' Abschluß erledigt
  284.   IF v2_1%=-1
  285.     MENU 32,3
  286.     MENU 32,1
  287.     MENU 33,3
  288.     MENU 33,0
  289.   ENDIF
  290.   ' Anlagespiegel erledigt
  291.   IF v2_1%=-2
  292.     MENU 32,3
  293.     MENU 32,0
  294.     MENU 33,3
  295.     MENU 33,1
  296.     MENU 34,3
  297.     MENU 34,0
  298.   ENDIF
  299.   ' V&G-Rechnung erledigt
  300.   IF v2_1%=-3
  301.     MENU 32,3
  302.     MENU 32,0
  303.     MENU 33,3
  304.     MENU 33,0
  305.     MENU 34,3
  306.     MENU 34,1
  307.   ENDIF
  308.   ' Erfolgsstatistik erledigt
  309.   '  IF statusflag%=-4
  310.   '  MENU 32,3
  311.   '  MENU 32,1
  312.   '  MENU 33,3
  313.   '  MENU 33,1
  314.   '  MENU 34,3
  315.   '  MENU 34,1
  316.   '  MENU 35,3
  317.   '  MENU 35,1
  318.   ' ENDIF
  319.   ' Ausgabemenü öffnen
  320.   IF v2_1%<0
  321.     MENU 38,3
  322.     MENU 38,0
  323.     MENU 39,3
  324.     MENU 39,0
  325.   ENDIF
  326. RETURN
  327. > PROCEDURE vB_1F
  328.   IF v2_2%<2 OR v2_3%<2
  329.     ALERT 1," *** ERROR ***|KEIN KONTENRAHMEN!|BITTE EINGEBEN ODER LADEN!",1,"Ach so!",v2_0%
  330.     GOTO vA_1
  331.   ENDIF
  332.   v0_1#=0
  333.   v0_2#=19
  334.   v0_3#=639
  335.   v0_4#=399
  336.   @vB_1D
  337.   v0_1#=3
  338.   v0_2#=22
  339.   v0_3#=636
  340.   v0_4#=396
  341.   @vB_1D
  342.   DEFFILL ,2,1
  343.   PBOX 3,22,636,45
  344.   v1_3$="EINGABE DER BELEGE IN DATEI '"+v1_4$+"'"
  345.   v0_5#=(640-8*LEN(v1_3$))/2
  346.   v0_6#=38
  347.   @vB_1E
  348.   DEFFILL ,2,4
  349.   PBOX 3,45,636,396
  350.   DEFFILL ,0,0
  351.   ' Konto-Von-Box
  352.   v0_1#=10
  353.   v0_2#=55
  354.   v0_3#=138
  355.   v0_4#=92+v2_2%*16
  356.   @vB_1D
  357.   v0_5#=28
  358.   v0_6#=72
  359.   v1_3$="BUCHUNG VON:"
  360.   @vB_1E
  361.   v0_5#=28
  362.   v0_6#=88
  363.   v1_3$="<< HABEN >>"
  364.   @vB_1E
  365.   LINE 10,88,138,88
  366.   ' Konto-Nach-Box
  367.   v0_1#=140
  368.   v0_2#=55
  369.   v0_3#=268
  370.   v0_4#=92+v2_3%*16
  371.   @vB_1D
  372.   v0_5#=150
  373.   v0_6#=72
  374.   v1_3$="BUCHUNG NACH:"
  375.   @vB_1E
  376.   v0_5#=150
  377.   v0_6#=88
  378.   v1_3$="<<  SOLL  >>"
  379.   @vB_1E
  380.   LINE 140,88,268,88
  381.   @vB_20
  382.   @vB_21
  383.   ' Datumbox
  384.   v0_1#=270
  385.   v0_2#=55
  386.   v0_4#=240
  387.   v0_3#=352
  388.   @vB_1D
  389.   v0_5#=274
  390.   v0_6#=72
  391.   v1_3$="BUCHUNGS-"
  392.   @vB_1E
  393.   v0_5#=289
  394.   v0_6#=88
  395.   v1_3$="DATUM"
  396.   @vB_1E
  397.   LINE 270,88,352,88
  398.   v0_5#=271
  399.   IF v4_0#(v2_4%)=0
  400.     IF v2_4%<1
  401.       v1_3$=DATE$
  402.     ELSE
  403.       v1_3$=v5_1$(v2_4%-1)
  404.     ENDIF
  405.   ENDIF
  406.   v0_6#=104
  407.   @vB_1E
  408.   RESTORE vA_2
  409.   v0_5#=280
  410.   FOR v0_0#=2 TO 9
  411.     READ v1_3$
  412.     v0_6#=88+v0_0#*16
  413.     @vB_1E
  414.   NEXT v0_0#
  415. vA_2:
  416.   DATA "-1 Jahr","-1 Monat","-1 Woche","-1 Tag"
  417.   DATA "+1 Tag","+1 Woche","+1 Monat","+1 Jahr"
  418.   @vB_22
  419.   @vB_23
  420.   ' MWST-BOXEN
  421.   ' SUMMEN-BOX
  422.   v0_1#=369
  423.   v0_3#=619
  424.   v0_2#=55
  425.   v0_4#=240
  426.   @vB_1D
  427.   ' Blätter-Pfeil-Kästchen
  428.   v0_1#=370
  429.   v0_3#=618
  430.   v0_2#=56
  431.   v0_4#=103
  432.   @vB_1D
  433.   v0_1#=371
  434.   v0_3#=617
  435.   v0_2#=57
  436.   v0_4#=102
  437.   @vB_1D
  438.   ' Blätter-Pfeil nach links
  439.   v0_1#=373
  440.   v0_3#=414
  441.   v0_2#=59
  442.   v0_4#=100
  443.   @vB_1D
  444.   @vB_24
  445.   ' Blätter-Pfeil nach rechts
  446.   v0_1#=574
  447.   v0_3#=615
  448.   @vB_1D
  449.   @vB_24
  450.   ' Bl nach links
  451.   LINE 380,79,404,61
  452.   LINE 380,80,404,98
  453.   LINE 404,61,404,98
  454.   ' ...und nach rechts
  455.   LINE 586,61,586,98
  456.   LINE 586,61,608,79
  457.   LINE 586,98,608,80
  458.   v0_1#=370
  459.   v0_3#=618
  460.   v0_2#=104
  461.   v0_4#=239
  462.   @vB_1D
  463.   v0_5#=436
  464.   v0_6#=75
  465.   v1_3$="B L Ä T T E R N"
  466.   @vB_1E
  467.   v0_5#=436
  468.   v0_6#=92
  469.   v1_3$="Bitte anklicken."
  470.   @vB_1E
  471.   ' Text in Summenbox
  472. vA_1:
  473.   IF v4_0#(v2_4%)>0
  474.     @vB_25
  475.   ENDIF
  476. RETURN
  477. > PROCEDURE vB_5
  478.   ' BASISKONTENRAHMEN
  479.   ' kzv=KontoZahlVon kzn=KontoZahlNach
  480.   v2_2%=0
  481.   v2_3%=0
  482.   RESTORE vA_3
  483.   FOR v0_0#=1 TO 6
  484.     READ v1_5$,v1_6$,v2_39%
  485.     ' 1) konto von 2) konto nach
  486.     IF v1_6$="1"
  487.       v5_0$(v2_3%+1,2)=v1_5$
  488.       v6_4%(v2_3%+1,2)=v2_39%
  489.       INC v2_3%
  490.     ELSE
  491.       IF v1_6$="2"
  492.         v5_0$(v2_2%+1,1)=v1_5$
  493.         v6_4%(v2_2%+1,1)=v2_39%
  494.         INC v2_2%
  495.       ELSE
  496.         v5_0$(v2_2%+1,1)=v1_5$
  497.         v5_0$(v2_3%+1,2)=v1_5$
  498.         INC v2_3%
  499.         INC v2_2%
  500.         v6_4%(v2_2%,1)=v2_39%
  501.         v6_4%(v2_3%,2)=v2_39%
  502.       ENDIF
  503.     ENDIF
  504.   NEXT v0_0#
  505. vA_3:
  506.   DATA KASSE,3,1,VORSTEUER,1,2
  507.   DATA SACHANLAGEN,1,1,SONST'ERLÖSE,2,2,SONST'KOSTEN,1,2
  508.   DATA EIGENKAPITAL,3,1
  509. RETURN
  510. > PROCEDURE vB_24
  511.   v0_1#=v0_1#+2
  512.   v0_3#=v0_3#-2
  513.   v0_2#=v0_2#+2
  514.   v0_4#=v0_4#-2
  515.   @vB_1D
  516.   v0_1#=v0_1#-2
  517.   v0_3#=v0_3#+2
  518.   v0_2#=v0_2#-2
  519.   v0_4#=v0_4#+2
  520. RETURN
  521. > PROCEDURE vB_D
  522.   v0_7#=0
  523.   IF v1_4$=""
  524.     ALERT 1,"|ERST INITIALISIEREN!",1,"OKAY",v2_0%
  525.     GOTO vA_4
  526.   ENDIF
  527.   IF v1_7$=""
  528.     ALERT 1,"|ERST KONTENRAHMEN|DEFINIEREN!",1,"Ach so!",v2_0%
  529.     GOTO vA_4
  530.   ENDIF
  531.   IF v2_5%>0
  532.     v2_4%=v2_5%
  533.   ELSE
  534.     v2_5%=1
  535.     v2_4%=1
  536.   ENDIF
  537.   ALERT 2,"Automatische Einbuchung|bei bekannten Buchungs-|texten?",1," JA |NEIN",v2_0%
  538.   IF v2_0%=1
  539.     v1_8$="JA"
  540.   ELSE
  541.     v1_8$="NEIN"
  542.   ENDIF
  543.   @vB_1F
  544. vA_5:
  545.   IF v0_7#<0
  546.     GOTO vA_6
  547.   ENDIF
  548.   v0_7#=0
  549.   IF v4_0#(v2_4%)=0
  550.     v6_1%(v2_4%)=v6_1%(v2_4%-1)
  551.   ELSE
  552.     @vB_25
  553.     GOTO vA_7
  554.   ENDIF
  555.   @vB_23
  556.   @vB_26
  557.   IF v0_7#<0
  558.     GOTO vA_6
  559.   ENDIF
  560.   ' Automatisches Einbuchen bei bekannten Buchungstexten
  561.   IF v1_8$="JA"
  562.     IF v2_5%<500
  563.       v2_6%=v2_5%
  564.     ELSE
  565.       v2_6%=500
  566.     ENDIF
  567.     v0_8#=0
  568.     FOR v2_7%=1 TO v2_6%
  569.       IF v5_2$(v2_7%)=v5_2$(v2_4%) AND v2_7%<>v2_4%
  570.         v6_2%(v2_4%)=v6_2%(v2_7%)
  571.         v6_0%(v2_4%)=v6_0%(v2_7%)
  572.         v6_1%(v2_4%)=v6_1%(v2_7%)
  573.         IF v2_4%>1
  574.           v5_1$(v2_4%)=v5_1$(v2_4%-1)
  575.         ELSE
  576.           v5_1$(v2_4%)=v5_1$(v2_7%)
  577.         ENDIF
  578.         v1_9$="AUTOMATISCH GEBUCHT!Datum OK?"
  579.         @vB_25
  580.         @vB_23
  581.         @vB_27
  582.         v0_8#=-1
  583.         v2_7%=v2_6%
  584.       ENDIF
  585.     NEXT v2_7%
  586.     IF v0_8#=-1
  587.       GOTO vA_8
  588.     ENDIF
  589.   ENDIF
  590. vA_9:
  591.   DATA "Ursprungskonto wählen (VON)!","Zielkonto wählen (NACH)!"
  592.   DATA "Belegdatum wählen!","Betrag eingeben+MWSt. anklicken!"
  593.   RESTORE vA_9
  594.   v1_A$=""
  595.   FOR v0_0#=1 TO 4
  596.     READ v1_5$
  597.     v1_A$=v1_A$+v1_5$
  598.   NEXT v0_0#
  599. vA_A:
  600.   RESTORE vA_9
  601.   FOR v0_0#=1 TO 4
  602.     READ v1_5$
  603.     IF INSTR(v1_A$,v1_5$)>0
  604.       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)
  605.       v0_9#=v0_0#
  606.       v0_0#=4
  607.     ENDIF
  608.   NEXT v0_0#
  609. vA_B:
  610.   v0_7#=0
  611.   v0_A#=0
  612.   IF v0_9#=1
  613.     GOTO vA_C
  614.   ENDIF
  615.   IF v0_9#=2
  616.     GOTO vA_D
  617.   ENDIF
  618.   IF v0_9#=3
  619.     GOTO vA_E
  620.   ENDIF
  621.   IF v0_9#=4
  622.     @vB_28
  623.   ENDIF
  624.   IF v0_9#=5
  625.     @vB_26
  626.   ENDIF
  627.   IF v0_9#=6
  628.   vA_7:
  629.     @vB_29
  630.     IF v0_7#<0
  631.       GOTO vA_6
  632.     ENDIF
  633.     IF v0_A#>0 AND v0_A#<>6
  634.       v0_9#=v0_A#
  635.       GOTO vA_B
  636.     ELSE
  637.       IF v4_0#(v2_4%)=0 OR v6_0%(v2_4%)=0 OR v6_2%(v2_4%)=0
  638.         v4_0#(v2_4%)=0
  639.         v6_0%(v2_4%)=0
  640.         v6_2%(v2_4%)=0
  641.       vA_F:
  642.         IF v4_0#(v2_4%-1)=0 AND v2_4%>1
  643.           v2_4%=v2_4%-1
  644.           v2_5%=v2_4%
  645.           GOTO vA_F
  646.         ENDIF
  647.       ENDIF
  648.       v0_7#=0
  649.       GOTO vA_5
  650.     ENDIF
  651.   ENDIF
  652.   GOTO vA_10
  653. vA_C:
  654.   v1_9$="Ursprungskonto wählen (VON)!"
  655.   @vB_27
  656.   @vB_2A
  657.   IF v0_A#>1
  658.     v1_A$=v1_9$+v1_A$
  659.     GOTO vA_B
  660.   ENDIF
  661.   IF v0_7#<0
  662.     GOTO vA_6
  663.   ENDIF
  664.   v6_0%(v2_4%)=v0_7#
  665.   IF INSTR(v1_A$,v1_9$)>0
  666.     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)
  667.   ENDIF
  668.   GOTO vA_10
  669. vA_D:
  670.   v1_9$="Zielkonto wählen (NACH)!"
  671.   @vB_27
  672.   @vB_2B
  673.   IF v0_A#>0 AND v0_A#<>2
  674.     v1_A$=v1_9$+v1_A$
  675.     GOTO vA_B
  676.   ENDIF
  677.   IF v0_7#<0
  678.     GOTO vA_6
  679.   ENDIF
  680.   v6_2%(v2_4%)=v0_7#
  681.   IF INSTR(v1_A$,v1_9$)>0
  682.     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)
  683.   ENDIF
  684.   GOTO vA_10
  685. vA_E:
  686.   v1_9$="Belegdatum wählen!"
  687.   @vB_27
  688. vA_8:
  689.   @vB_2C
  690.   IF v0_A#>0 AND v0_A#<>3
  691.     v1_A$=v1_9$+v1_A$
  692.     GOTO vA_B
  693.   ENDIF
  694.   IF v0_7#<0
  695.     GOTO vA_6
  696.   ENDIF
  697.   IF INSTR(v1_A$,v1_9$)>0
  698.     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)
  699.   ENDIF
  700. vA_10:
  701.   IF v1_A$<>"" AND v0_7#>-2
  702.     GOTO vA_A
  703.   ENDIF
  704.   IF v0_7#>-2
  705.     @vB_29
  706.     IF v0_7#<0
  707.       GOTO vA_6
  708.     ENDIF
  709.     IF v0_A#>0 AND v0_A#<>6
  710.       v0_9#=v0_A#
  711.       GOTO vA_B
  712.     ELSE
  713.       IF v4_0#(v2_4%)=0 OR v6_0%(v2_4%)=0 OR v6_2%(v2_4%)=0
  714.         v4_0#(v2_4%)=0
  715.         v6_0%(v2_4%)=0
  716.         v6_2%(v2_4%)=0
  717.       vA_11:
  718.         IF v4_0#(v2_4%-1)=0 AND v2_4%>1
  719.           v2_4%=v2_4%-1
  720.           GOTO vA_11
  721.         ENDIF
  722.       ENDIF
  723.     ENDIF
  724.     GOTO vA_5
  725.   ELSE
  726.   vA_6:
  727.     IF v0_7#=-2
  728.       v0_7#=0
  729.       v1_9$="Alten Beleg #"+STR$(v2_4%)+" gelöscht!"
  730.       @vB_27
  731.       IF v2_4%<v2_5%
  732.         FOR v2_8%=v2_4% TO v2_5%
  733.           v6_0%(v2_8%)=v6_0%(v2_8%+1)
  734.           v6_2%(v2_8%)=v6_2%(v2_8%+1)
  735.           v4_0#(v2_8%)=v4_0#(v2_8%+1)
  736.           v6_1%(v2_8%)=v6_1%(v2_8%+1)
  737.           v5_1$(v2_8%)=v5_1$(v2_8%+1)
  738.           v5_2$(v2_8%)=v5_2$(v2_8%+1)
  739.         NEXT v2_8%
  740.       ENDIF
  741.       v6_0%(v2_5%)=0
  742.       v6_2%(v2_5%)=0
  743.       v4_0#(v2_5%)=0
  744.       v6_1%(v2_5%)=0
  745.       v5_1$(v2_5%)=""
  746.       v5_2$(v2_5%)=""
  747.       IF v2_5%>1
  748.         SUB v2_5%,1
  749.       ENDIF
  750.       @vB_20
  751.       @vB_21
  752.       GOTO vA_5
  753.     ELSE IF v0_7#=-3
  754.       v0_7#=0
  755.       @vB_1B
  756.       @vB_2D
  757.       GOTO vA_4
  758.     ELSE IF v0_7#=-4
  759.       GOTO vA_4
  760.     ENDIF
  761.   ENDIF
  762. vA_4:
  763. RETURN
  764. > PROCEDURE vB_27
  765.   GRAPHMODE 2
  766.   DEFFILL ,1,1
  767.   PBOX 375,220,610,238
  768.   v0_5#=380
  769.   v0_6#=236
  770.   v1_3$=v1_9$
  771.   DEFTEXT 0,0,0,13
  772.   @vB_1E
  773.   GRAPHMODE 1
  774.   DEFTEXT 1,0,0,13
  775. RETURN
  776. > PROCEDURE vB_2A
  777.   @vB_20
  778.   v0_1#=13
  779.   v0_3#=138
  780.   v0_2#=54
  781.   v0_4#=72
  782.   v0_5#=28
  783.   v0_6#=72
  784.   v1_3$="BUCHUNG VON:"
  785.   @vB_2E
  786.   v0_1#=13
  787.   v0_3#=138
  788.   v0_2#=72
  789.   v0_4#=88
  790.   v0_5#=28
  791.   v0_6#=88
  792.   v1_3$="<< HABEN >>"
  793.   @vB_2E
  794.   v0_7#=0
  795.   v0_B#=0
  796.   v0_C#=0
  797.   REPEAT
  798.     FOR v0_0#=0 TO v2_2%-1
  799.       MOUSE v2_9%,v2_A%,v2_B%
  800.       IF v2_9%>14 AND v2_9%<138 AND v2_A%>88+v0_0#*16 AND v2_A%<104+v0_0#*16
  801.         IF v0_B#=v0_0#+1
  802.           GOTO vA_12
  803.         ENDIF
  804.         IF v0_B#<>0
  805.           @vB_2F
  806.         ENDIF
  807.         v0_1#=14
  808.         v0_2#=88+v0_0#*16
  809.         v0_3#=138
  810.         v0_4#=104+v0_0#*16
  811.         v0_5#=14
  812.         v0_6#=104+v0_0#*16
  813.         v1_3$=v5_0$(v0_0#+1,1)
  814.         @vB_2E
  815.         v0_B#=v0_0#+1
  816.       vA_12:
  817.         IF v2_B%=1
  818.           v0_7#=v0_0#+1
  819.           v0_0#=v2_2%-1
  820.         ENDIF
  821.       ELSE
  822.         @vB_30
  823.         IF v0_A#>1
  824.           v0_9#=v0_A#
  825.           v0_7#=-1
  826.           v0_0#=v2_2%-1
  827.         ENDIF
  828.       ENDIF
  829.       @vB_31
  830.       IF v0_7#<0
  831.         v0_0#=v2_2%-1
  832.       ENDIF
  833.     NEXT v0_0#
  834.     IF v0_7#<0
  835.       GOTO vA_13
  836.     ENDIF
  837.     IF (MOUSEX<14 OR MOUSEX>138 OR MOUSEY<88 OR MOUSEY>104+(v2_2%-1)*16) AND v0_B#>0
  838.       @vB_2F
  839.       v0_B#=0
  840.     ENDIF
  841.   UNTIL v0_7#>0
  842. vA_13:
  843.   v0_1#=14
  844.   v0_3#=138
  845.   v0_2#=54
  846.   v0_4#=72
  847.   v0_5#=28
  848.   v0_6#=72
  849.   v1_3$="BUCHUNG VON:"
  850.   @vB_2F
  851.   v0_1#=14
  852.   v0_3#=138
  853.   v0_2#=72
  854.   v0_4#=88
  855.   v0_5#=28
  856.   v0_6#=88
  857.   v1_3$="<< HABEN >>"
  858.   @vB_2F
  859.   LINE 12,88,136,88
  860. RETURN
  861. > PROCEDURE vB_2E
  862.   GRAPHMODE 2
  863.   DEFFILL ,1,1
  864.   PBOX v0_1#-3,v0_2#+2,v0_3#-1,v0_4#+1
  865.   DEFFILL ,0,0
  866.   DEFTEXT 0,0,0,13
  867.   @vB_1E
  868.   GRAPHMODE 1
  869.   DEFTEXT 1,0,0,13
  870. RETURN
  871. > PROCEDURE vB_2F
  872.   DEFFILL ,0,0
  873.   GRAPHMODE 1
  874.   PBOX v0_1#-3,v0_2#+2,v0_3#-1,v0_4#+1
  875.   COLOR 0
  876.   BOX v0_1#-3,v0_2#+2,v0_3#-1,v0_4#+1
  877.   DEFTEXT 1,0,0,13
  878.   @vB_1E
  879.   COLOR 1
  880. RETURN
  881. > PROCEDURE vB_31
  882.   MOUSE v2_9%,v2_A%,v2_B%
  883.   IF v2_9%>369 AND v2_9%<494 AND v2_A%>262 AND v2_A%<315
  884.     DEFFILL ,1,1
  885.     PBOX 369,262,490,315
  886.     GRAPHMODE 2
  887.     DEFTEXT 0,0,0,13
  888.     v0_5#=383
  889.     v0_6#=286
  890.     v1_3$="RECHTE MAUS-"
  891.     @vB_1E
  892.     v0_5#=379
  893.     v0_6#=302
  894.     v1_3$="TASTE DRÜCKEN"
  895.     @vB_1E
  896.     WHILE v2_9%>369 AND v2_9%<494 AND v2_A%>262 AND v2_A%<315 AND v2_B%<2
  897.       MOUSE v2_9%,v2_A%,v2_B%
  898.     WEND
  899.     GRAPHMODE 1
  900.     DEFTEXT 1,0,0,13
  901.     IF v2_9%>369 AND v2_9%<494 AND v2_A%>262 AND v2_A%<315 AND v2_B%=2
  902.       vB_56
  903.     ELSE
  904.       @vB_22
  905.     ENDIF
  906.   ENDIF
  907.   IF v2_9%>369 AND v2_9%<494 AND v2_A%>319 AND v2_A%<372
  908.     DEFFILL ,1,1
  909.     PBOX 369,319,490,372
  910.     GRAPHMODE 2
  911.     DEFTEXT 0,0,0,13
  912.     v0_5#=374
  913.     v0_6#=343
  914.     v1_3$=" RECHTE MAUS-"
  915.     @vB_1E
  916.     v0_5#=378
  917.     v0_6#=359
  918.     v1_3$="TASTE DRÜCKEN"
  919.     @vB_1E
  920.     WHILE v2_9%>369 AND v2_9%<494 AND v2_A%>319 AND v2_A%<372 AND v2_B%<2
  921.       MOUSE v2_9%,v2_A%,v2_B%
  922.     WEND
  923.     GRAPHMODE 1
  924.     DEFTEXT 1,0,0,13
  925.     IF v2_9%>369 AND v2_9%<494 AND v2_A%>319 AND v2_A%<372 AND v2_B%=2
  926.       vB_1B
  927.       v0_7#=-3
  928.       ' FLAG maus=-3 heißt Ausstieg aus Eingabemenu
  929.     ELSE
  930.       @vB_22
  931.     ENDIF
  932.   ENDIF
  933.   IF v2_9%>498 AND v2_9%<619 AND v2_A%>262 AND v2_A%<315
  934.     DEFFILL ,1,1
  935.     PBOX 498,262,619,315
  936.     GRAPHMODE 2
  937.     DEFTEXT 0,0,0,13
  938.     v0_5#=511
  939.     v0_6#=286
  940.     v1_3$="RECHTE MAUS-"
  941.     @vB_1E
  942.     v0_5#=507
  943.     v0_6#=302
  944.     v1_3$="TASTE DRÜCKEN"
  945.     @vB_1E
  946.     WHILE v2_9%>498 AND v2_9%<619 AND v2_A%>262 AND v2_A%<315 AND v2_B%<2
  947.       MOUSE v2_9%,v2_A%,v2_B%
  948.     WEND
  949.     GRAPHMODE 1
  950.     DEFTEXT 1,0,0,13
  951.     IF v2_9%>498 AND v2_9%<619 AND v2_A%>262 AND v2_A%<315 AND v2_B%=2
  952.       vB_57
  953.       vB_22
  954.     ELSE
  955.       vB_22
  956.     ENDIF
  957.   ENDIF
  958.   IF v2_9%>498 AND v2_9%<619 AND v2_A%>319 AND v2_A%<372
  959.     DEFFILL ,1,1
  960.     PBOX 498,319,619,372
  961.     GRAPHMODE 2
  962.     DEFTEXT 0,0,0,13
  963.     v0_5#=503
  964.     v0_6#=343
  965.     v1_3$="LÖSCHEN:RECHTE"
  966.     @vB_1E
  967.     v0_5#=507
  968.     v0_6#=359
  969.     v1_3$="  MAUSTASTE"
  970.     @vB_1E
  971.     WHILE v2_9%>498 AND v2_9%<619 AND v2_A%>319 AND v2_A%<372 AND v2_B%<2
  972.       MOUSE v2_9%,v2_A%,v2_B%
  973.     WEND
  974.     GRAPHMODE 1
  975.     DEFTEXT 1,0,0,13
  976.     IF v2_9%>498 AND v2_9%<619 AND v2_A%>319 AND v2_A%<372 AND v2_B%=2
  977.       v0_7#=-2
  978.       ' FLAG maus=-2 heißt Neue Belegeingabe
  979.     ELSE
  980.       @vB_22
  981.     ENDIF
  982.   ENDIF
  983. RETURN
  984. > PROCEDURE vB_22
  985.   v0_1#=369
  986.   v0_2#=262
  987.   v0_3#=490
  988.   v0_4#=315
  989.   @vB_1D
  990.   @vB_24
  991.   v0_2#=319
  992.   v0_4#=372
  993.   @vB_1D
  994.   vB_24
  995.   v0_1#=498
  996.   v0_3#=619
  997.   @vB_1D
  998.   @vB_24
  999.   v0_2#=262
  1000.   v0_4#=315
  1001.   @vB_1D
  1002.   vB_24
  1003.   v0_5#=382
  1004.   v0_6#=343
  1005.   v1_3$="   BELEGE"
  1006.   @vB_1E
  1007.   v0_5#=378
  1008.   v0_6#=359
  1009.   v1_3$="  SORTIEREN"
  1010.   @vB_1E
  1011.   v0_5#=392
  1012.   v0_6#=286
  1013.   v1_3$="  BELEG"
  1014.   @vB_1E
  1015.   v0_5#=388
  1016.   v0_6#=302
  1017.   v1_3$="  SUCHEN"
  1018.   @vB_1E
  1019.   v0_5#=521
  1020.   v0_6#=286
  1021.   IF v1_2A$=""
  1022.     v1_3$=" TASCHEN-"
  1023.   ELSE
  1024.     v1_3$=LEFT$(v1_2A$,INSTR(v1_2A$,"|")-1)
  1025.   ENDIF
  1026.   @vB_1E
  1027.   v0_5#=524
  1028.   v0_6#=302
  1029.   IF v1_2A$=""
  1030.     v1_3$=" RECHNER"
  1031.   ELSE
  1032.     v1_3$=RIGHT$(v1_2A$,LEN(v1_2A$)-INSTR(v1_2A$,"|"))
  1033.     MOUSE v2_9%,v2_A%,v2_B%
  1034.     IF v2_9%<498 OR v2_9%>619 OR v2_A%<262 OR v2_A%>315
  1035.       v1_2A$=""
  1036.     ENDIF
  1037.   ENDIF
  1038.   @vB_1E
  1039.   v0_5#=506
  1040.   v0_6#=343
  1041.   v1_3$=STRING$(2-(LEN(STR$(v2_4%))/2),32)+" LFD.NR. "+STR$(v2_4%)
  1042.   @vB_1E
  1043.   v0_5#=506
  1044.   v0_6#=359
  1045.   v1_3$="   LÖSCHEN"
  1046.   @vB_1E
  1047. RETURN
  1048. > PROCEDURE vB_2B
  1049.   @vB_21
  1050.   v0_1#=144
  1051.   v0_2#=54
  1052.   v0_3#=268
  1053.   v0_4#=72
  1054.   v0_5#=150
  1055.   v0_6#=72
  1056.   v1_3$="BUCHUNG NACH:"
  1057.   @vB_2E
  1058.   v0_1#=144
  1059.   v0_2#=72
  1060.   v0_3#=268
  1061.   v0_4#=88
  1062.   v0_5#=150
  1063.   v0_6#=88
  1064.   v1_3$="<<  SOLL  >>"
  1065.   @vB_2E
  1066.   v0_7#=0
  1067.   v0_B#=0
  1068.   v0_C#=0
  1069.   REPEAT
  1070.     FOR v0_0#=0 TO v2_3%-1
  1071.       MOUSE v2_9%,v2_A%,v2_B%
  1072.       IF v2_9%>144 AND v2_9%<268 AND v2_A%>88+v0_0#*16 AND v2_A%<104+v0_0#*16
  1073.         IF v0_B#=v0_0#+1
  1074.           GOTO vA_16
  1075.         ENDIF
  1076.         IF v0_B#<>0
  1077.           @vB_2F
  1078.         ENDIF
  1079.         v0_1#=144
  1080.         v0_3#=268
  1081.         v0_2#=88+v0_0#*16
  1082.         v0_4#=104+v0_0#*16
  1083.         v0_5#=144
  1084.         v0_6#=104+v0_0#*16
  1085.         v1_3$=v5_0$(v0_0#+1,2)
  1086.         @vB_2E
  1087.         v0_B#=v0_0#+1
  1088.       vA_16:
  1089.         IF v2_B%=1
  1090.           v0_7#=v0_0#+1
  1091.           v0_0#=v2_3%-1
  1092.         ENDIF
  1093.       ELSE
  1094.         @vB_30
  1095.         IF v0_A#>0 AND v0_A#<>2
  1096.           v0_9#=v0_A#
  1097.           v0_7#=-1
  1098.           v0_0#=v2_3%-1
  1099.         ENDIF
  1100.       ENDIF
  1101.       @vB_31
  1102.       IF v0_7#<0
  1103.         v0_0#=v2_3%-1
  1104.       ENDIF
  1105.     NEXT v0_0#
  1106.     IF v0_7#<0
  1107.       GOTO vA_17
  1108.     ENDIF
  1109.     IF (MOUSEX<144 OR MOUSEX>268 OR MOUSEY<88 OR MOUSEY>104+v0_0#*16) AND v0_B#>0
  1110.       @vB_2F
  1111.       v0_B#=0
  1112.     ENDIF
  1113.   UNTIL v0_7#>0
  1114. vA_17:
  1115.   v0_1#=144
  1116.   v0_2#=54
  1117.   v0_3#=268
  1118.   v0_4#=72
  1119.   v0_5#=150
  1120.   v0_6#=72
  1121.   v1_3$="BUCHUNG NACH:"
  1122.   @vB_2F
  1123.   v0_1#=144
  1124.   v0_2#=72
  1125.   v0_3#=268
  1126.   v0_4#=88
  1127.   v0_5#=150
  1128.   v0_6#=88
  1129.   v1_3$="<<  SOLL  >>"
  1130.   @vB_2F
  1131.   LINE 142,88,266,88
  1132. RETURN
  1133. > PROCEDURE vB_2C
  1134.   v0_1#=274
  1135.   v0_2#=54
  1136.   v0_3#=352
  1137.   v0_4#=72
  1138.   v0_5#=272
  1139.   v0_6#=72
  1140.   v1_3$="LEFT=SLOW"
  1141.   @vB_2E
  1142.   v0_1#=274
  1143.   v0_2#=72
  1144.   v0_3#=352
  1145.   v0_4#=88
  1146.   v0_5#=272
  1147.   v0_6#=88
  1148.   v1_3$="RIGHT=FAST"
  1149.   @vB_2E
  1150.   IF v5_1$(v2_4%)=""
  1151.     v5_1$(v2_4%)=v5_1$(v2_4%-1)
  1152.   ENDIF
  1153.   v0_B#=0
  1154.   v0_C#=0
  1155.   v0_7#=0
  1156.   REPEAT
  1157.     FOR v0_0#=0 TO 8
  1158.       MOUSE v2_9%,v2_A%,v2_B%
  1159.       IF v2_9%>274 AND v2_9%<352 AND v2_A%>88+v0_0#*16 AND v2_A%<104+v0_0#*16
  1160.         IF v0_B#=v0_0#+1
  1161.           GOTO vA_18
  1162.         ENDIF
  1163.         IF v0_B#<>0
  1164.           @vB_2F
  1165.         ENDIF
  1166.         v0_1#=274
  1167.         v0_3#=352
  1168.         v0_2#=88+v0_0#*16
  1169.         v0_4#=104+v0_0#*16
  1170.         v0_6#=104+v0_0#*16
  1171.         IF v0_0#=0
  1172.           v0_5#=271
  1173.           v1_3$=v5_1$(v2_4%)
  1174.           v0_F#=VAL(LEFT$(v1_3$,2))
  1175.           v0_10#=VAL(MID$(v1_3$,4,2))
  1176.           v0_11#=VAL(RIGHT$(v1_3$,4))
  1177.           GOTO vA_19
  1178.         ENDIF
  1179.         RESTORE vA_2
  1180.         v0_5#=280
  1181.         FOR v0_E#=1 TO v0_0#
  1182.           READ v1_3$
  1183.           v0_6#=104+v0_0#*16
  1184.         NEXT v0_E#
  1185.       vA_19:
  1186.         @vB_2E
  1187.         v0_B#=v0_0#+1
  1188.       vA_18:
  1189.         IF v2_B%=1 OR v2_B%=2
  1190.           IF v0_0#=0
  1191.             v5_1$(v2_4%)=STR$(v0_F#)+"."+STR$(v0_10#)+"."+STR$(v0_11#)
  1192.             v0_0#=8
  1193.             v0_7#=1
  1194.           ELSE
  1195.             IF v0_B#<>0
  1196.               @vB_2F
  1197.             ENDIF
  1198.             @vB_32
  1199.             v0_B#=0
  1200.           ENDIF
  1201.           IF v2_B%=1
  1202.             PAUSE 10
  1203.           ENDIF
  1204.         ENDIF
  1205.       ELSE
  1206.         @vB_30
  1207.         IF v0_A#>0 AND v0_A#<>3
  1208.           v0_9#=v0_A#
  1209.           v0_7#=-1
  1210.           v0_0#=8
  1211.         ENDIF
  1212.       ENDIF
  1213.       @vB_31
  1214.       IF v0_7#<0
  1215.         v0_0#=8
  1216.       ENDIF
  1217.     NEXT v0_0#
  1218.     IF v0_7#<0
  1219.       GOTO vA_1A
  1220.     ENDIF
  1221.     IF (MOUSEX<274 OR MOUSEX>352 OR MOUSEY<88 OR MOUSEY>104+8*16) AND v0_B#>0
  1222.       @vB_2F
  1223.       v0_B#=0
  1224.     ENDIF
  1225.   UNTIL v0_7#>0
  1226. vA_1A:
  1227.   v0_1#=274
  1228.   v0_2#=54
  1229.   v0_3#=352
  1230.   v0_4#=72
  1231.   v0_5#=274
  1232.   v0_6#=72
  1233.   v1_3$="BUCHUNGS-"
  1234.   @vB_2F
  1235.   v0_1#=274
  1236.   v0_2#=72
  1237.   v0_3#=352
  1238.   v0_4#=88
  1239.   v0_5#=289
  1240.   v0_6#=88
  1241.   v1_3$="DATUM"
  1242.   @vB_2F
  1243.   LINE 272,88,350,88
  1244. RETURN
  1245. > PROCEDURE vB_32
  1246.   v1_5$=v5_1$(v2_4%)
  1247.   v0_F#=VAL(LEFT$(v1_5$,INSTR(v1_5$,".")))
  1248.   v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  1249.   v0_10#=VAL(LEFT$(v1_5$,INSTR(v1_5$,".")))
  1250.   v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  1251.   v0_11#=VAL(v1_5$)
  1252.   IF v1_3$="-1 Monat"
  1253.     v0_10#=v0_10#-1
  1254.     IF v0_10#=2 AND v0_F#>28 AND (v0_11#-80)/4<>INT((v0_11#-80)/4)
  1255.       v0_F#=28
  1256.     ELSE
  1257.       IF v0_10#=2 AND v0_F#>29
  1258.         v0_F#=29
  1259.       ELSE
  1260.         IF (v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11) AND v0_F#>30
  1261.           v0_F#=30
  1262.         ENDIF
  1263.       ENDIF
  1264.     ENDIF
  1265.   ELSE
  1266.     IF v1_3$="-1 Tag"
  1267.       v0_F#=v0_F#-1
  1268.     ELSE
  1269.       IF v1_3$="+1 Monat"
  1270.         v0_10#=v0_10#+1
  1271.         IF v0_10#=2 AND v0_F#>28 AND (v0_11#-80)/4<>INT((v0_11#-80)/4)
  1272.           v0_F#=28
  1273.         ELSE
  1274.           IF v0_10#=2 AND v0_F#>29
  1275.             v0_F#=29
  1276.           ELSE
  1277.             IF (v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11) AND v0_F#>30
  1278.               v0_F#=30
  1279.             ENDIF
  1280.           ENDIF
  1281.         ENDIF
  1282.       ELSE
  1283.         IF v1_3$="+1 Tag"
  1284.           v0_F#=v0_F#+1
  1285.         ELSE
  1286.           IF v1_3$="-1 Woche"
  1287.             v0_F#=v0_F#-7
  1288.           ELSE
  1289.             IF v1_3$="+1 Woche"
  1290.               v0_F#=v0_F#+7
  1291.             ELSE
  1292.               IF v1_3$="-1 Jahr"
  1293.                 v0_11#=v0_11#-1
  1294.               ELSE
  1295.                 IF v1_3$="+1 Jahr"
  1296.                   v0_11#=v0_11#+1
  1297.                 ENDIF
  1298.               ENDIF
  1299.             ENDIF
  1300.           ENDIF
  1301.         ENDIF
  1302.       ENDIF
  1303.     ENDIF
  1304.   ENDIF
  1305. vA_1B:
  1306.   IF v0_10#<1
  1307.     v0_11#=v0_11#-1
  1308.     v0_10#=v0_10#+12
  1309.   ELSE
  1310.     IF v0_10#>12
  1311.       v0_11#=v0_11#+1
  1312.       v0_10#=v0_10#-12
  1313.     ENDIF
  1314.   ENDIF
  1315.   IF v0_F#<1
  1316.     v0_F#=v0_F#+31
  1317.     v0_10#=v0_10#-1
  1318.     IF v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11
  1319.       v0_F#=v0_F#-1
  1320.     ELSE
  1321.       IF v0_10#=2
  1322.         v0_F#=v0_F#-2
  1323.         IF (v0_11#-80)/4=INT(v0_11#-80)/4
  1324.           v0_F#=v0_F#-1
  1325.         ENDIF
  1326.       ENDIF
  1327.     ENDIF
  1328.     GOTO vA_1B
  1329.   ENDIF
  1330.   IF v0_F#>28 AND v0_10#=2 AND (v0_11#-80)/4<>INT((v0_11#-80)/4)
  1331.     v0_10#=v0_10#+1
  1332.     v0_F#=v0_F#-28
  1333.     GOTO vA_1B
  1334.   ELSE
  1335.     IF v0_F#>29 AND v0_10#=2 AND (v0_11#-80)/4=INT((v0_11#-80)/4)
  1336.       v0_10#=v0_10#+1
  1337.       v0_F#=v0_F#-29
  1338.       GOTO vA_1B
  1339.     ELSE
  1340.       IF v0_10#=4 OR v0_10#=6 OR v0_10#=9 OR v0_10#=11 AND v0_F#>30
  1341.         v0_10#=v0_10#+1
  1342.         v0_F#=v0_F#-30
  1343.         GOTO vA_1B
  1344.       ELSE
  1345.         IF v0_F#>31
  1346.           v0_F#=v0_F#-31
  1347.           v0_10#=v0_10#+1
  1348.           GOTO vA_1B
  1349.         ENDIF
  1350.       ENDIF
  1351.     ENDIF
  1352.   ENDIF
  1353.   v0_5#=272
  1354.   v0_6#=104
  1355.   v1_3$="0"+STR$(v0_F#)+".0"+STR$(v0_10#)+"."+STR$(v0_11#)
  1356. vA_1C:
  1357.   IF LEN(v1_3$)>10
  1358.     IF INSTR(v1_3$,".")>3
  1359.       v1_3$=RIGHT$(v1_3$,LEN(v1_3$)-1)
  1360.       GOTO vA_1C
  1361.     ELSE
  1362.       v1_3$=LEFT$(v1_3$,3)+RIGHT$(v1_3$,7)
  1363.       GOTO vA_1C
  1364.     ENDIF
  1365.   ENDIF
  1366.   @vB_1E
  1367.   v5_1$(v2_4%)=v1_3$
  1368. RETURN
  1369. PROCEDURE vB_9
  1370.   STOP
  1371. RETURN
  1372. > PROCEDURE vB_33
  1373.   DEFTEXT 1,0,0,13
  1374.   IF LEN(v1_B$)>LEN(v1_C$)
  1375.     v1_D$=v1_B$
  1376.   ELSE
  1377.     v1_D$=v1_C$
  1378.   ENDIF
  1379.   IF LEN(v1_E$)>LEN(v1_D$)
  1380.     v1_D$=v1_E$
  1381.   ENDIF
  1382.   v0_1#=(640-LEN(v1_D$)*8)/2-6
  1383.   v0_3#=640-v0_1#
  1384.   v0_2#=120
  1385.   v0_4#=280
  1386.   v0_12#=v0_3#
  1387.   v0_13#=v0_1#
  1388.   @vB_1D
  1389.   @vB_24
  1390.   ' xp3,xp4 Außenmaße der randbox
  1391.   v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
  1392.   v0_6#=152
  1393.   v0_1#=v0_5#
  1394.   v0_3#=v0_1#+LEN(v1_B$)*8
  1395.   v0_2#=138
  1396.   v0_4#=152
  1397.   v1_3$=v1_B$
  1398.   @vB_2E
  1399.   v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
  1400.   v0_6#=184
  1401.   v1_3$=v1_C$
  1402.   @vB_1E
  1403.   v0_5#=(v0_12#-v0_13#-LEN(v1_E$)*8)/2+v0_13#
  1404.   v0_6#=200
  1405.   v1_3$=v1_E$
  1406.   @vB_1E
  1407.   v0_1#=(v0_12#-v0_13#-v2_45%*8)/2+v0_13#-14
  1408.   v0_4#=240+2
  1409.   v0_3#=640-v0_1#+2
  1410.   v0_2#=224-2
  1411.   @vB_1D
  1412.   PRINT AT(((v0_1#+2)/8+2),(240/16));
  1413.   FORM INPUT v2_45%,v1_F$
  1414.   DEFFILL ,2,4
  1415.   PBOX 0,19,639,399
  1416. RETURN
  1417. > PROCEDURE vB_C
  1418.   IF v1_4$<>""
  1419.     ALERT 2,"Alte Daten löschen?|(Vielleicht solltest Du sie|erst abspeichern?)",2,"Löschen|Abbruch",v2_0%
  1420.     IF v2_0%=1
  1421.       ARRAYFILL v6_0%(),0
  1422.       ARRAYFILL v4_0#(),0
  1423.       ARRAYFILL v6_1%(),0
  1424.       ARRAYFILL v6_2%(),0
  1425.       v2_5%=0
  1426.       FOR v2_3D%=0 TO 2000
  1427.         v5_1$(v2_3D%)=""
  1428.         v5_2$(v2_3D%)=""
  1429.       NEXT v2_3D%
  1430.     ELSE
  1431.       GOTO vA_5D
  1432.     ENDIF
  1433.   ENDIF
  1434.   v1_B$="INITIALISIEREN - Dateiname"
  1435.   v1_C$="Das Suffix ist automatisch '.JAS'! Länge max. 8 Zeichen."
  1436.   v1_E$="Welchen Namen soll die neue Datei bekommen?"
  1437.   v2_45%=8
  1438.   @vB_33
  1439.   v1_14$=v1_F$
  1440.   vB_38
  1441.   v1_4$=v1_14$
  1442.   v1_B$="INITIALISIEREN - Dateipfad für Dateiname"
  1443.   v1_C$="Unter diesem Namen existierende Datei wird autom. geladen!"
  1444.   v1_E$="Wo soll die Datei geladen und gespeichert werden?"
  1445.   v2_45%=20
  1446.   @vB_33
  1447.   v1_10$=v1_F$
  1448.   IF v1_7$=""
  1449.     @vB_F
  1450.   ENDIF
  1451. vA_5D:
  1452. RETURN
  1453. > PROCEDURE vB_30
  1454.   ' eing_jump=1: Kontovon
  1455.   ' "=2: kontonach
  1456.   ' "=3:bdatum
  1457.   ' "=4:MWSt
  1458.   ' "=5:Summenbox
  1459.   ' "=6:Blättern
  1460.   v0_A#=0
  1461.   MOUSE v2_9%,v2_A%,v2_B%
  1462.   IF v2_B%<>1
  1463.     GOTO vA_1D
  1464.   ENDIF
  1465.   IF v2_9%>10 AND v2_9%<138 AND v2_A%>55 AND v2_A%<92+v2_2%*16
  1466.     v0_A#=1
  1467.   ELSE
  1468.     IF v2_9%>140 AND v2_9%<268 AND v2_A%>55 AND v2_A%<92+v2_3%*16
  1469.       v0_A#=2
  1470.     ELSE
  1471.       IF v2_9%>270 AND v2_9%<352 AND v2_A%>55 AND v2_A%<240
  1472.         v0_A#=3
  1473.       ELSE
  1474.         IF v2_9%>270 AND v2_9%<352
  1475.           IF (v2_A%>250 AND v2_A%<290) OR (v2_A%>300 AND v2_A%<340) OR (v2_A%>350 AND v2_A%<390)
  1476.             v0_A#=4
  1477.           ENDIF
  1478.         ELSE
  1479.           IF v2_9%>369 AND v2_9%<619 AND v2_A%>104 AND v2_A%<240
  1480.             v0_A#=5
  1481.           ELSE
  1482.             IF v2_9%>373 AND v2_9%<615 AND v2_A%>57 AND v2_A%<102
  1483.               v0_A#=6
  1484.             ENDIF
  1485.           ENDIF
  1486.         ENDIF
  1487.       ENDIF
  1488.     ENDIF
  1489.   ENDIF
  1490. vA_1D:
  1491. RETURN
  1492. > PROCEDURE vB_34
  1493.   DEFTEXT 1,0,0,13
  1494.   ' xp3,xp4 Außenmaße der randbox
  1495.   v0_13#=369
  1496.   v0_12#=619
  1497.   v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
  1498.   v0_6#=130
  1499.   v0_1#=v0_5#
  1500.   v0_3#=v0_1#+LEN(v1_B$)*8
  1501.   v0_2#=116
  1502.   v0_4#=130
  1503.   v1_3$=v1_B$
  1504.   @vB_2E
  1505.   v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
  1506.   v0_6#=152
  1507.   v1_3$=v1_C$
  1508.   @vB_1E
  1509.   v0_1#=v0_13#+8
  1510.   v0_3#=v0_12#-8
  1511.   v0_2#=158
  1512.   v0_4#=178
  1513.   @vB_1D
  1514.   v0_5#=v0_13#+8
  1515.   v0_6#=205
  1516.   v1_3$=v1_E$
  1517.   @vB_1E
  1518.   v0_1#=v0_13#+158
  1519.   v0_4#=210
  1520.   v0_3#=v0_12#-8
  1521.   v0_2#=190
  1522.   @vB_1D
  1523. vA_1E:
  1524.   PRINT AT(((v0_13#+2)/8+3),(182/16));
  1525.   v2_45%=27
  1526.   v1_F$=v5_2$(v2_4%)
  1527.   @vB_35
  1528.   v5_2$(v2_4%)=v1_F$
  1529.   IF v0_7#<0 OR v0_A#>0
  1530.     GOTO vA_1F
  1531.   ENDIF
  1532.   v1_F$=STR$(v4_0#(v2_4%))
  1533.   v2_45%=8
  1534.   PRINT AT(((v0_13#+160)/8+1),(220/16));
  1535.   @vB_35
  1536.   IF v0_7#<0 OR (v0_A#>0 AND v0_A#<>5)
  1537.     GOTO vA_1F
  1538.   ENDIF
  1539.   IF VAL(v1_F$)<=0 OR VAL(v1_F$)>99999
  1540.     GOTO vA_1E
  1541.   ENDIF
  1542.   v0_24#=VAL(v1_F$)
  1543.   v4_0#(v2_4%)=v0_24#
  1544.   vB_49(v0_24#)
  1545.   v1_F$=v1_21$
  1546.   PRINT AT(((v0_13#+160)/8+1),(220/16));"        ";
  1547.   PRINT AT(((v0_13#+160)/8+1),(220/16));v1_F$;
  1548.   DEFFILL ,2,4
  1549. vA_1F:
  1550. RETURN
  1551. > PROCEDURE vB_26
  1552.   v1_B$="#Belege:"+STR$(v2_5%)+"/Aktuelle#:"+STR$(v2_4%)
  1553.   v1_C$="Buchungstext:"
  1554.   v1_E$="Betrag(xxxxx.xx DM)"
  1555.   v2_45%=8
  1556.   vB_34
  1557.   IF v0_7#<0 OR v0_A#>0
  1558.     GOTO vA_20
  1559.   ENDIF
  1560. vA_20:
  1561. RETURN
  1562. > PROCEDURE vB_29
  1563.   v0_1#=415
  1564.   v0_3#=573
  1565.   v0_2#=57
  1566.   v0_4#=76
  1567.   v0_5#=436
  1568.   v0_6#=76
  1569.   v1_3$="B L Ä T T E R N"
  1570.   @vB_36
  1571.   v0_2#=77
  1572.   v0_4#=102
  1573.   v0_5#=420
  1574.   v0_6#=92
  1575.   v1_3$="<zurück   vorwärts>"
  1576.   @vB_36
  1577. vA_21:
  1578.   MOUSE v2_9%,v2_A%,v2_B%
  1579.   IF v2_B%=1 AND v2_A%<100 AND v2_A%>59
  1580.     IF v2_9%>373 AND v2_9%<414 AND v2_4%>1
  1581.       @vB_37
  1582.       v2_4%=v2_4%-1
  1583.       vB_22
  1584.       GOTO vA_22
  1585.     ELSE
  1586.       IF v2_9%>574 AND v2_9%<615
  1587.         @vB_37
  1588.         v2_4%=v2_4%+1
  1589.         IF v2_4%>v2_5%
  1590.           v2_5%=v2_4%
  1591.         ENDIF
  1592.         vB_22
  1593.         GOTO vA_22
  1594.       ENDIF
  1595.     ENDIF
  1596.   ENDIF
  1597.   vB_28
  1598.   vB_31
  1599.   IF v0_7#<0
  1600.     GOTO vA_22
  1601.   ENDIF
  1602.   v0_A#=0
  1603.   vB_30
  1604.   IF v0_A#>0 AND v0_A#<>6
  1605.     GOTO vA_22
  1606.   ENDIF
  1607.   GOTO vA_21
  1608. vA_22:
  1609. RETURN
  1610. > PROCEDURE vB_28
  1611.   MOUSE v2_9%,v2_A%,v2_B%
  1612.   IF v2_B%=1 AND v2_9%>270 AND v2_9%<352
  1613.     IF v2_A%>250 AND v2_A%<290
  1614.       v6_1%(v2_4%)=0
  1615.       @vB_23
  1616.     ELSE
  1617.       IF v2_A%>300 AND v2_A%<340
  1618.         v6_1%(v2_4%)=7
  1619.         @vB_23
  1620.       ELSE
  1621.         IF v2_A%>350 AND v2_A%<390
  1622.           v6_1%(v2_4%)=14
  1623.           @vB_23
  1624.         ENDIF
  1625.       ENDIF
  1626.     ENDIF
  1627.   ENDIF
  1628. RETURN
  1629. > PROCEDURE vB_23
  1630.   v0_1#=270
  1631.   v0_3#=352
  1632.   v0_2#=250
  1633.   v0_4#=267
  1634.   v0_6#=266
  1635.   v0_5#=291
  1636.   v1_3$="MWST."
  1637.   IF v6_1%(v2_4%)=0
  1638.     @vB_36
  1639.   ELSE
  1640.     @vB_1D
  1641.     @vB_1E
  1642.   ENDIF
  1643.   v0_2#=267
  1644.   v0_4#=290
  1645.   v0_6#=285
  1646.   v1_3$=" 0 %"
  1647.   IF v6_1%(v2_4%)=0
  1648.     @vB_36
  1649.   ELSE
  1650.     @vB_1D
  1651.     @vB_1E
  1652.   ENDIF
  1653.   v0_2#=300
  1654.   v0_4#=317
  1655.   v0_6#=316
  1656.   v1_3$="MWST."
  1657.   IF v6_1%(v2_4%)=7
  1658.     @vB_36
  1659.   ELSE
  1660.     @vB_1D
  1661.     @vB_1E
  1662.   ENDIF
  1663.   v0_2#=317
  1664.   v0_4#=340
  1665.   v0_6#=335
  1666.   v1_3$=" 7 %"
  1667.   IF v6_1%(v2_4%)=7
  1668.     @vB_36
  1669.   ELSE
  1670.     @vB_1D
  1671.     @vB_1E
  1672.   ENDIF
  1673.   v0_2#=350
  1674.   v0_4#=367
  1675.   v0_6#=366
  1676.   v1_3$="MWST."
  1677.   IF v6_1%(v2_4%)=14
  1678.     @vB_36
  1679.   ELSE
  1680.     @vB_1D
  1681.     @vB_1E
  1682.   ENDIF
  1683.   v0_2#=367
  1684.   v0_4#=390
  1685.   v0_6#=385
  1686.   v1_3$="14 %"
  1687.   IF v6_1%(v2_4%)=14
  1688.     @vB_36
  1689.   ELSE
  1690.     @vB_1D
  1691.     @vB_1E
  1692.   ENDIF
  1693. RETURN
  1694. > PROCEDURE vB_36
  1695.   ' Invers für Boxen ohne Umrandung
  1696.   GRAPHMODE 2
  1697.   DEFFILL ,1,1
  1698.   PBOX v0_1#,v0_2#,v0_3#,v0_4#
  1699.   DEFFILL ,0,0
  1700.   DEFTEXT 0,0,0,13
  1701.   @vB_1E
  1702.   GRAPHMODE 1
  1703.   DEFTEXT 1,0,0,13
  1704. RETURN
  1705. > PROCEDURE vB_35
  1706.   ' Eingangsdaten:antwort$(Wert bei RETURN)
  1707.   IF LEFT$(v1_F$,1)="0" AND VAL(v1_F$)=0
  1708.     v1_F$=""
  1709.   ENDIF
  1710.   PRINT v1_F$;"_";
  1711. vA_23:
  1712.   v1_5$=INKEY$
  1713.   v0_A#=0
  1714.   @vB_30
  1715.   IF v0_A#>0
  1716.     GOTO vA_24
  1717.   ENDIF
  1718.   @vB_31
  1719.   IF v0_7#<0
  1720.     GOTO vA_24
  1721.   ENDIF
  1722.   @vB_28
  1723.   IF v1_5$=CHR$(8) AND LEN(v1_F$)>0
  1724.     v1_F$=LEFT$(v1_F$,LEN(v1_F$)-1)
  1725.     PRINT STRING$(2,8);"_ ";CHR$(8);
  1726.     GOTO vA_23
  1727.   ELSE
  1728.     IF v1_5$=CHR$(13)
  1729.       GOTO vA_24
  1730.     ELSE
  1731.       IF v1_5$="" OR ASC(v1_5$)<32 OR ASC(v1_5$)>154 OR ASC(v1_5$)=44
  1732.         GOTO vA_23
  1733.       ENDIF
  1734.     ENDIF
  1735.   ENDIF
  1736.   IF LEN(v1_F$)<v2_45%
  1737.     v1_F$=v1_F$+v1_5$
  1738.     PRINT CHR$(8);v1_5$;"_";
  1739.   ENDIF
  1740.   GOTO vA_23
  1741. vA_24:
  1742.   PRINT CHR$(8);" ";
  1743. RETURN
  1744. > PROCEDURE vB_25
  1745.   @vB_23
  1746.   v0_0#=v6_0%(v2_4%)
  1747.   IF v0_0#>v2_2%
  1748.     ALERT 1,"*** ERROR: Der Kontenrahmen|paßt nicht zu den Daten!|Es fehlen Konten!",1,"Abbruch",v2_0%
  1749.     v0_7#=-4
  1750.     GOTO vA_5E
  1751.   ENDIF
  1752.   v0_1#=14
  1753.   v0_2#=72+v0_0#*16
  1754.   v0_3#=138
  1755.   v0_4#=88+v0_0#*16
  1756.   v0_5#=14
  1757.   v0_6#=88+v0_0#*16
  1758.   v1_3$=v5_0$(v0_0#,1)
  1759.   @vB_2E
  1760.   v0_0#=v6_2%(v2_4%)
  1761.   IF v0_0#>v2_3%
  1762.     ALERT 1,"*** ERROR: Der Kontenrahmen|paßt nicht zu den Daten!|Es fehlen Konten!",1,"Abbruch",v2_0%
  1763.     v0_7#=-4
  1764.     GOTO vA_5E
  1765.   ENDIF
  1766.   v0_1#=144
  1767.   v0_3#=268
  1768.   v0_2#=72+v0_0#*16
  1769.   v0_4#=88+v0_0#*16
  1770.   v0_5#=144
  1771.   v0_6#=88+v0_0#*16
  1772.   v1_3$=v5_0$(v0_0#,2)
  1773.   @vB_2E
  1774.   v0_1#=274
  1775.   v0_3#=352
  1776.   v0_2#=88
  1777.   v0_4#=104
  1778.   v0_5#=271
  1779.   v0_6#=104
  1780.   v1_3$=v5_1$(v2_4%)
  1781.   @vB_2E
  1782.   v1_B$="#Belege:"+STR$(v2_5%)+"/Aktuelle#:"+STR$(v2_4%)
  1783.   v1_C$="Buchungstext:"
  1784.   v1_E$="Betrag(xxxxx.xx DM)"
  1785.   DEFTEXT 1,0,0,13
  1786.   ' xp3,xp4 Außenmaße der randbox
  1787.   v0_13#=369
  1788.   v0_12#=619
  1789.   v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
  1790.   v0_6#=130
  1791.   v0_1#=v0_5#
  1792.   v0_3#=v0_1#+LEN(v1_B$)*8
  1793.   v0_2#=116
  1794.   v0_4#=130
  1795.   v1_3$=v1_B$
  1796.   @vB_2E
  1797.   v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
  1798.   v0_6#=152
  1799.   v1_3$=v1_C$
  1800.   @vB_1E
  1801.   v0_1#=v0_13#+8
  1802.   v0_3#=v0_12#-8
  1803.   v0_2#=158
  1804.   v0_4#=178
  1805.   @vB_1D
  1806.   v0_5#=v0_13#+8
  1807.   v0_6#=205
  1808.   v1_3$=v1_E$
  1809.   @vB_1E
  1810.   v0_1#=v0_13#+158
  1811.   v0_4#=210
  1812.   v0_3#=v0_12#-8
  1813.   v0_2#=190
  1814.   @vB_1D
  1815.   PRINT AT(((v0_13#+2)/8+3),(182/16));v5_2$(v2_4%);
  1816.   vB_49(v4_0#(v2_4%))
  1817.   v1_F$=v1_21$
  1818.   PRINT AT(((v0_13#+160)/8+1),(220/16));v1_F$;
  1819.   DEFFILL ,2,4
  1820. vA_5E:
  1821. RETURN
  1822. > PROCEDURE vB_A
  1823.   IF v1_4$=""
  1824.     FILESELECT v1_10$+"\*.JAS","",v1_11$
  1825.   ELSE
  1826.     FILESELECT v1_10$+"\*.JAS",v1_4$+".JAS",v1_11$
  1827.   ENDIF
  1828.   IF v1_11$="" OR v1_11$="\"
  1829.     v1_19$=""
  1830.     GOTO vA_25
  1831.   ENDIF
  1832.   IF RIGHT$(v1_11$,3)<>"JAS"
  1833.     GOTO vA_25
  1834.   ENDIF
  1835.   IF EXIST(v1_11$)=0
  1836.     ALERT 1,"|Datei existiert nicht!",1,"Oioi!",v2_0%
  1837.     GOTO vA_25
  1838.   ENDIF
  1839.   vB_4
  1840.   OPEN "I",#1,v1_11$
  1841.   INPUT #1,v1_4$
  1842.   INPUT #1,v2_5%
  1843.   FOR v0_0#=1 TO v2_5%
  1844.     INPUT #1,v5_1$(v0_0#)
  1845.     INPUT #1,v5_2$(v0_0#)
  1846.     INPUT #1,v4_0#(v0_0#)
  1847.     INPUT #1,v6_0%(v0_0#)
  1848.     INPUT #1,v6_2%(v0_0#)
  1849.     INPUT #1,v6_1%(v0_0#)
  1850.   NEXT v0_0#
  1851.   CLOSE #1
  1852.   v1_14$=v1_4$
  1853.   vB_38
  1854.   v1_4$=v1_14$
  1855.   vB_0
  1856. vA_25:
  1857. RETURN
  1858. > PROCEDURE vB_B
  1859.   IF v1_4$="" OR v2_5%<2
  1860.     ALERT 1,"Keine Datei gespeichert!",1," OK ",v2_0%
  1861.     GOTO vA_26
  1862.   ENDIF
  1863. vA_27:
  1864.   FILESELECT v1_10$+"\*.JAS",v1_4$,v1_11$
  1865.   IF v1_11$="" OR v1_11$="\"
  1866.     v1_19$=""
  1867.     GOTO vA_26
  1868.   ENDIF
  1869.   IF RIGHT$(v1_11$,3)<>"JAS"
  1870.     ALERT 2,"*** FEHLER!|Dateiendung muß|'.JAS' sein!",2," OK |Abbruch",v2_0%
  1871.     IF v2_0%=1
  1872.       GOTO vA_27
  1873.     ELSE
  1874.       GOTO vA_26
  1875.     ENDIF
  1876.   ENDIF
  1877.   IF EXIST(v1_11$)=-1
  1878.     v1_0$="Datei existiert schon!|Ersetzen oder nicht?"
  1879.     vB_19
  1880.     IF v2_0%=2
  1881.       GOTO vA_26
  1882.     ENDIF
  1883.   ENDIF
  1884.   vB_4
  1885.   OPEN "O",#1,v1_11$
  1886.   PRINT #1,v1_4$
  1887.   PRINT #1,v2_5%
  1888.   FOR v0_0#=1 TO v2_5%
  1889.     PRINT #1,v5_1$(v0_0#)
  1890.     PRINT #1,v5_2$(v0_0#)
  1891.     PRINT #1,v4_0#(v0_0#)
  1892.     PRINT #1,v6_0%(v0_0#)
  1893.     PRINT #1,v6_2%(v0_0#)
  1894.     PRINT #1,v6_1%(v0_0#)
  1895.   NEXT v0_0#
  1896.   CLOSE #1
  1897.   vB_0
  1898. vA_26:
  1899. RETURN
  1900. > PROCEDURE vB_1B
  1901.   DEFTEXT 1,0,0,13
  1902.   DEFFILL ,2,4
  1903.   PBOX 0,19,639,399
  1904. RETURN
  1905. > PROCEDURE vB_37
  1906.   v0_1#=415
  1907.   v0_3#=573
  1908.   v0_2#=59
  1909.   v0_4#=100
  1910.   @vB_1D
  1911.   v0_5#=436
  1912.   v0_6#=75
  1913.   v1_3$="B L Ä T T E R N"
  1914.   @vB_1E
  1915.   v0_5#=436
  1916.   v0_6#=92
  1917.   v1_3$="Bitte anklicken."
  1918.   @vB_1E
  1919.   IF v6_0%(v2_4%)>0
  1920.     v0_0#=v6_0%(v2_4%)
  1921.     v0_1#=14
  1922.     v0_2#=72+v0_0#*16
  1923.     v0_3#=138
  1924.     v0_4#=88+v0_0#*16
  1925.     v0_5#=14
  1926.     v0_6#=88+v0_0#*16
  1927.     v1_3$=v5_0$(v0_0#,1)
  1928.     @vB_2F
  1929.   ENDIF
  1930.   IF v6_2%(v2_4%)>0
  1931.     v0_0#=v6_2%(v2_4%)
  1932.     v0_1#=144
  1933.     v0_3#=268
  1934.     v0_2#=72+v0_0#*16
  1935.     v0_4#=88+v0_0#*16
  1936.     v0_5#=144
  1937.     v0_6#=88+v0_0#*16
  1938.     v1_3$=v5_0$(v0_0#,2)
  1939.     @vB_2F
  1940.   ENDIF
  1941. RETURN
  1942. > PROCEDURE vB_21
  1943.   v0_1#=140
  1944.   v0_2#=88
  1945.   v0_3#=268
  1946.   v0_4#=92+v2_3%*16
  1947.   @vB_1D
  1948.   v0_5#=144
  1949.   FOR v0_15#=1 TO v2_3%
  1950.     v0_6#=88+v0_15#*16
  1951.     v1_3$=LEFT$(v5_0$(v0_15#,2)+STRING$(15,32),15)
  1952.     @vB_1E
  1953.   NEXT v0_15#
  1954. RETURN
  1955. > PROCEDURE vB_20
  1956.   v0_1#=10
  1957.   v0_2#=88
  1958.   v0_3#=138
  1959.   v0_4#=92+v2_2%*16
  1960.   @vB_1D
  1961.   v0_5#=14
  1962.   FOR v0_16#=1 TO v2_2%
  1963.     v0_6#=88+v0_16#*16
  1964.     v1_3$=LEFT$(v5_0$(v0_16#,1)+STRING$(15,32),15)
  1965.     @vB_1E
  1966.   NEXT v0_16#
  1967. RETURN
  1968. > PROCEDURE vB_F
  1969.   IF v1_7$<>""
  1970.     ALERT 2,"Alten Kontenrahmen löschen?|(Vielleicht solltest Du ihn|erst abspeichern?)",2,"Löschen|Abbruch",v2_0%
  1971.     IF v2_0%=1
  1972.       FOR v2_3D%=0 TO 99
  1973.         v5_0$(v2_3D%,1)=""
  1974.         v5_0$(v2_3D%,2)=""
  1975.       NEXT v2_3D%
  1976.       vB_5
  1977.       ALERT 1,"|Basiskontenrahmen|initialisiert.",1," OK ",v2_0%
  1978.     ELSE
  1979.       ALERT 1,"Alter Kontenrahmen bekommt|neuen Namen!",1," OK ",v2_0%
  1980.     ENDIF
  1981.   ENDIF
  1982.   v1_B$="INITIALISIEREN - Kontenrahmen"
  1983.   v1_C$="Suffix ist automatisch '.KON'! Länge max. 8 Zeichen."
  1984.   v1_E$="Bei [RETURN] automatisch Basiskontenrahmen. Welchen Kontenrahmen?"
  1985.   v2_45%=8
  1986.   @vB_33
  1987.   v1_14$=v1_F$
  1988.   vB_38
  1989.   v1_7$=v1_14$
  1990.   v1_B$="INITIALISIEREN - Dateipfad für Kontenrahmen"
  1991.   v1_C$="Unter diesem Namen existierende Datei wird autom. geladen!"
  1992.   v1_E$="Wo soll der Kontenrahmen geladen und gespeichert werden?"
  1993.   v2_45%=20
  1994.   @vB_33
  1995.   v1_13$=v1_F$
  1996. RETURN
  1997. > PROCEDURE vB_12
  1998. vA_58:
  1999.   IF v1_7$=""
  2000.     ALERT 1,"|Erst Kontenrahmen|initialisieren!",1,"OKAY",v2_0%
  2001.     GOTO vA_28
  2002.   ENDIF
  2003.   vB_4B
  2004.   v1_B$="NEUES KONTO"
  2005.   v1_C$="Länge des Namens max. 13 Zeichen!"
  2006.   v1_E$="Bitte Name des neuen Kontos eingeben:"
  2007.   v2_45%=13
  2008.   @vB_33
  2009.   v1_14$=v1_F$
  2010.   @vB_38
  2011.   v1_F$=v1_14$
  2012.   ALERT 2,"Konto wird geführt|(1)-SOLL (2)-HABEN (3)-BEIDES|Bitte wählen!",3,"1|2|3",v2_0%
  2013.   IF v2_0%=1 OR v2_0%=3
  2014.     IF v2_3%=18
  2015.       ALERT 1,"|Kontenrahmen voll!|Kapazität im SOLL erreicht.",1,"Mist!",v2_0%
  2016.       GOTO vA_28
  2017.     ENDIF
  2018.     INC v2_3%
  2019.     v5_0$(v2_3%,2)=v1_F$
  2020.     ALERT 2,"Konto ist|(a) BESTANDSKONTO|(b) ERFOLGSKONTO",1,"(a)|(b)",v2_3D%
  2021.     IF v2_3D%=1
  2022.       v6_4%(v2_3%,2)=1
  2023.     ELSE
  2024.       v6_4%(v2_3%,2)=2
  2025.     ENDIF
  2026.   ENDIF
  2027.   IF v2_0%=2 OR v2_0%=3
  2028.     IF v2_2%=18
  2029.       ALERT 1,"|Kontenrahmen voll!|Kapazität im HABEN erreicht.",1,"Mist!",v2_0%
  2030.       GOTO vA_28
  2031.     ENDIF
  2032.     INC v2_2%
  2033.     v5_0$(v2_2%,1)=v1_F$
  2034.     ALERT 2,"Konto ist|(a) BESTANDSKONTO|(b) ERFOLGSKONTO",1,"(a)|(b)",v2_3D%
  2035.     IF v2_3D%=1
  2036.       v6_4%(v2_2%,1)=1
  2037.     ELSE
  2038.       v6_4%(v2_2%,1)=2
  2039.     ENDIF
  2040.   ENDIF
  2041.   vB_4B
  2042.   v1_0$="|Weiter neue Konten|eingeben?"
  2043.   vB_19
  2044.   IF v2_0%=1
  2045.     GOTO vA_58
  2046.   ENDIF
  2047. vA_28:
  2048. RETURN
  2049. > PROCEDURE vB_E
  2050.   v1_B$="ÜBERSCHRIFT"
  2051.   v1_C$="Z.B.: Name, Adresse, Steuernummer etc. max. 70 Zeichen."
  2052.   v1_E$="Überschrift wird als Kopf auf den Abschluß gesetzt:"
  2053.   v2_45%=70
  2054.   @vB_33
  2055.   v1_15$=v1_F$
  2056. RETURN
  2057. > PROCEDURE vB_8
  2058.   ALERT 1,"JOURNAL-AS V 1.01|(C) 10/1988 by Ingmar Brunken|Mauritiussteinweg 1|5000 KÖLN 1",1,"OKAY",v2_0%
  2059.   ALERT 1,"Last Update 31/08/89 00:39|Compatible  NEC Pxx|Update F.R.G. 0221-215976|German Configuration",1,"OKAY",v2_0%
  2060.   ALERT 2,"|Kurzanleitung ausgeben ?",2," JA |NEIN",v2_0%
  2061.   IF v2_0%=2
  2062.     GOTO vA_2A
  2063.   ENDIF
  2064.   ALERT 2,"|Drucker fertig ?",2," JA |NEIN",v2_0%
  2065.   IF v2_0%=2
  2066.     GOTO vA_2A
  2067.   ENDIF
  2068.   LPRINT "JOURNAL-AS V 1.01"
  2069.   LPRINT "(C) 10/1988 by Ingmar P. Brunken"
  2070.   LPRINT "Last Update 31/08/89 00:39"
  2071.   LPRINT "Update Hot Line F.R.G. 0221-215976"
  2072.   LPRINT "Mauritiussteinweg 1 - 5000 KÖLN 1"
  2073.   LPRINT ""
  2074.   LPRINT "Dieses Programm ist voll GEM-unterstützt und bietet alle Möglichkeiten"
  2075.   LPRINT "optisch in der Menüleiste an. Zudem werden alle erforderlichen Vorgänge"
  2076.   LPRINT "kommenntiert."
  2077.   LPRINT
  2078.   LPRINT "Das Programm erstellt auch für kaufmännisch Ungeübte eine saubere "
  2079.   LPRINT "Buchführung für ein kleines Geschäft. Es ist damit optimal für "
  2080.   LPRINT "Selbständige, die ihr Gewerbe nebenberuflich betreiben oder deren"
  2081.   LPRINT "Geschäft keine solchen Ausmaße angenommen hat, daß ein professioneller"
  2082.   LPRINT "Buchhalter angestellt werden kann.-"
  2083.   LPRINT
  2084.   LPRINT "Zuerst erstellen Sie einen Kontenplan für Ihr Geschäft. Das notwendige"
  2085.   LPRINT "Wissen hierzu erlesen Sie sich in einem Ratgeber zur Buchhaltung,"
  2086.   LPRINT "erfragen es bei Ihrem Steuerberater, übernehmen es aus Ihrer bisherigen"
  2087.   LPRINT "Buchführung oder rufen mich an. Ich stehe Ihnen gerne zur Verfügung und"
  2088.   LPRINT "installiere das System individuell auf Ihr Geschäft. Bitte haben Sie unter"
  2089.   LPRINT "diesen Umständen jedoch Verständnis, daß ich ein kleines Honorar dafür"
  2090.   LPRINT "berechnen muß."
  2091.   LPRINT
  2092.   LPRINT "Nun die Menüpunkte kurz im Einzelnen:"
  2093.   LPRINT "1) INFO habebn Sie bereits entdeckt."
  2094.   LPRINT "2) DATEN ...initialisieren"
  2095.   LPRINT "Damit können Sie einen neuen Datensatz definieren, z.B. alle Daten"
  2096.   LPRINT "für ein bestimmtes jahr, für das die Buchhaltung vorgenommen werden"
  2097.   LPRINT "soll. Dieser Datensatz wird bearbeitet. Sie müssen nur initialieren,"
  2098.   LPRINT "wenn Sie einen neuen Datensatz beginnen wollen. Bereits eingegebene"
  2099.   LPRINT "Datensätze werden mit"
  2100.   LPRINT "DATEN ...laden"
  2101.   LPRINT "geladen und sind damit initialisiert."
  2102.   LPRINT "Fertig bearbeitete Datensätze werden mit"
  2103.   LPRINT "DATEN ...speichern"
  2104.   LPRINT "unter einem von Ihnen anzugebenden Namen auf ein von Ihnen anzugebendes"
  2105.   LPRINT "Laufwerk (auch Festplatte) abgespeichert. Abgespeichert werden immer "
  2106.   LPRINT "Die Daten der Belege. Abschlüsse werden nie abgespeichert, sie können "
  2107.   LPRINT "nur angesehen oder ausgedruckt werden. Aus denselben Belegen errechnet das"
  2108.   LPRINT "Programm Ihnen natürlich aber jederzeit einen bestimmten Abschluß, so daß"
  2109.   LPRINT "dieser indirekt natürlich auch in Form der belege gespeichert ist."
  2110.   LPRINT "DATEN ...Editor"
  2111.   LPRINT "ist eigentlich DER zentrale Menüpunkt. Er dient dazu, alle Belege, die sich"
  2112.   LPRINT "in Ihrem Geschäft gesammelt haben, einzugeben, zu ändern, anzusehen und zu"
  2113.   LPRINT "löschen. Sie werden ein sehr umfangreiches GEM-gesteuertes Kontrollfeld"
  2114.   LPRINT "vorfinden, daß sich selbst erklärt. In der Eingabebox rechts oben können"
  2115.   LPRINT "BLÄTTERN, indem Sie auf die PLAY-Taste links (zurück) oder rechts"
  2116.   LPRINT "(vorwärts) drücken. Nur die Eingaben TEXT und BETRAG müssen mit [RETURN]"
  2117.   LPRINT "abgeschlossen werden. Ansonsten sind die invers dargestellten Felder"
  2118.   LPRINT "jeweils aktiv. Sie werden links den von Ihnen eingegebenen Kontenrahmen"
  2119.   LPRINT "speziell für Ihr Geschäft finden. Aus diesem Grund ist dieser Menüpunkt"
  2120.   LPRINT "auch nur in Verbindung mit einem aktivierten Kontenrahmen funktionstüchtig,"
  2121.   LPRINT "dessen Namen und dessen Konten Sie immer auf dem Grundbildschirm des"
  2122.   LPRINT "Programmes finden."
  2123.   LPRINT "Komforthalber ist in der Eingabebox rechts oben ein WEGWEISER integriert,"
  2124.   LPRINT "der Ihnen immer angibt, welcher Schritt als nächstes zu tun ist."
  2125.   LPRINT "Zudem finden Sie rechts unten vier BUTTONS, in denen Ihnen ein"
  2126.   LPRINT "TASCHENRECHNER-TOOL, ein BELEGE-SUCHEN-TOOL, ein LÖSCHEN-TOOL"
  2127.   LPRINT "und ein BELEGE-SORTIEREN-TOOL angeboten wird. Der Toll zum Sortieren"
  2128.   LPRINT "der Belege ist immer erforderlich, wenn Sie die Eingabe abschließen"
  2129.   LPRINT "wollen. Die Belege werden dann automatisch sortiert."
  2130.   LPRINT "Es ist daher leicht ersichtlich, daß es am aller einfachsten ist, Sie"
  2131.   LPRINT "sammeln Ihre Belege in einem Schuhkarton, bis der Termin Ihrer Steuer-"
  2132.   LPRINT "erklärung näherrückt und das Jehr zuende ist. Das geben Sie einfach die"
  2133.   LPRINT "Belege in beliebiger Reiehenfolge ein und lassen sich ihr Journal"
  2134.   LPRINT "erstellen."
  2135.   LPRINT "Die vorgegeben Basiskonten sind dabei obligatorisch, sie kommen in"
  2136.   LPRINT "einem ordentlichen Geschäft nicht ohne sie aus (Kasse, Sachanlagen etc.)."
  2137.   LPRINT
  2138.   LPRINT "2) PARAMETER ...Datum"
  2139.   LPRINT "Geben Sie hier das aktuelle Datum ein. Es wird bei Ausdrucken übernommen,"
  2140.   LPRINT "so daß Sie immer im Bilde sind, welches die letzte Buchführung war."
  2141.   LPRINT "PARAMETER ...Name"
  2142.   LPRINT "geben Sie ein, damit Ihr Ausdruck Ihren Namen trägt. Hier können Sie"
  2143.   LPRINT "bereits auch Ihre Steuernummer vorsehen,"
  2144.   LPRINT
  2145.   LPRINT "PARAMETER ---Kontenrahmen--- ...initialisieren ...neues Konto"
  2146.   LPRINT "PARAMETER ---Kontenrahmen--- ...Konto löschen  ...umsortieren"
  2147.   LPRINT "Wie bereits unter 1) erläutert, geben Sie hier den für Sie individuellen"
  2148.   LPRINT "Kontenrahmen ein (erst initialisieren, dann neues Konto). Änderungen"
  2149.   LPRINT "können Sie mit 'umsortieren' und 'löschen' vornehmen."
  2150.   LPRINT "PARAMETER ---Kontenrahmen--- ...laden ...speichern"
  2151.   LPRINT "sind selbstverständliche Datenaktionsbefehle zum laden bereits "
  2152.   LPRINT "vorgefertiger oder speichern gerade erstellter Kontenrahmen."
  2153.   LPRINT "PARAMETER ---Kontenrahmen--- ...zeigen"
  2154.   LPRINT "schließlich zeigt Ihnen Ihren Kontenrahmen. 'B' steht dabei"
  2155.   LPRINT "für Bestandskonto, 'E' für Erfolgskonto."
  2156.   LPRINT
  2157.   LPRINT "3) ARBEITEN ...Abschluß"
  2158.   LPRINT "erstellt vollautomatisch ein Journal mit Vorsteuer und Salden etc."
  2159.   LPRINT "Vorher werden Sie nach Angaben über die Reihenfolge der Konten im"
  2160.   LPRINT "Ausdruck und über die Anfangsbestände der Bestandskonten befragt, die"
  2161.   LPRINT "Sie jeweils aus den Endbeständen des Vorjahresabschlusses übernehmen."
  2162.   LPRINT "Bei Geschäftsgründung sind die Anfansbestände natürlich je 0,-- DM."
  2163.   LPRINT
  2164.   LPRINT "ARBEITEN ...G&V-Rechnung"
  2165.   LPRINT "erstellt Ihnen vollautomatisch eine 1-a-Gewinn-und-Verlust-Rechnung"
  2166.   LPRINT "mit Berücksichtigung evrtl. pauschalen Telefon- und KFZ-Kosten."
  2167.   LPRINT
  2168.   LPRINT "ARBEITEN ...Anlagespiegel"
  2169.   LPRINT "schreibt Ihre Sachanlagen regulär (linear) ab und unterscheidet "
  2170.   LPRINT "selbständig innerhalb eines Jahres absetzbare Sachanlagen von"
  2171.   LPRINT "längerfristig abschreibbaren. Bei voller Abschreibung bleibt eine"
  2172.   LPRINT "Mark als Erinnerungswert stehen, wie in der Buchhaltung üblich."
  2173.   LPRINT
  2174.   LPRINT "Alle diese Berechnungen entsprechen ordentlicher regulärer Buchführung."
  2175.   LPRINT
  2176.   LPRINT "4) AUSGABE ...Bildschirm"
  2177.   LPRINT "zeigt Ihnen die gerade aktuelle Berechnung (gekennzeichnet durch"
  2178.   LPRINT "einen Haken im ARBEITEN-Menü) auf dem Bildschirm unter voller GEM-"
  2179.   LPRINT "Einbindung ind Window-Technik. Sie können blättern und walten, bis Sie"
  2180.   LPRINT "mit dem Ergebnis zufrieden sind und Papier opfern wollen."
  2181.   LPRINT "AUSGABE ...Drucker"
  2182.   LPRINT "bringt Ihre Buchhaltung zu Papier."
  2183.   LPRINT "AUSGABE ...Journalform"
  2184.   LPRINT "ist in dieser Version des Programmes obligatorisch."
  2185.   LPRINT "Optional ist die AUSGABE ...Kontenform vorgesehen, die eine Buchhaltung"
  2186.   LPRINT "auch für größere Geschäfte ermöglichen wird."
  2187.   LPRINT
  2188.   LPRINT "Möge Ihnen dieses Programm eine Menge"
  2189.   LPRINT "GELD (Steuerberater),"
  2190.   LPRINT "ARZTBESUCHE (Nervenzusammenbruch: Buchhaltung klappt nicht: SUMME IST FALSCH!)"
  2191.   LPRINT "ZEIT (32 Bleistifte verbraucht)"
  2192.   LPRINT "ersparen!!"
  2193.   LPRINT
  2194.   LPRINT "Drei Bitten habe ich noch (ach, so wenig??):"
  2195.   LPRINT "1) SCHICKEN SIE MIR KEIN GELD. PUBLIC DOMAIN SOLL GRATIS BLEIBEN."
  2196.   LPRINT "2) SCHICKEN SIE MIR LIEBER DIE KOPIE EINES GUTEN PD-PROGRAMMES,"
  2197.   LPRINT "FALLS SIE MAL EINS SCHREIBEN"
  2198.   LPRINT "3) SCHICKEN SIE MIR KRITIK. ICH BELOHNE SIE MIT DEM NEUESTEN UPDATE!"
  2199.   LPRINT
  2200.   LPRINT "INGMAR P. BRUNKEN"
  2201.   LPRINT
  2202.   LPRINT "P.S. WENN SIE DIE HERRLICHEN ERFOLGSSTATISTIK-GRAFIKEN AUSDRUCKEN"
  2203.   LPRINT "WOLLEN, LADEN SIE VORHER DEN NEC-P6-HARDCOPY-TREIBER IND DRUCKEN SIE"
  2204.   LPRINT "IN IHREM GEWÜNSCHTEN FORMAT MIT ALTERNATE+HELP AUS!"
  2205. vA_2A:
  2206. RETURN
  2207. > PROCEDURE vB_10
  2208.   FILESELECT v1_13$+"\*.KON",v1_7$,v1_11$
  2209.   IF v1_11$="" OR v1_11$="\"
  2210.     v1_19$=""
  2211.     GOTO vA_2C
  2212.   ENDIF
  2213.   IF RIGHT$(v1_11$,3)<>"KON"
  2214.     GOTO vA_2C
  2215.   ENDIF
  2216.   IF EXIST(v1_11$)=0
  2217.     ALERT 1,"|Datei existiert nicht.",1,"Huh?",v2_0%
  2218.     GOTO vA_2C
  2219.   ENDIF
  2220.   v1_7$=RIGHT$(v1_11$,12)
  2221.   v1_13$=LEFT$(v1_11$,INSTR(v1_11$,v1_7$)-1)
  2222.   OPEN "I",#1,v1_11$
  2223.   INPUT #1,v2_2%
  2224.   INPUT #1,v2_3%
  2225.   FOR v0_0#=1 TO v2_2%
  2226.     INPUT #1,v5_0$(v0_0#,1)
  2227.     INPUT #1,v6_4%(v0_0#,1)
  2228.   NEXT v0_0#
  2229.   FOR v0_0#=1 TO v2_3%
  2230.     INPUT #1,v5_0$(v0_0#,2)
  2231.     INPUT #1,v6_4%(v0_0#,2)
  2232.   NEXT v0_0#
  2233.   CLOSE #1
  2234. vA_2C:
  2235. RETURN
  2236. > PROCEDURE vB_11
  2237.   FILESELECT v1_13$+"\*.KON",v1_7$,v1_11$
  2238.   IF v1_11$="" OR v1_11$="\"
  2239.     v1_19$=""
  2240.     GOTO vA_2D
  2241.   ENDIF
  2242.   IF RIGHT$(v1_11$,3)<>"KON"
  2243.     GOTO vA_2D
  2244.   ENDIF
  2245.   OPEN "O",#1,v1_11$
  2246.   PRINT #1,v2_2%
  2247.   PRINT #1,v2_3%
  2248.   FOR v0_0#=1 TO v2_2%
  2249.     PRINT #1,v5_0$(v0_0#,1)
  2250.     PRINT #1,v6_4%(v0_0#,1)
  2251.   NEXT v0_0#
  2252.   FOR v0_0#=1 TO v2_3%
  2253.     PRINT #1,v5_0$(v0_0#,2)
  2254.     PRINT #1,v6_4%(v0_0#,2)
  2255.   NEXT v0_0#
  2256.   CLOSE #1
  2257. vA_2D:
  2258. RETURN
  2259. > PROCEDURE vB_13
  2260.   IF v1_7$=""
  2261.     ALERT 1,"|Erst Kontenrahmen|initialisieren!",1,"OKAY",v2_0%
  2262.     GOTO vA_2E
  2263.   ENDIF
  2264. vA_2F:
  2265.   DEFFILL ,2,4
  2266.   PBOX 0,19,639,399
  2267.   IF v2_3%=0 AND v2_2%=0
  2268.     ALERT 1,"|Keine Konten gespeichert!",1,"Hmpf.",v2_0%
  2269.     GOTO vA_2E
  2270.   ENDIF
  2271.   vB_4B
  2272.   v1_B$="KONTO LÖSCHEN"
  2273.   v1_C$="Bitte exakt dieselbe Schreibweise verwenden!"
  2274.   v1_E$="Bitte Name des zu löschenden Kontos eingeben:"
  2275.   v2_45%=13
  2276.   @vB_33
  2277.   v0_0#=1
  2278.   v1_14$=v1_F$
  2279.   @vB_38
  2280.   IF v1_14$="VORSTEUER" OR v1_14$="SACHANLAGEN"
  2281.     ALERT 1,"Nö, lösche ich nicht, Du|Saboteur! Das Konto brauche|ich noch! VORSTEUER und|SACHANLAGEN sind Zwang.",1," OK ",v2_0%
  2282.     GOTO vA_30
  2283.   ENDIF
  2284.   v1_F$=v1_14$
  2285.   v0_1E#=FALSE
  2286.   WHILE v0_0#<=v2_2%
  2287.     IF v5_0$(v0_0#,1)=v1_F$
  2288.       ALERT 2,"|'"+v1_F$+"' löschen?",2,"Löschen|Abbruch",v2_0%
  2289.       IF v2_0%<>1
  2290.         GOTO vA_30
  2291.       ENDIF
  2292.       v3_0!=TRUE
  2293.       DEC v2_2%
  2294.       FOR v0_E#=v0_0# TO v2_2%
  2295.         v5_0$(v0_E#,1)=v5_0$(v0_E#+1,1)
  2296.       NEXT v0_E#
  2297.       v5_0$(v2_2%+1,1)=""
  2298.       GOTO vA_31
  2299.     ENDIF
  2300.     INC v0_0#
  2301.   WEND
  2302. vA_31:
  2303.   v0_0#=1
  2304.   WHILE v0_0#<=v2_3%
  2305.     IF v5_0$(v0_0#,2)=v1_F$
  2306.       IF NOT v3_0!
  2307.         ALERT 2,"|'"+v1_F$+"' löschen?",2,"Löschen|Abbruch",v2_0%
  2308.       ENDIF
  2309.       DEC v2_3%
  2310.       FOR v0_E#=v0_0# TO v2_3%
  2311.         v5_0$(v0_E#,2)=v5_0$(v0_E#+1,2)
  2312.       NEXT v0_E#
  2313.       v5_0$(v2_3%+1,2)=""
  2314.       GOTO vA_30
  2315.     ENDIF
  2316.     INC v0_0#
  2317.   WEND
  2318.   ALERT 3,"Konto '"+v1_F$+"'|nicht gefunden.|Neuer Versuch?",2,"Ja |Nein",v2_0%
  2319.   IF v2_0%=2
  2320.     GOTO vA_2E
  2321.   ELSE
  2322.     GOTO vA_2F
  2323.   ENDIF
  2324. vA_30:
  2325.   ALERT 2,"|Weiter löschen?",2,"Ja |Nein",v2_0%
  2326.   IF v2_0%=1
  2327.     GOTO vA_2F
  2328.   ENDIF
  2329.   IF v2_0%=2
  2330.     GOTO vA_2E
  2331.   ENDIF
  2332.   GOTO vA_30
  2333. vA_2E:
  2334. RETURN
  2335. > PROCEDURE vB_2D
  2336.   IF v1_4$="" OR v2_5%<2
  2337.     ALERT 1,"Wie wär's, Kumpel,|erst 'mal'n Paar DATEN|eingeben, oder???",1,"Yeah!",v2_0%
  2338.     GOTO vA_32
  2339.   ENDIF
  2340.   @vB_4
  2341. vA_33:
  2342.   IF v4_0#(v2_5%)=0
  2343.     DEC v2_5%
  2344.     GOTO vA_33
  2345.   ENDIF
  2346.   FOR v2_D%=1 TO v2_5%
  2347.     v1_5$=v5_1$(v2_D%)
  2348.     v1_27$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
  2349.     IF LEN(v1_27$)=1
  2350.       v1_27$="0"+v1_27$
  2351.     ENDIF
  2352.     v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  2353.     v1_26$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
  2354.     IF LEN(v1_26$)=1
  2355.       v1_26$="0"+v1_26$
  2356.     ENDIF
  2357.     v1_20$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  2358.     v6_7%(v2_D%)=v2_D%
  2359.     v6_8%(v2_D%)=VAL(v1_20$+v1_26$+v1_27$)
  2360.     v5_F$(v2_D%)=v1_27$+"."+v1_26$+"."+v1_20$
  2361.     v5_10$(v2_D%)=v5_2$(v2_D%)
  2362.     v4_6#(v2_D%)=v4_0#(v2_D%)
  2363.     v6_A%(v2_D%)=v6_1%(v2_D%)
  2364.     v6_B%(v2_D%)=v6_0%(v2_D%)
  2365.     v6_C%(v2_D%)=v6_2%(v2_D%)
  2366.   NEXT v2_D%
  2367.   SSORT v6_8%(-),v2_5%+1,v6_7%()
  2368.   FOR v2_D%=1 TO v2_5%
  2369.     v5_1$(v2_D%)=v5_F$(v6_7%(v2_D%))
  2370.     v5_2$(v2_D%)=v5_10$(v6_7%(v2_D%))
  2371.     v4_0#(v2_D%)=v4_6#(v6_7%(v2_D%))
  2372.     v6_1%(v2_D%)=v6_A%(v6_7%(v2_D%))
  2373.     v6_0%(v2_D%)=v6_B%(v6_7%(v2_D%))
  2374.     v6_2%(v2_D%)=v6_C%(v6_7%(v2_D%))
  2375.   NEXT v2_D%
  2376.   @vB_0
  2377.   ALERT 1,"Datei '"+v1_4$+"'|sortiert...",1,"Gut.",v2_0%
  2378. vA_32:
  2379.   @vB_0
  2380. RETURN
  2381. > PROCEDURE vB_39                !<== Noch auf andere Drucker erweitern
  2382.   IF v1_7$=""
  2383.     ALERT 1,"Erst Kontenrahmen|definieren!|Was, dazu auch?",1,"Jaja.",v2_0%
  2384.     GOTO vA_34
  2385.   ENDIF
  2386.   DEFTEXT 1,0,0,13
  2387.   v1_B$="DRUCKERFORMAT"
  2388.   v2_E%=v2_2%+v2_3%
  2389.   v2_F%=v2_E%-2
  2390.   v2_10%=v2_E%-4
  2391.   v2_11%=v2_E%-5
  2392.   v2_12%=v2_E%-7
  2393. vA_35:
  2394.   IF v2_F%>0
  2395.     v2_F%=1+INT(((v2_E%-3)/6)+1)
  2396.   ELSE
  2397.     v2_F%=1
  2398.   ENDIF
  2399.   IF v2_10%>0
  2400.     v2_10%=1+INT(((v2_E%-4)/8)+1)
  2401.   ELSE
  2402.     v2_10%=1
  2403.   ENDIF
  2404.   IF v2_11%>0
  2405.     v2_11%=1+INT(((v2_E%-6)/9)+1)
  2406.   ELSE
  2407.     v2_11%=1
  2408.   ENDIF
  2409.   IF v2_12%>0
  2410.     v2_12%=1+INT(((v2_E%-7)/11)+1)
  2411.   ELSE
  2412.     v2_12%=1
  2413.   ENDIF
  2414.   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%)
  2415.   v1_E$="Alle Angaben bzgl. des aktuellen Kontenrahmens. Bitte wählen:"
  2416.   IF LEN(v1_B$)>LEN(v1_C$)
  2417.     v1_D$=v1_B$
  2418.   ELSE
  2419.     v1_D$=v1_C$
  2420.   ENDIF
  2421.   IF LEN(v1_E$)>LEN(v1_D$)
  2422.     v1_D$=v1_E$
  2423.   ENDIF
  2424.   v0_1#=(640-LEN(v1_D$)*8)/2-6
  2425.   v0_3#=640-v0_1#
  2426.   v0_2#=120
  2427.   v0_4#=280
  2428.   v0_12#=v0_3#
  2429.   v0_13#=v0_1#
  2430.   @vB_1D
  2431.   @vB_24
  2432.   ' xp3,xp4 Außenmaße der randbox
  2433.   v0_5#=(v0_12#-v0_13#-LEN(v1_B$)*8)/2+v0_13#
  2434.   v0_6#=152
  2435.   v0_1#=v0_5#
  2436.   v0_3#=v0_1#+LEN(v1_B$)*8
  2437.   v0_2#=138
  2438.   v0_4#=152
  2439.   v1_3$=v1_B$
  2440.   @vB_2E
  2441.   v0_5#=(v0_12#-v0_13#-LEN(v1_C$)*8)/2+v0_13#
  2442.   v0_6#=184
  2443.   v1_3$=v1_C$
  2444.   @vB_1E
  2445.   v0_5#=(v0_12#-v0_13#-LEN(v1_E$)*8)/2+v0_13#
  2446.   v0_6#=200
  2447.   v1_3$=v1_E$
  2448.   @vB_1E
  2449.   v0_4#=242
  2450.   v0_2#=222
  2451.   v0_1#=95
  2452.   v0_3#=170
  2453.   v0_6#=237
  2454.   v0_5#=124
  2455.   v1_3$="96"
  2456.   @vB_1D
  2457.   @vB_1E
  2458.   v0_1#=220
  2459.   v0_3#=295
  2460.   v0_5#=245
  2461.   v1_3$="120"
  2462.   @vB_1D
  2463.   @vB_1E
  2464.   v0_1#=345
  2465.   v0_3#=420
  2466.   v0_5#=370
  2467.   v1_3$="137"
  2468.   @vB_1D
  2469.   @vB_1E
  2470.   v0_1#=470
  2471.   v0_3#=545
  2472.   v0_5#=495
  2473.   v1_3$="160"
  2474.   @vB_1D
  2475.   @vB_1E
  2476.   @vB_36
  2477.   REPEAT
  2478.     MOUSE v2_9%,v2_A%,v2_B%
  2479.     IF v2_A%>222 AND v2_A%<242
  2480.       IF v2_9%>95 AND v2_9%<170 AND v1_3$<>"96"
  2481.         @vB_1D
  2482.         @vB_1E
  2483.         v0_1#=95
  2484.         v0_3#=170
  2485.         v0_5#=124
  2486.         v1_3$="96"
  2487.         @vB_36
  2488.       ENDIF
  2489.       IF v2_9%>220 AND v2_9%<295 AND v1_3$<>"120"
  2490.         @vB_1D
  2491.         @vB_1E
  2492.         v0_1#=220
  2493.         v0_3#=295
  2494.         v0_5#=245
  2495.         v1_3$="120"
  2496.         @vB_36
  2497.       ENDIF
  2498.       IF v2_9%>345 AND v2_9%<420 AND v1_3$<>"137"
  2499.         @vB_1D
  2500.         @vB_1E
  2501.         v0_1#=345
  2502.         v0_3#=420
  2503.         v0_5#=370
  2504.         v1_3$="137"
  2505.         @vB_36
  2506.       ENDIF
  2507.       IF v2_9%>470 AND v2_9%<545 AND v1_3$<>"160"
  2508.         @vB_1D
  2509.         @vB_1E
  2510.         v0_1#=470
  2511.         v0_3#=545
  2512.         v0_5#=495
  2513.         v1_3$="160"
  2514.         @vB_36
  2515.       ENDIF
  2516.     ENDIF
  2517.   UNTIL v2_B%=1
  2518.   v1_16$=v1_3$
  2519.   IF v1_3$="96"
  2520.     v1_17$=CHR$(18)+CHR$(27)+CHR$(77)
  2521.     v2_13%=v2_F%
  2522.   ELSE
  2523.     IF v1_3$="120"
  2524.       v1_17$=CHR$(18)+CHR$(27)+CHR$(103)
  2525.       v2_13%=v2_10%
  2526.     ELSE
  2527.       IF v1_3$="137"
  2528.         v1_17$=CHR$(27)+CHR$(15)+CHR$(27)+CHR$(80)
  2529.         v2_13%=v2_11%
  2530.       ELSE
  2531.         IF v1_3$="160"
  2532.           v1_17$=CHR$(27)+CHR$(15)+CHR$(27)+CHR$(103)
  2533.           v2_13%=v2_12%
  2534.         ENDIF
  2535.       ENDIF
  2536.     ENDIF
  2537.   ENDIF
  2538.   DEFFILL ,2,4
  2539. vA_34:
  2540.   PBOX 0,19,639,399
  2541. RETURN
  2542. > PROCEDURE vB_16
  2543.   IF v1_7$=""
  2544.     ALERT 1,"|Erst Kontenrahmen|initialisieren!",1," OK ",v2_0%
  2545.     GOTO vA_36
  2546.   ENDIF
  2547. vA_37:
  2548.   DEFFILL ,2,4
  2549.   PBOX 0,19,639,399
  2550.   IF v2_3%=0 AND v2_2%=0
  2551.     ALERT 1,"|Keine Konten gespeichert!",1,"Hmpf.",v2_0%
  2552.     GOTO vA_36
  2553.   ENDIF
  2554.   IF v1_4$="" OR v2_5%<2
  2555.     ALERT 3,"Sag 'mal, also a|paar Belege eingeben|mußt scho', gell?!",1,"Firti!",v2_0%
  2556.     GOTO vA_36
  2557.   ENDIF
  2558.   IF v2_1%<=-1            ! Abschluß ist schon ausgeführt
  2559.     ALERT 2,"Neuer Abschluß?Alten|Abschluß löschen oder|nur zurückrufen?",1,"Löschen|Zurück",v2_0%
  2560.     IF v2_0%=1
  2561.       ARRAYFILL v4_1#(),0
  2562.       ARRAYFILL v4_2#(),0
  2563.       ARRAYFILL v6_3%(),0
  2564.       FOR v2_3D%=0 TO 2000
  2565.         v5_5$(v2_3D%)=""
  2566.         v5_3$(v2_3D%)=""
  2567.       NEXT v2_3D%
  2568.     ELSE
  2569.       v2_1%=-1
  2570.       ALERT 1,"|Ausgabeobjekt: ABSCHLUSS.",1," OKAY ",v2_0%
  2571.       GOTO vA_36
  2572.     ENDIF
  2573.   ENDIF
  2574.   v2_14%=0
  2575.   v0_8#=0
  2576.   v0_1D#=0
  2577.   ALERT 2,"Reihenfolge der Konten|im Journal definieren (NEU)|oder wie im EDITOR (ALT)?",2," NEU | ALT ",v2_0%
  2578.   IF v2_0%=1
  2579.     v1_1E$="NEU"
  2580.   ELSE
  2581.     v1_1E$="ALT"
  2582.   ENDIF
  2583.   DO
  2584.     INC v2_14%
  2585.   vA_38:
  2586.     EXIT IF v0_8#=v2_2% AND v0_1D#=v2_3%
  2587.     IF v1_1E$="NEU"
  2588.       vB_4B
  2589.       v1_B$="KONTENREIHENFOLGE IM ABSCHLUSSBOGEN"
  2590.       v1_C$="Bitte exakt dieselbe Schreibweise verwenden!"
  2591.       v1_E$="Name des "+STR$(v2_14%)+".Kontos eingeben (v.l.n.r.):"
  2592.       v2_45%=13
  2593.       @vB_33
  2594.       v1_14$=v1_F$
  2595.       @vB_38
  2596.     ELSE
  2597.       IF v0_1D#<v2_3%
  2598.         v2_3D%=1
  2599.       vA_4A:
  2600.         IF VAL(LEFT$(v5_0$(v2_3D%,2),2))=0
  2601.           v1_14$=v5_0$(v2_3D%,2)
  2602.         ELSE
  2603.           INC v2_3D%
  2604.           GOTO vA_4A
  2605.         ENDIF
  2606.       ELSE
  2607.         v2_3D%=1
  2608.       vA_4B:
  2609.         IF VAL(LEFT$(v5_0$(v2_3D%,1),2))=0
  2610.           v1_14$=v5_0$(v2_3D%,1)
  2611.         ELSE
  2612.           INC v2_3D%
  2613.           GOTO vA_4B
  2614.         ENDIF
  2615.       ENDIF
  2616.     ENDIF
  2617.     IF v1_14$="VORSTEUER"
  2618.       v2_15%=v2_14%
  2619.     ENDIF
  2620.     SWAP v1_F$,v1_14$
  2621.     v0_1E#=0
  2622.     v1_5$=LEFT$("  ",2-LEN(STR$(v2_14%)))+STR$(v2_14%)
  2623.     FOR v2_D%=1 TO v2_3%
  2624.       IF v5_0$(v2_D%,2)=v1_F$
  2625.         IF v6_4%(v2_D%,2)=1      ! Eröffnungsbestand nur bei Bestandskonto
  2626.           SWAP v1_F$,v1_14$
  2627.           v1_B$="ERÖFFNUNGSBESTAND DES BESTANDSKONTOS '"+v1_14$+"'"
  2628.           v1_C$="Betrag ist Endbestand des Kontos aus der Vorperiode."
  2629.           v1_E$="Bitte Betrag eingeben:"
  2630.           v2_45%=13
  2631.           @vB_33
  2632.           IF VAL(v1_F$)<=0 OR VAL(v1_F$)>1E+07
  2633.             v4_2#(v2_14%)=0
  2634.           ENDIF
  2635.           SWAP v1_14$,v1_F$
  2636.           ' Rucksack nötig, da Ungenauigkeiten im Bereich 10^-12 eingetreten sind!
  2637.           v0_1F#=INT(VAL(v1_14$)*100+0.1)/100
  2638.           ADD v4_2#(v2_14%),v0_1F#
  2639.         ENDIF
  2640.         v5_0$(v2_D%,2)=v1_5$+v5_0$(v2_D%,2)
  2641.         v4_1#(v2_14%)=v2_D%+0.5
  2642.         v0_1E#=-1
  2643.         INC v0_1D#
  2644.       ENDIF
  2645.     NEXT v2_D%
  2646.     FOR v2_D%=1 TO v2_2%
  2647.       IF v5_0$(v2_D%,1)=v1_F$
  2648.         IF v6_4%(v2_D%,1)=1     ! Eröffnungsbestand nur bei Bestandskonto
  2649.           IF v0_1E#<>-1
  2650.             SWAP v1_F$,v1_14$
  2651.             v1_B$="ERÖFFNUNGSBESTAND DES BESTANDSKONTOS '"+v1_14$+"'"
  2652.             v1_C$="Betrag ist Endbestand des Kontos aus der Vorperiode."
  2653.             v1_E$="Bitte Betrag eingeben:"
  2654.             v2_45%=13
  2655.             @vB_33
  2656.             IF VAL(v1_F$)<=0 OR VAL(v1_F$)>1E+07
  2657.               v4_2#(v2_14%)=0
  2658.             ENDIF
  2659.             SWAP v1_14$,v1_F$
  2660.             ' Rucksack nötig, da Ungenauigkeiten im Bereich 10^-12 eingetreten sind!
  2661.             v0_1F#=INT(VAL(v1_14$)*100+0.1)/100
  2662.             ADD v4_2#(v2_14%),v0_1F#
  2663.           ELSE
  2664.             INC v2_14%
  2665.             v1_5$=LEFT$("  ",2-LEN(STR$(v2_14%)))+STR$(v2_14%)
  2666.             IF v1_14$="SACHANLAGEN"
  2667.               v2_0%=1
  2668.             ELSE
  2669.               ALERT 2,"|Kontostand befindet|sich im:",2,"SOLL|HABEN",v2_0%
  2670.             ENDIF
  2671.             IF v2_0%=2
  2672.               SUB v4_2#(v2_14%-1),v0_1F#
  2673.               ADD v4_2#(v2_14%),v0_1F#
  2674.               v1_14$=""
  2675.             ENDIF
  2676.             v0_1F#=0
  2677.           ENDIF
  2678.           v1_14$=""
  2679.         ELSE IF v0_1E#=-1
  2680.           INC v2_14%
  2681.           v1_5$=LEFT$("  ",2-LEN(STR$(v2_14%)))+STR$(v2_14%)
  2682.         ENDIF
  2683.         v5_0$(v2_D%,1)=v1_5$+v5_0$(v2_D%,1)
  2684.         v4_1#(v2_14%)=v2_D%
  2685.         v0_1E#=-1
  2686.         INC v0_8#
  2687.       ENDIF
  2688.       IF v1_14$="SACHANLAGEN"
  2689.         v2_3E%=v2_14%-1
  2690.         v0_23#=v4_2#(v2_14%-1)
  2691.       ENDIF
  2692.     NEXT v2_D%
  2693.     IF v0_1E#=0
  2694.       ALERT 1,"|Konto unbekannt.",1,"WEITER|ABBRUCH",v2_0%
  2695.       IF v2_0%=1
  2696.         GOTO vA_38
  2697.       ELSE
  2698.         GOTO vA_36
  2699.       ENDIF
  2700.     ENDIF
  2701.   LOOP
  2702.   @vB_4
  2703.   FOR v2_D%=1 TO v2_2%
  2704.     v6_3%(v2_D%,1)=VAL(LEFT$(v5_0$(v2_D%,1),2))
  2705.     v5_0$(v2_D%,1)=RIGHT$(v5_0$(v2_D%,1),LEN(v5_0$(v2_D%,1))-2)
  2706.   NEXT v2_D%
  2707.   FOR v2_D%=1 TO v2_3%
  2708.     v6_3%(v2_D%,2)=VAL(LEFT$(v5_0$(v2_D%,2),2))
  2709.     v5_0$(v2_D%,2)=RIGHT$(v5_0$(v2_D%,2),LEN(v5_0$(v2_D%,2))-2)
  2710.   NEXT v2_D%
  2711.   v5_3$(3)="LfdNr"+CHR$(179)+"Datum   "+CHR$(179)+"Buchungstext              "+CHR$(186)+"Summe "+CHR$(228)+"  "+CHR$(179)+"MWSt"+CHR$(186)
  2712.   v5_3$(4)=" [#] "+CHR$(179)+"tt.mm.jj"+CHR$(179)+STRING$(26,32)+CHR$(186)+"  [DM]   "+CHR$(179)+"[%] "+CHR$(186)
  2713.   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)
  2714.   v1_18$="     "+CHR$(179)+"        "+CHR$(179)+".........................."+CHR$(186)+"         "+CHR$(179)+"    "+CHR$(186)
  2715.   v5_3$(6)="-----"+CHR$(179)+"--------"+CHR$(179)+"ERÖFFNUNGSBESTÄNDE        "+CHR$(186)+"---------"+CHR$(179)+"----"+CHR$(186)
  2716.   ' Kontennamen in den Tabellenkopf
  2717.   FOR v2_D%=1 TO v2_2%+v2_3%
  2718.     IF v4_1#(v2_D%)=INT(v4_1#(v2_D%))
  2719.       ' Haben-Konto
  2720.       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)
  2721.       v5_3$(4)=v5_3$(4)+"HABEN  [DM]  "+CHR$(186)
  2722.       v5_3$(5)=v5_3$(5)+STRING$(13,205)+CHR$(206)
  2723.       v5_3$(6)=v5_3$(6)+"             "+CHR$(186)
  2724.       v1_18$=v1_18$+"             "+CHR$(186)
  2725.     ELSE
  2726.       ' Soll_konto
  2727.       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)
  2728.         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)
  2729.         v5_3$(4)=v5_3$(4)+"SOLL   [DM]  "+CHR$(179)
  2730.         v5_3$(5)=v5_3$(5)+STRING$(13,205)+CHR$(216)
  2731.         v5_3$(6)=v5_3$(6)+"             "+CHR$(179)
  2732.         v1_18$=v1_18$+"             "+CHR$(179)
  2733.       ELSE
  2734.         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)
  2735.         v5_3$(4)=v5_3$(4)+"SOLL   [DM]  "+CHR$(186)
  2736.         v5_3$(5)=v5_3$(5)+STRING$(13,205)+CHR$(206)
  2737.         v5_3$(6)=v5_3$(6)+"             "+CHR$(186)
  2738.         v1_18$=v1_18$+"             "+CHR$(186)
  2739.       ENDIF
  2740.     ENDIF
  2741.   NEXT v2_D%
  2742.   ' aform$ ist Zeilen-Maske für Journal
  2743.   v5_3$(1)=v1_15$+RIGHT$(STRING$(LEN(v1_18$),32),LEN(v1_18$)-LEN(v1_15$))
  2744.   v5_3$(2)=STRING$(LEN(v1_18$),32)
  2745.   v2_16%=0
  2746.   DO
  2747.     INC v2_16%
  2748.     v5_3$(v2_16%*66-65)=v5_3$(1)
  2749.     v5_3$(v2_16%*66-64)=v5_3$(2)
  2750.     v5_3$(v2_16%*66-63)=v5_3$(3)
  2751.     v5_3$(v2_16%*66-62)=v5_3$(4)
  2752.     v5_3$(v2_16%*66-61)=v5_3$(5)
  2753.     IF v2_16%>1
  2754.       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)
  2755.     ELSE
  2756.       ' Eröffnungsbestände
  2757.       FOR v2_7%=1 TO v2_3%+v2_2%
  2758.         IF v4_2#(v2_7%)=0
  2759.           v1_5$="-------------"
  2760.         ELSE
  2761.           vB_49(v4_2#(v2_7%))
  2762.           v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
  2763.         ENDIF
  2764.         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)
  2765.       NEXT v2_7%
  2766.     ENDIF
  2767.     v5_3$(v2_16%*66-1)=v5_3$(5)
  2768.     FOR v2_D%=v2_16%*66-59 TO v2_16%*66-2
  2769.       v5_3$(v2_D%)=v1_18$
  2770.       v2_17%=v2_D%-6*v2_16%-(v2_16%-1)*2
  2771.       EXIT IF v2_17%>v2_5%
  2772.       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)
  2773.       ' Jahreszahl von jjjj auf jj kürzen
  2774.       IF INSTR(RIGHT$(v5_1$(v2_17%),4),".")=0
  2775.         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)
  2776.       ELSE
  2777.         v1_5$=v5_1$(v2_17%)
  2778.       ENDIF
  2779.       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)
  2780.       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%)))
  2781.       vB_49(v4_0#(v2_17%))
  2782.       v1_5$=v1_21$
  2783.       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)
  2784.       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)
  2785.       IF v6_1%(v2_17%)=0
  2786.         v2_18%=v6_3%(v6_0%(v2_17%),1)
  2787.         v0_20#=v4_0#(v2_17%)
  2788.         ADD v4_2#(v2_18%),v0_20#
  2789.         @vB_3A
  2790.         v2_18%=v6_3%(v6_2%(v2_17%),2)
  2791.         v0_20#=v4_0#(v2_17%)
  2792.         ADD v4_2#(v2_18%),v0_20#
  2793.         @vB_3A
  2794.       ELSE
  2795.         v2_18%=v6_3%(v6_0%(v2_17%),1)
  2796.         v0_20#=v4_0#(v2_17%)
  2797.         ADD v4_2#(v2_18%),v0_20#
  2798.         @vB_3A
  2799.         v2_18%=v2_15%
  2800.         v0_20#=INT(v4_0#(v2_17%)*v6_1%(v2_17%)/(100+v6_1%(v2_17%))*100+0.5)/100
  2801.         ADD v4_2#(v2_18%),v0_20#
  2802.         @vB_3A
  2803.         v2_18%=v6_3%(v6_2%(v2_17%),2)
  2804.         v0_20#=v4_0#(v2_17%)-v0_20#
  2805.         ADD v4_2#(v2_18%),v0_20#
  2806.         @vB_3A
  2807.       ENDIF
  2808.     NEXT v2_D%
  2809.     EXIT IF v2_17%>v2_5%
  2810.     v5_3$(v2_16%*66)="ÜBERTRAG AN NÄCHSTE SEITE:                              "+RIGHT$(v1_18$,LEN(v1_18$)-56)
  2811.     ' Nächste Schleife wegen Saldo bei SOLL+HABEN-Kontos
  2812.     FOR v2_7%=57 TO 57+(v2_3%+v2_2%)*14-28 STEP 14
  2813.       IF MID$(v1_18$,v2_7%+14,1)=CHR$(179)
  2814.         ' Dann ist es nämlich ein im SOLL und HABEN geführtes Konto!
  2815.         IF v4_2#((v2_7%-43)/14)>v4_2#((v2_7%-29)/14)
  2816.           SUB v4_2#((v2_7%-43)/14),v4_2#((v2_7%-29)/14)
  2817.           v4_2#((v2_7%-29)/14)=0
  2818.         ELSE
  2819.           SUB v4_2#((v2_7%-29)/14),v4_2#((v2_7%-43)/14)
  2820.           v4_2#((v2_7%-43)/14)=0
  2821.         ENDIF
  2822.         ADD v2_7%,14
  2823.       ENDIF
  2824.     NEXT v2_7%
  2825.     ' Jetzt werden die Kontosummen in die Übertragszeile eingetragen
  2826.     FOR v2_7%=1 TO v2_3%+v2_2%
  2827.       IF v4_2#(v2_7%)=0
  2828.         v1_5$="-------------"
  2829.       ELSE
  2830.         vB_49(v4_2#(v2_7%))
  2831.         v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
  2832.       ENDIF
  2833.       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)
  2834.     NEXT v2_7%
  2835.   LOOP
  2836.   v2_19%=v2_D%
  2837.   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)
  2838.   INC v2_19%
  2839.   v5_3$(v2_19%)="*** ABSCHLUSSBETRÄGE DER KONTEN ************************"+RIGHT$(v1_18$,LEN(v1_18$)-56)
  2840.   FOR v2_7%=1 TO v2_3%+v2_2%
  2841.     IF v2_7%<v2_2%+v2_3% AND v5_0$(v4_1#(v2_7%),2)=v5_0$(v4_1#(v2_7%+1),1)
  2842.       IF v4_2#(v2_7%)>v4_2#(v2_7%+1)
  2843.         SUB v4_2#(v2_7%),v4_2#(v2_7%+1)
  2844.         v4_2#(v2_7%+1)=0
  2845.       ELSE
  2846.         SUB v4_2#(v2_7%+1),v4_2#(v2_7%)
  2847.         v4_2#(v2_7%)=0
  2848.       ENDIF
  2849.     ENDIF
  2850.     IF v4_2#(v2_7%)=0
  2851.       v1_5$="-------------"
  2852.     ELSE
  2853.       vB_49(v4_2#(v2_7%))
  2854.       v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
  2855.     ENDIF
  2856.     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)
  2857.   NEXT v2_7%
  2858.   @vB_0
  2859.   ALERT 1,"BERECHNUNG BEENDET.|Zur Ausgabe des|Abschlusses bitte im|Menü Ausgabeart wählen!",1," OK ",v2_0%
  2860.   v2_1%=-1
  2861.   v2_43%=0
  2862.   v2_47%=0
  2863. vA_36:
  2864. RETURN
  2865. > PROCEDURE vB_38
  2866.   ' Wandelt gross$ so um, daß Kleinbuchst. zu Grossbuchst. werden
  2867.   v1_14$=UPPER$(v1_14$)
  2868. RETURN
  2869. > PROCEDURE vB_3A
  2870.   vB_49(v0_20#)
  2871.   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)
  2872. RETURN
  2873. > PROCEDURE vB_15
  2874.   IF v2_43%>0
  2875.     ALERT 2,"Soll ich einen neuen|Anlagespiegel erstellen oder|den alten zurückrufen?",2," Neu | Alt ",v2_0%
  2876.     IF v2_0%=2
  2877.       v2_1%=-2
  2878.       ALERT 1,"|Ausgabeobjekt: ANLAGESPIEGEL.",1," OKAY ",v2_0%
  2879.       GOTO vA_4C
  2880.     ELSE
  2881.       v2_1%=-1
  2882.     ENDIF
  2883.   ENDIF
  2884.   v3_1!=FALSE
  2885.   SELECT v2_1%
  2886.   CASE 0, TO -2
  2887.     ALERT 3,"|Erst Abschluß machen!",1,"Ah ja!",v2_0%
  2888.     GOTO vA_4C
  2889.   CASE -1
  2890.     v2_1%=-2
  2891.     v2_40%=0
  2892.     IF v0_23#=0
  2893.       ALERT 1,"Armer Schlucker!|Hat keine Sachanlagen in|der Firma...",1,"Grlmpf.",v2_0%
  2894.       GOTO vA_56
  2895.     ELSE
  2896.       vB_49(v0_23#)
  2897.       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%
  2898.     ENDIF
  2899.     v0_2D#=0
  2900.     DO
  2901.     vA_50:
  2902.       v1_B$="SACHANLAGE POSTEN BEZEICHNUNG"
  2903.       v1_C$="Bitte die Bezeichnung des Sachanlagepostens eingeben."
  2904.       v1_E$="Eingabe in DM. Eingabe max. 27 Zeichen (Leer=Abbruch)."
  2905.       v2_45%=27
  2906.       vB_33
  2907.       IF v1_F$=""
  2908.         v1_0$="|Abbruch?"
  2909.         vB_19
  2910.         IF v2_0%=1
  2911.           GOTO vA_4C
  2912.         ELSE
  2913.           GOTO vA_50
  2914.         ENDIF
  2915.       ENDIF
  2916.       INC v2_40%
  2917.       v5_6$(v2_40%)=v1_F$
  2918.     vA_4D:
  2919.       v1_B$="'"+v1_F$+"' ANSCHAFFUNGSKOSTEN"
  2920.       v1_C$="Bitte Anschaffungskosten in DM  angeben."
  2921.       v1_E$="Es wird eine lineare Abschreibung auf 5 Jahre vorgenommen."
  2922.       v2_45%=12
  2923.       vB_33
  2924.       IF VAL(v1_F$)<=0
  2925.         ALERT 1,"|Sehr witzig!|AK von NULL. Harhar!",1,"Schäm!",v2_0%
  2926.         GOTO vA_4D
  2927.       ELSE IF VAL(v1_F$)<=800
  2928.         ALERT 1,"Quatsch! Bei den|Anschaffungskosten hätte der|Posten schon im ersten Jahr|abgeschrieben werden müssen!",1,"Schäm!",v2_0%
  2929.         GOTO vA_4D
  2930.       ENDIF
  2931.       v4_3#(v2_40%)=VAL(v1_F$)
  2932.     vA_4E:
  2933.       v1_B$="'"+v5_6$(v2_40%)+"' RESTBUCHWERT"
  2934.       v1_C$="Bitte Buchungswert aus dem letztjährigen"
  2935.       v1_E$="Anlagespiegel angeben: [DM]"
  2936.       v2_45%=12
  2937.       vB_33
  2938.       IF VAL(v1_F$)<=0
  2939.         ALERT 2,"Posten ohne Restbuchwert?|[1] Buchwert neu eingeben|[2] Posten löschen",1," 1 | 2 ",v2_0%
  2940.         SELECT v2_0%
  2941.         CASE 1
  2942.           DEC v2_40%
  2943.           GOTO vA_50
  2944.         CASE 2
  2945.           GOTO vA_4E
  2946.         ENDSELECT
  2947.       ELSE IF VAL(v1_F$)>v4_3#(v2_40%)
  2948.         ALERT 2,"Restbuchwert>Anschaffungskosten?|[1] Anschaffungskosten neu|[2] Restbuchwert neu",2," 1 | 2 ",v2_0%
  2949.         SELECT v2_0%
  2950.         CASE 1
  2951.           GOTO vA_4D
  2952.         CASE 2
  2953.           GOTO vA_4E
  2954.         ENDSELECT
  2955.       ENDIF
  2956.       v4_4#(v2_40%)=VAL(v1_F$)
  2957.       v0_2D#=v0_2D#+v4_4#(v2_40%)
  2958.       EXIT IF v0_2D#=v0_23#
  2959.       IF v0_2D#>v0_23#
  2960.         v1_0$="Hier stimmt die Aufschlüsselung|nicht mit Buchwert von|DM "+v1_21$+" überein.|Abbruch?"
  2961.         vB_19
  2962.         IF v2_0%=1
  2963.           GOTO vA_4C
  2964.         ELSE
  2965.           v0_2D#=0
  2966.           v2_40%=0
  2967.           GOTO vA_50
  2968.         ENDIF
  2969.       ENDIF
  2970.     LOOP
  2971.     IF v2_40%=0
  2972.       GOTO vA_4C
  2973.     ENDIF
  2974.   vA_56:
  2975.     vB_4
  2976.     v2_D%=1
  2977.     WHILE v5_0$(v2_D%,2)<>"SACHANLAGEN"
  2978.       INC v2_D%
  2979.     WEND
  2980.     IF v5_0$(v2_D%,2)<>"SACHANLAGEN"
  2981.       v2_7%=0
  2982.     ELSE
  2983.       v2_7%=v2_D%            ! hi%: Zeigt an, wo das SOLL der SACHANLAGEN gebucht ist
  2984.     ENDIF
  2985.     v2_D%=1
  2986.     WHILE v5_0$(v2_D%,1)<>"SACHANLAGEN" AND v2_D%<=v2_2%
  2987.       INC v2_D%
  2988.     WEND
  2989.     IF v5_0$(v2_D%,1)<>"SACHANLAGEN"
  2990.       v2_38%=0
  2991.     ELSE
  2992.       v2_38%=v2_D%            ! si%: Zeigt an, wo HABEN der SACHANLAGEN gebucht ist
  2993.     ENDIF
  2994.     IF v2_38%=0 AND v2_7%=0
  2995.       ALERT 1,"Na, hast Du Lümmel|das SACHANLAGENKONTO gelöscht?|Ich kann es nicht finden!",1,"Nee?",v2_0%
  2996.       ALERT 1,"Anlagespiegel ohne Konto|SACHANLAGEN unmöglich!",1,"Bäh!",v2_0%
  2997.       GOTO vA_4C
  2998.     ELSE IF v2_38%=0
  2999.       ALERT 1,"ACHTUNG: Das Konto SACHANLAGEN|hat keine HABEN-Seite.|Keine Abgangsbuchungen!",1,"Und?",v2_0%
  3000.     ELSE IF v2_7%=0
  3001.       ALERT 3,"ACHTUNG: Konto SACHANLAGEN hat keine|SOLL-Seite. Keine Zugangsbuchung.|Vermutlich Fehler?",2,"Weiter|Abbruch",v2_0%
  3002.       IF v2_0%=2
  3003.         GOTO vA_4C
  3004.       ENDIF
  3005.     ENDIF
  3006.     FOR v2_D%=1 TO v2_5%
  3007.       IF v6_2%(v2_D%)=v2_7% AND v2_7%<>0              ! Zugang an SACHANLAGEN
  3008.         INC v2_40%
  3009.         v5_6$(v2_40%)=v5_2$(v2_D%)+"  ⇦Zugang am "+v5_1$(v2_D%)
  3010.         v4_3#(v2_40%)=v4_0#(v2_D%)/(1+0.01*v6_1%(v2_D%))+0.005
  3011.         v4_4#(v2_40%)=v4_3#(v2_40%)
  3012.       ENDIF
  3013.       IF v6_0%(v2_D%)=v2_38% AND v2_38%<>0              ! Abgang an SACHANLAGEN
  3014.         INC v2_40%
  3015.         v5_6$(v2_40%)=v5_2$(v2_D%)+"  ⇦Abgang am "+v5_1$(v2_D%)
  3016.         v4_3#(v2_40%)=-v4_0#(v2_D%)/(1+0.01*v6_1%(v2_D%))-0.005
  3017.         v4_4#(v2_40%)=v4_3#(v2_40%)
  3018.       ENDIF
  3019.     NEXT v2_D%
  3020.     v1_20$=RIGHT$(v5_1$(v2_5%),2)
  3021.     v5_3$(v2_19%+1)="Anlagespiegel 19"+v1_20$
  3022.     IF INSTR(v1_15$,"Steuer")>0
  3023.       v5_3$(v2_19%+2)=LEFT$(v1_15$,INSTR(v1_15$,"Steuer")-1)
  3024.       v5_3$(v2_19%+3)=RIGHT$(v1_15$,LEN(v1_15$)-LEN(v5_3$(v2_19%+2)))
  3025.     ELSE
  3026.       v5_3$(v2_19%+2)=v1_15$
  3027.       v5_3$(v2_19%+3)=""
  3028.     ENDIF
  3029.     v5_3$(v2_19%+4)=STRING$(80,"-")
  3030.     v5_3$(v2_19%+5)=""
  3031.     v5_3$(v2_19%+6)=""
  3032.     ' Format Anlagespiegel-ausgabe:
  3033.     ' 80 Zeichen Textbreite, dafür:
  3034.     ' 28 Zeichen Text (Postenbezeichnung)
  3035.     ' Je 12 Zeichen für STAND 31.12., ABGANG/ZUGANG, AfA, STAND 1.1.
  3036.     ' plus je ein Zwischenzeichen
  3037.     v5_3$(v2_19%+7)=STRING$(28," ")+"    Stand    "+" "+"  - Abgang  "+" "+"            "+" "+"    Stand"
  3038.     v5_3$(v2_19%+8)="I. Anlagegegenstände        "+"  1.1.19"+STR$(VAL(v1_20$)-1)+"   "+" "+"  + Zugang  "+" "+"     AfA     "+" "+" 31.12.19"+v1_20$
  3039.     v5_3$(v2_19%+9)="--------------------        "+STRING$(52,"-")
  3040.     v2_3D%=9
  3041.     FOR v2_D%=1 TO v2_40%
  3042.       IF v4_3#(v2_D%)>800            !Kein geringwertiges Wirtschaftsgut
  3043.         INC v2_3D%
  3044.         IF v4_3#(v2_D%)>v4_4#(v2_D%)
  3045.           v5_3$(v2_19%+v2_3D%)=LEFT$(v5_6$(v2_D%),28)+STRING$(28-LEN(LEFT$(v5_6$(v2_D%),28))," ")
  3046.           ' 2. Zeile von posten$ AK vermerken
  3047.           INC v2_3D%
  3048.           vB_49(v4_3#(v2_D%))
  3049.           v1_5$="[AK "+v1_21$+" DM]"
  3050.           v5_3$(v2_19%+v2_3D%)=v1_5$+STRING$(28-LEN(v1_5$)," ")
  3051.           ' Stand 1.1. Restbuchwert vermerken
  3052.           vB_49(v4_4#(v2_D%))
  3053.           v1_5$=STRING$(13-LEN(v1_21$)," ")+v1_21$
  3054.           v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+v1_5$
  3055.           ' Kein Zugang/Abgang
  3056.           v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+"        ./.  "
  3057.           ' Afa 5 Jahre 20% vermerken
  3058.           v0_24#=0.2*v4_3#(v2_D%)
  3059.           IF v4_4#(v2_D%)<v0_24#
  3060.             v0_24#=v4_4#(v2_D%)
  3061.           ENDIF
  3062.           vB_49(v0_24#)
  3063.           v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
  3064.           v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+v1_5$
  3065.           ' Neuer Restbuchwert Stand 31.12. vermerken
  3066.           v0_24#=v4_4#(v2_D%)-v0_24#
  3067.           vB_49(v0_24#)
  3068.           v1_5$=STRING$(13-LEN(v1_21$),32)+v1_21$
  3069.           v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+v1_5$
  3070.         ELSE
  3071.           v1_5$=LEFT$(v5_6$(v2_D%),INSTR(v5_6$(v2_D%),"⇦")-1)
  3072.           v5_3$(v2_19%+v2_3D%)=LEFT$(v1_5$,28)+STRING$(28-LEN(LEFT$(v1_5$,28))," ")
  3073.           ' 2.Zeile posten$ ADatum vermerken
  3074.           INC v2_3D%
  3075.           v1_5$=RIGHT$(v5_6$(v2_D%),LEN(v5_6$(v2_D%))-LEN(v1_5$)-1)
  3076.           v1_5$="["+v1_5$+"]"
  3077.           v1_14$=v1_1$                   ! gross$ hier nur als Transfervariable
  3078.           v5_3$(v2_19%+v2_3D%)=v1_5$+STRING$(28-LEN(v1_5$),32)
  3079.           ' Kein Stand 1.1. vermerken
  3080.           v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+"        ./.  "
  3081.           IF v4_3#(v2_D%)<0                        ! Abgang
  3082.             ' Abgang vermerken
  3083.             v0_24#=ABS(v4_3#(v2_D%))
  3084.             vB_49(v0_24#)
  3085.             v1_21$="- "+v1_21$
  3086.           vA_51:
  3087.             vB_0
  3088.             v1_B$="ABGANG DES POSTENS '"+v5_6$(v2_D%)+"'"
  3089.             v1_C$="Ich muß den Anschaffungswert wissen, um den Abgang"
  3090.             v1_E$="verbuchen zu können! AK = ?"
  3091.             v2_45%=12
  3092.             vB_33
  3093.             IF VAL(v1_F$)<ABS(v4_3#(v2_D%))
  3094.               ALERT 2,"Anschaffungswert kleiner als|Abgang? Buchungsfehler!",1," Neu |Abbruch",v2_0%
  3095.               IF v2_0%=2
  3096.                 v3_1!=TRUE
  3097.                 v2_D%=v2_40%
  3098.                 GOTO vA_53
  3099.               ELSE
  3100.                 GOTO vA_51
  3101.               ENDIF
  3102.             ENDIF
  3103.             vB_4
  3104.             v0_24#=VAL(v1_F$)
  3105.             SWAP v1_21$,v1_F$
  3106.             vB_49(v0_24#)
  3107.             v1_5$=v5_3$(v2_19%+v2_3D%)
  3108.             v1_5$=LEFT$(v1_5$,LEN(v1_5$)-13)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3109.             v0_27#=VAL(v1_21$)-VAL(v1_F$)
  3110.             SWAP v1_21$,v1_F$
  3111.           ELSE
  3112.             ' Zugang vermerken
  3113.             vB_49(v4_3#(v2_D%))
  3114.             v1_21$="+ "+v1_21$
  3115.           ENDIF
  3116.           v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3117.           ' Afa vermerken /(evtl. anteilig auf Jahr)
  3118.           IF v4_3#(v2_D%)<0
  3119.             v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+"        ./.  "
  3120.             ' Neuer Restbuchwert 31.12. vermerken
  3121.             vB_49(v0_27#)
  3122.             v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3123.           ELSE
  3124.             v1_14$=RIGHT$(v1_14$,LEN(v1_14$)-INSTR(v1_14$,"."))
  3125.             v1_14$=LEFT$(v1_14$,2)
  3126.             SELECT VAL(v1_14$)        ! dm hier Wert der anteiligen Abschreibung
  3127.             CASE  TO 4
  3128.               v0_24#=0.2*2/3
  3129.             CASE 5 TO 8
  3130.               v0_24#=0.2*1/3
  3131.             CASE 9 TO 12
  3132.               v0_24#=0
  3133.             ENDSELECT
  3134.             v0_24#=v0_24#*v4_3#(v2_D%)
  3135.             vB_49(v0_24#)
  3136.             v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3137.             v0_24#=v4_3#(v2_D%)-v0_24#
  3138.             vB_49(v0_24#)
  3139.             ' Neuer Restbuchwert 31.12. vermerken
  3140.             v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3141.             INC v2_3D%
  3142.             v5_3$(v2_19%+v2_3D%)="5 Jahre ND 20 % Afa p.r.t."
  3143.           ENDIF
  3144.         ENDIF
  3145.         v5_6$(v2_D%)=""
  3146.       ENDIF
  3147.     vA_53:
  3148.     NEXT v2_D%
  3149.     IF v3_1!
  3150.       GOTO vA_4C
  3151.     ENDIF
  3152.     INC v2_3D%
  3153.     v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(52,"-")
  3154.     INC v2_3D%
  3155.     ' Summen vermerken
  3156.     v0_28#=0
  3157.     v0_29#=0
  3158.     v0_2A#=0
  3159.     v0_2B#=0
  3160.     FOR v2_7%=v2_19%+10 TO v2_19%+v2_3D%
  3161.       vB_4A(MID$(v5_3$(v2_7%),29,13))
  3162.       v0_28#=v0_28#+v0_24#
  3163.       vB_4A(MID$(v5_3$(v2_7%),42,13))
  3164.       v0_29#=v0_29#+v0_24#
  3165.       vB_4A(MID$(v5_3$(v2_7%),55,13))
  3166.       v0_2A#=v0_2A#+v0_24#
  3167.       vB_4A(MID$(v5_3$(v2_7%),68,13))
  3168.       v0_2B#=v0_2B#+v0_24#
  3169.     NEXT v2_7%
  3170.     vB_49(v0_28#)
  3171.     v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3172.     vB_49(v0_29#)
  3173.     v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3174.     vB_49(v0_2A#)
  3175.     v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3176.     vB_49(v0_2B#)
  3177.     v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3178.     v0_33#=v0_2A#                       ! Wichtig für GuV-Rechnung
  3179.     INC v2_3D%
  3180.     v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(52,"=")
  3181.     INC v2_3D%
  3182.     v5_3$(v2_19%+v2_3D%)=""
  3183.     INC v2_3D%
  3184.     v5_3$(v2_19%+v2_3D%)="II. Geringwertige"+STRING$(37,32)+"    Stand"
  3185.     INC v2_3D%
  3186.     v5_3$(v2_19%+v2_3D%)="    Wirtschaftsgüter           Zugang        Afa       31.12.19"+v1_20$
  3187.     INC v2_3D%
  3188.     v5_3$(v2_19%+v2_3D%)="--------------------        "+STRING$(39,"-")
  3189.     v2_43%=v2_19%+v2_3D%
  3190.     v0_29#=0
  3191.     FOR v2_D%=1 TO v2_40%
  3192.       IF v5_6$(v2_D%)<>""
  3193.         INC v2_3D%
  3194.         ' posten und Datum vermerken
  3195.         v1_5$=LEFT$(v5_6$(v2_D%),INSTR(v5_6$(v2_D%),"⇦")-1)
  3196.         v5_3$(v2_19%+v2_3D%)=LEFT$(v1_5$,28)+STRING$(28-LEN(LEFT$(v1_5$,28))," ")
  3197.         ' 2.Zeile posten$ ADatum vermerken
  3198.         INC v2_3D%
  3199.         v1_5$=RIGHT$(v5_6$(v2_D%),LEN(v5_6$(v2_D%))-LEN(v1_5$)-1)
  3200.         v1_5$="["+v1_5$+"]"
  3201.         ' Zugang vermerken
  3202.         v5_3$(v2_19%+v2_3D%)=v1_5$+STRING$(28-LEN(v1_5$),32)
  3203.         v5_3$(v2_19%+v2_3D%)=LEFT$(v5_3$(v2_19%+v2_3D%),25)
  3204.         vB_49(v4_3#(v2_D%))
  3205.         ADD v0_29#,v4_3#(v2_D%)
  3206.         v0_28#=v4_3#(v2_D%)                ! spalte1 nur als Transfervariable
  3207.         v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3208.         ' Gesamte AK als Afa vermerken
  3209.         v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3210.         ' Restbuchwert "-,--" zum 31.12. vermerken
  3211.         v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+"         -,--"
  3212.         v5_6$(v2_D%)=""
  3213.       ENDIF
  3214.     NEXT v2_D%
  3215.     ' Erinnerungsmark
  3216.     v5_3$(v2_19%+v2_3D%)=LEFT$(v5_3$(v2_19%+v2_3D%),38)
  3217.     v0_24#=v0_28#-1
  3218.     vB_49(v0_24#)
  3219.     v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$+"         1,--"
  3220.     ' Summen vermerken
  3221.     INC v2_3D%
  3222.     v0_2A#=v0_29#-1
  3223.     v0_2B#=1
  3224.     v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(39,"-")
  3225.     INC v2_3D%
  3226.     vB_49(v0_29#)
  3227.     v5_3$(v2_19%+v2_3D%)=STRING$(25,32)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3228.     vB_49(v0_2A#)
  3229.     v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3230.     vB_49(v0_2B#)
  3231.     v5_3$(v2_19%+v2_3D%)=v5_3$(v2_19%+v2_3D%)+STRING$(13-LEN(v1_21$),32)+v1_21$
  3232.     INC v2_3D%
  3233.     v5_3$(v2_19%+v2_3D%)=STRING$(28,32)+STRING$(39,"=")
  3234.     v2_43%=v2_19%+v2_3D%
  3235.     vB_0
  3236.     ALERT 1,"ANLAGESPIEGEL FERTIG.|Anschauen im Ausgabemenü|Ausgabeart wählen!",1," OKAY ",v2_0%
  3237.   ENDSELECT
  3238.   v2_47%=0
  3239. vA_4C:
  3240. RETURN
  3241. > PROCEDURE vB_3B
  3242.   IF v2_47%>0
  3243.     ALERT 2,"Soll ich eine neue|G&V-Rechnung erstellen oder|die alte zurückrufen?",2," Neu | Alt ",v2_0%
  3244.     IF v2_0%=2
  3245.       v2_1%=-3
  3246.       ALERT 1,"|Ausgabeobjekt: G&V-RECHNUNG.",1," OKAY ",v2_0%
  3247.       GOTO vA_62
  3248.     ELSE
  3249.       v2_1%=-2
  3250.     ENDIF
  3251.   ENDIF
  3252.   v3_1!=FALSE
  3253.   SELECT v2_1%
  3254.   CASE 0
  3255.     ALERT 3,"|Erst Abschluß machen!",1,"Ah ja!",v2_0%
  3256.     GOTO vA_62
  3257.   CASE -1
  3258.     ALERT 3,"Erst Anlagespiegel machen.|Für die G&V-Rechnung|brauche ich nämlich|die Summe der Abschreibungen!",1,"Ah ja!",v2_0%
  3259.     GOTO vA_62
  3260.   CASE -2
  3261.     v2_1%=-3
  3262.     v1_20$=RIGHT$(v5_1$(v2_5%),2)
  3263.     v5_3$(v2_43%+1)="Einnahme-Überschuss-Rechnung 19"+v1_20$
  3264.     IF INSTR(v1_15$,"Steuer")>0
  3265.       v5_3$(v2_43%+2)=LEFT$(v1_15$,INSTR(v1_15$,"Steuer")-1)
  3266.       v5_3$(v2_43%+3)=RIGHT$(v1_15$,LEN(v1_15$)-LEN(v5_3$(v2_43%+2)))
  3267.     ELSE
  3268.       v5_3$(v2_43%+2)=v1_15$
  3269.       v5_3$(v2_43%+3)=""
  3270.     ENDIF
  3271.     v5_3$(v2_43%+4)=STRING$(80,"-")
  3272.     v5_3$(v2_43%+5)=""
  3273.     v5_3$(v2_43%+6)=""
  3274.     v2_3D%=v2_43%+6
  3275.     ' Sonderbehandlung Kfz?
  3276.     v1_0$="Wird im Rahmen des Ge-|schäftsbetriebes ein Auto|genutzt, das in der Buch-|haltung unberücksichtigt ist?"
  3277.     vB_19
  3278.     IF v2_0%=1
  3279.       v1_B$="REGULÄRE GESCHÄFTSFAHRTEN WOHNORT"
  3280.       v1_C$="Von welchem Ort beginnen Ihre regulären"
  3281.       v1_E$="Geschäftsfahrten (Name)?"
  3282.       v2_45%=20
  3283.       vB_33
  3284.       v1_5$=v1_F$
  3285.       v1_B$="REGULÄRE GESCHÄFTSFAHRTEN ARBEITSPLATZ"
  3286.       v1_C$="An welchem Ort enden Ihre regulären"
  3287.       v1_E$="Geschäftsfahrten (Name)?"
  3288.       v2_45%=20
  3289.       vB_33
  3290.       v5_3$(v2_3D%+1)="Kfz-Kosten   a) "+v1_5$+" - "+v1_F$
  3291.     vA_63:
  3292.       v1_B$="REGULÄRE KFZ-GESCHÄFTSFAHRTEN STRECKE"
  3293.       v1_C$="Wie weit ist  die reguläre Wegstrecke pro Geschäftstag[km]?"
  3294.       v1_E$="(Z.B. Strecke Wohnort-Arbeitsplatz Hinfahrt+Rückfahrt)"
  3295.       v2_45%=3
  3296.       vB_33
  3297.       IF VAL(v1_F$)<=0
  3298.         ALERT 1,"|Eine Strecke muß angegeben werden!",1," Neu |Abbruch",v2_0%
  3299.         IF v2_0%=1
  3300.           GOTO vA_63
  3301.         ELSE
  3302.           GOTO vA_62
  3303.         ENDIF
  3304.       ENDIF
  3305.       v2_7%=VAL(v1_F$)
  3306.     vA_64:
  3307.       v1_B$="ANZAHL REGULÄRER GESCHÄFTSFAHRTEN"
  3308.       v1_C$="Wieviele Tage im Jahr wird die Strecke von"
  3309.       v1_E$=v1_F$+" km gefahren?"
  3310.       v2_45%=3
  3311.       vB_33
  3312.       IF VAL(v1_F$)<=30
  3313.         ALERT 1,"Das ist wohl nicht sehr|regulär?! Zuwenig Tage im Jahr!",1," Neu |Abbruch",v2_0%
  3314.         IF v2_0%=1
  3315.           GOTO vA_64
  3316.         ELSE
  3317.           GOTO vA_62
  3318.         ENDIF
  3319.       ELSE IF VAL(v1_F$)>365
  3320.         v1_0$="Lebst Du auf einem ande-|ren Planeten, daß Dein Jahr|mehr als 365 Tage hat?"
  3321.         vB_19
  3322.         IF v2_0%=1
  3323.           ALERT 1,"|Gratuliere, Herr Raumfahrer!",1,"Danke!",v2_0%
  3324.           GOTO vA_62
  3325.         ELSE
  3326.           GOTO vA_64
  3327.         ENDIF
  3328.       ENDIF
  3329.       v2_38%=VAL(v1_F$)
  3330.     vA_65:
  3331.       v1_B$="SONSTIGE GESCHÄFTSFAHRTEN"
  3332.       v1_C$="Bitte die Kilometerzahl der irregulär noch"
  3333.       v1_E$="gefahrenen Kilometer angeben?"
  3334.       v2_45%=5
  3335.       vB_33
  3336.       IF VAL(v1_F$)<0
  3337.         GOTO vA_65
  3338.       ENDIF
  3339.       v5_3$(v2_3D%+2)="----------      "+STR$(v2_7%)+" km * "+STR$(v2_38%)+" Tage * -,36 DM"
  3340.       v5_3$(v2_3D%+2)=v5_3$(v2_3D%+2)+STRING$(60-LEN(v5_3$(v2_3D%+2)),32)
  3341.       v0_24#=v2_38%*v2_7%*0.36
  3342.       vB_49(v0_24#)
  3343.       v0_28#=v0_24#
  3344.       v0_2B#=v0_24#
  3345.       v1_21$=v1_21$+" DM"
  3346.       v5_3$(v2_3D%+2)=LEFT$(v5_3$(v2_3D%+2),60-LEN(v1_21$))+v1_21$
  3347.       v5_3$(v2_3D%+3)="             b) Sonstige Fahrten pauschal ca."
  3348.       v5_3$(v2_3D%+4)="                "+v1_F$+" km * -,42 DM"
  3349.       v5_3$(v2_3D%+4)=v5_3$(v2_3D%+4)+STRING$(60-LEN(v5_3$(v2_3D%+4)),32)
  3350.       v0_24#=VAL(v1_F$)*0.42
  3351.       vB_49(v0_24#)
  3352.       ADD v0_28#,v0_24#
  3353.       v1_21$=v1_21$+" DM"
  3354.       v1_5$=v1_21$
  3355.       v5_3$(v2_3D%+4)=LEFT$(v5_3$(v2_3D%+4),60-LEN(v1_21$))+v1_21$
  3356.       vB_49(v0_28#)
  3357.       v1_21$=v1_21$+" DM"
  3358.       v5_3$(v2_3D%+5)=STRING$(60-LEN(v1_21$)," ")+STRING$(LEN(v1_21$),"-")
  3359.       v5_3$(v2_3D%+6)=STRING$(60-LEN(v1_21$)," ")+v1_21$
  3360.       v5_3$(v2_3D%+7)="                Kfz-Kosten USt herausgerechnet"
  3361.       v5_3$(v2_3D%+8)="                (7,6 % aus "+v1_5$+")"
  3362.       vB_4A(v1_5$)
  3363.       v0_2A#=v0_24#-v0_24#/1.076
  3364.       v0_29#=v0_24#/1.076
  3365.       vB_49(v0_2A#)
  3366.       v1_21$=v1_21$+" DM"
  3367.       v5_3$(v2_3D%+9)="                [Vorsteuer "+v1_21$+"]"
  3368.       vB_49(v0_29#)
  3369.       v1_21$=v1_21$+" DM"
  3370.       v5_3$(v2_3D%+9)=v5_3$(v2_3D%+9)+STRING$(60-LEN(v5_3$(v2_3D%+9)),32)
  3371.       v5_3$(v2_3D%+9)=LEFT$(v5_3$(v2_3D%+9),60-LEN(v1_21$))+v1_21$
  3372.       v0_30#=v0_2B#+v0_29#
  3373.       vB_49(v0_30#)
  3374.       v1_21$=v1_21$+" DM"
  3375.       v5_3$(v2_3D%+10)=STRING$(60-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
  3376.       v5_3$(v2_3D%+11)=STRING$(60-LEN(v1_21$),32)+v1_21$
  3377.       v5_3$(v2_3D%+12)=STRING$(60-LEN(v1_21$)," ")+STRING$(LEN(v1_21$),"=")
  3378.       v5_3$(v2_3D%+13)=""
  3379.       ADD v2_3D%,13
  3380.     ELSE
  3381.       v0_30#=0
  3382.     ENDIF
  3383.     ' Sonderbehandlung Telefon?
  3384.     v1_0$="Sollen etwaige Telefonkosten|pauschal veranlagt werden,|da kein separates Konto|dafür im Journal ist?"
  3385.     vB_19
  3386.     IF v2_0%=1
  3387.       v1_B$="TELEFONKOSTEN (PAUSCHAL)"
  3388.       v1_C$="Wie hoch sind die Telefonkosten (pauschal)"
  3389.       v1_E$="cirka in DM (RETURN = 250,-- DM)?"
  3390.       v2_45%=3
  3391.       vB_33
  3392.       IF VAL(v1_F$)<=0
  3393.         v0_31#=250
  3394.       ELSE
  3395.         v0_31#=VAL(v1_F$)
  3396.       ENDIF
  3397.     ELSE
  3398.       v0_31#=0
  3399.     ENDIF
  3400.     vB_4
  3401.     ' Alle HABEN-Erfolgskontos aufführen und Summe bilden => EINNAHMEN
  3402.     v0_28#=0
  3403.     v0_29#=0
  3404.     ' Hier: spalte1: Summe der Einnahmen
  3405.     ' spalte2: Summe der Ausgaben
  3406.     v5_3$(v2_3D%+1)="Einnahmen"
  3407.     v5_3$(v2_3D%+2)="---------"
  3408.     ADD v2_3D%,2
  3409.     FOR v2_7%=1 TO v2_3%+v2_2%
  3410.       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
  3411.         ADD v0_28#,v4_2#(v2_7%)
  3412.         INC v2_3D%
  3413.         v5_3$(v2_3D%)=v5_0$(v4_1#(v2_7%),1)
  3414.         v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%)),32)
  3415.         vB_49(v4_2#(v2_7%))
  3416.         v1_21$=v1_21$+" DM"
  3417.         v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),80-LEN(v1_21$))+v1_21$
  3418.       ENDIF
  3419.     NEXT v2_7%
  3420.     vB_49(v0_28#)
  3421.     INC v2_3D%
  3422.     v5_3$(v2_3D%+1)="Einnahmen aus Geschäftsbetrieb"
  3423.     v1_21$=v1_21$+" DM"
  3424.     v5_3$(v2_3D%+1)=v5_3$(v2_3D%+1)+STRING$(80-LEN(v1_21$),32)
  3425.     v5_3$(v2_3D%+1)=LEFT$(v5_3$(v2_3D%+1),80-LEN(v1_21$))+v1_21$
  3426.     v5_3$(v2_3D%)=STRING$(80-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
  3427.     ADD v2_3D%,2
  3428.     v5_3$(v2_3D%)=""
  3429.     ' Alle SOLL-Erfolgskontos aufführen und Summe bilden => KOSTEN
  3430.     v5_3$(v2_3D%+1)="Betriebsausgaben"
  3431.     v5_3$(v2_3D%+2)="----------------"
  3432.     ADD v2_3D%,2
  3433.     FOR v2_7%=1 TO v2_3%+v2_2%
  3434.       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"
  3435.         ADD v0_29#,v4_2#(v2_7%)
  3436.         INC v2_3D%
  3437.         v5_3$(v2_3D%)=v5_0$(v4_1#(v2_7%),2)
  3438.         v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
  3439.         vB_49(v4_2#(v2_7%))
  3440.         v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
  3441.       ENDIF
  3442.     NEXT v2_7%
  3443.     IF v0_31#>0
  3444.       INC v2_3D%
  3445.       v5_3$(v2_3D%)="TELEFONKOSTEN (pauschal)"
  3446.       v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
  3447.       ADD v0_29#,v0_31#
  3448.       vB_49(v0_31#)
  3449.       v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
  3450.     ENDIF
  3451.     IF v0_30#>0
  3452.       INC v2_3D%
  3453.       v5_3$(v2_3D%)="KFZ-KOSTEN (siehe oben)"
  3454.       v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
  3455.       ADD v0_29#,v0_30#
  3456.       vB_49(v0_30#)
  3457.       v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
  3458.     ENDIF
  3459.     IF v0_33#>0
  3460.       INC v2_3D%
  3461.       v5_3$(v2_3D%)="ABSCHREIBUNG LT. ANLAGESPIEGEL"
  3462.       v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(60-LEN(v5_3$(v2_3D%)),32)
  3463.       ADD v0_29#,v0_33#
  3464.       vB_49(v0_33#)
  3465.       v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),60-LEN(v1_21$))+v1_21$
  3466.     ENDIF
  3467.     v5_3$(v2_3D%+1)=STRING$(60-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
  3468.     vB_49(v0_29#)
  3469.     v1_21$=v1_21$+" DM"
  3470.     v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%))-LEN(v1_21$),32)+v1_21$
  3471.     INC v2_3D%
  3472.     v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%))-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"-")
  3473.     INC v2_3D%
  3474.     v5_3$(v2_3D%)=""
  3475.     ' Differenz aus Einnahmen und Kosten bilden => Gewinn aus Gesch.betr.
  3476.     INC v2_3D%
  3477.     IF v0_28#>=v0_29#
  3478.       v0_2A#=v0_28#-v0_29#
  3479.       v5_3$(v2_3D%)="Gewinn aus Geschäftsbetrieb"
  3480.     ELSE
  3481.       v0_2A#=v0_29#-v0_28#
  3482.       v5_3$(v2_3D%)="Verlust aus Geschäftsbetrieb"
  3483.     ENDIF
  3484.     v5_3$(v2_3D%)=v5_3$(v2_3D%)+STRING$(80-LEN(v5_3$(v2_3D%)),32)
  3485.     vB_49(v0_2A#)
  3486.     v1_21$=v1_21$+" DM"
  3487.     v5_3$(v2_3D%)=LEFT$(v5_3$(v2_3D%),80-LEN(v1_21$))+v1_21$
  3488.     INC v2_3D%
  3489.     v5_3$(v2_3D%)=STRING$(80-LEN(v1_21$),32)+STRING$(LEN(v1_21$),"=")
  3490.     v2_47%=v2_3D%
  3491.     vB_0
  3492.     ALERT 1,"GuV-Rechnung fertig.|Anschauen im Ausgabemenü|Ausgabeart wählen!",1," OKAY ",v2_0%
  3493.   ENDSELECT
  3494. vA_62:
  3495. RETURN
  3496. > PROCEDURE vB_3C
  3497.   IF v1_7$=""
  3498.     ALERT 1,"|Erst Kontenrahmen|initialisieren!",1," OK ",v2_0%
  3499.     GOTO vA_74
  3500.   ENDIF
  3501.   v1_F$=""
  3502.   v0_84#=0
  3503.   ' ####AU¯DGABEART IN LEISTE$= ' säulen '' blöcke '' kuchen '' linien '' balken '
  3504.   ' Dann Proc 3d (säulen, blöcke) oder 2d (balken, linien) oder kuchen aufrufen
  3505.   ' ****EINGABE HAUPTÜBERSCHRIFT <= 35 ZEICHEN
  3506.   ' ****UNTERTITEL <=70 ZEICHEN
  3507.   ' ****EINGABE DER ANZAHL DER REIHEN <=4
  3508.   ' ****EINGABE ANZAHL DER SPALTEN <=14
  3509.   ' ****BEZEICHNUNG DER REIHE(I)
  3510.   ' ****WERT DER REIHE(I) SPALTE(J)
  3511.   ' ****1.NAME DER SPALTEN(I)
  3512.   ' ****2.NAME DER SPALTE(I)
  3513.   ALERT 2,"Soll die Erfolgsstatistik|dieser Periode mit einer|anderen Periode|verglichen werden ?",2," JA |NEIN|Abbruch",v2_0%
  3514.   SELECT v2_0%
  3515.   CASE 1
  3516.     v1_F$="VERGLEICH"
  3517.     ALERT 1,"Bitte die Datei der|Vergleichsperiode wählen.",1,"OKAY|Abbruch",v2_0%
  3518.     IF v2_0%=2
  3519.       GOTO vA_74
  3520.     ELSE
  3521.       vB_A
  3522.       v1_39$=v1_4$
  3523.       v2_59%=v2_5%
  3524.       FOR v0_0#=1 TO v2_59%
  3525.         v5_F$(v0_0#)=v5_1$(v0_0#)
  3526.         ' btext$ in Erfolgsstatistik uninteressant
  3527.         v4_6#(v0_0#)=v4_0#(v0_0#)
  3528.         v6_B%(v0_0#)=v6_0%(v0_0#)
  3529.         v6_C%(v0_0#)=v6_2%(v0_0#)
  3530.         ' MWST uninterssant cmwst%(i)=bmwst%(i)
  3531.         ' bkto etc. auf ckto umschreiben
  3532.       NEXT v0_0#
  3533.     ENDIF
  3534.   CASE 3
  3535.     GOTO vA_74
  3536.   ENDSELECT
  3537.   ALERT 1,"Bitte die Datei der|Basisperiode wählen.",1,"OKAY|Abbruch",v2_0%
  3538.   IF v2_0%=2
  3539.     GOTO vA_74
  3540.   ELSE
  3541.     vB_A
  3542.   ENDIF
  3543.   ' Hier folgt die Datenübergabe
  3544. vA_7B:
  3545.   IF v1_F$="VERGLEICH"
  3546.     vB_55("|Berechnung.")
  3547.     ' Schleife von 1 bis Kontenzahl -> Vergleich der Konten Periode 1 und 2
  3548.     vB_4
  3549.     FOR v0_0#=1 TO v2_2%
  3550.       INC v0_84#
  3551.       IF v1_4$=v1_39$ OR v1_39$=""
  3552.         v4_E#(v0_84#)=1
  3553.         v5_1A$(v0_84#)="Kontenentwicklung und..."
  3554.       ELSE
  3555.         v5_1A$(v0_84#)="Vergleich von "+v1_4$+" und "+v1_39$
  3556.         v4_E#(v0_84#)=2
  3557.       ENDIF
  3558.       v5_1B$(v0_84#)="...Verlauf des Kontos "+v5_0$(v0_0#,1)+"'HABENSEITE' Mittelherkunft"
  3559.       v4_F#(v0_84#)=12
  3560.       v5_1C$(1,v0_84#)=v1_4$
  3561.       v5_1C$(2,v0_84#)=v1_39$
  3562.       RESTORE vA_76
  3563.       FOR v2_14%=1 TO 12
  3564.         READ v5_1D$(v2_14%,v0_84#),v5_1E$(v2_14%,v0_84#)
  3565.       NEXT v2_14%
  3566.       FOR v2_14%=1 TO v2_5%
  3567.         IF v6_0%(v2_14%)=v0_0#
  3568.           ADD v4_10#(1,VAL(MID$(v5_1$(v2_14%),INSTR(v5_1$(v2_14%),".")+1,2)),v0_84#),v4_0#(v2_14%)
  3569.         ENDIF
  3570.       NEXT v2_14%
  3571.       FOR v2_14%=1 TO v2_59%
  3572.         IF v6_B%(v2_14%)=v0_0#
  3573.           ADD v4_10#(2,VAL(MID$(v5_F$(v2_14%),INSTR(v5_F$(v2_14%),".")+1,2)),v0_84#),v4_6#(v2_14%)
  3574.         ENDIF
  3575.       NEXT v2_14%
  3576.       v5_19$(v0_84#)=" linien "
  3577.     NEXT v0_0#
  3578.     FOR v0_0#=1 TO v2_3%
  3579.       INC v0_84#
  3580.       IF v1_4$=v1_39$ OR v1_39$=""
  3581.         v4_E#(v0_84#)=1
  3582.         v5_1A$(v0_84#)="Kontenentwicklung und..."
  3583.       ELSE
  3584.         v5_1A$(v0_84#)="Vergleich von "+v1_4$+" und "+v1_39$
  3585.         v4_E#(v0_84#)=2
  3586.       ENDIF
  3587.       v5_1B$(v0_84#)="...Verlauf des Kontos "+v5_0$(v0_0#,2)+"'SOLLSEITE' Mittelverwendung"
  3588.       v4_F#(v0_84#)=12
  3589.       v5_1C$(1,v0_84#)=v1_4$
  3590.       v5_1C$(2,v0_84#)=v1_39$
  3591.       RESTORE vA_76
  3592.       FOR v2_14%=1 TO 12
  3593.         READ v5_1D$(v2_14%,v0_84#),v5_1E$(v2_14%,v0_84#)
  3594.       NEXT v2_14%
  3595.       FOR v2_14%=1 TO v2_5%
  3596.         IF v6_2%(v2_14%)=v0_0#
  3597.           ADD v4_10#(1,VAL(MID$(v5_1$(v2_14%),INSTR(v5_1$(v2_14%),".")+1,2)),v0_84#),v4_0#(v2_14%)
  3598.         ENDIF
  3599.       NEXT v2_14%
  3600.       FOR v2_14%=1 TO v2_59%
  3601.         IF v6_C%(v2_14%)=v0_0#
  3602.           ADD v4_10#(2,VAL(MID$(v5_F$(v2_14%),INSTR(v5_F$(v2_14%),".")+1,2)),v0_84#),v4_6#(v2_14%)
  3603.         ENDIF
  3604.       NEXT v2_14%
  3605.       v5_19$(v0_84#)=" linien "
  3606.     NEXT v0_0#
  3607.     vB_0
  3608.     vB_76
  3609.   ENDIF
  3610.   ALERT 2,"Möchten Sie einen|Überblick über die Ent-|wicklung aller Konten|in der Periode ?",2," JA |NEIN",v2_0%
  3611.   IF v2_0%=1
  3612.     v0_84#=0
  3613.     ARRAYFILL v4_E#(),0
  3614.     ARRAYFILL v4_F#(),0
  3615.     ARRAYFILL v4_10#(),0
  3616.     v1_F$="VERGLEICH"
  3617.     GOTO vA_7B
  3618.   ENDIF
  3619.   v0_84#=0
  3620.   ARRAYFILL v4_E#(),0
  3621.   ARRAYFILL v4_F#(),0
  3622.   ARRAYFILL v4_10#(),0
  3623.   ALERT 2,"Möchten Sie die Entwicklung|einzelner Konten oder meh-|rerer Konten in der Periode|separat sehen?",2," JA |NEIN|Abbruch",v2_0%
  3624.   SELECT v2_0%
  3625.   CASE 1
  3626.   vA_7A:
  3627.     INC v0_84#
  3628.     ALERT 1,"Es können bis zu|4 Konten gleichzeitig|dargestellt werden.",1,"OKAY",v2_0%
  3629.   vA_78:
  3630.     vB_4B
  3631.     v1_B$="KONTENENTWICKLUNG - Habenkonten"
  3632.     v1_C$="Sie sehen links die Haben-Konten. Wählen Sie die zugleich"
  3633.     v1_E$="darzustellenden Haben-Konten aus (Nr./ENDE=RETURN):"
  3634.     v2_45%=2
  3635.     vB_33
  3636.     IF v1_F$<>"" AND VAL(v1_F$)<=v2_2%
  3637.       INC v4_E#(v0_84#)
  3638.       v5_B$(v4_E#(v0_84#))=v1_F$+"H"
  3639.       IF v4_E#(v0_84#)>4
  3640.         ALERT 1,"Sie haben mehr als|4 Vergleichskonten|angegeben!",1,"Sorry",v2_0%
  3641.         DEC v4_E#(v0_84#)
  3642.       ENDIF
  3643.       v5_1C$(v4_E#(v0_84#),v0_84#)="H-"+v5_0$(VAL(v1_F$),1)
  3644.       GOTO vA_78
  3645.     ENDIF
  3646.   vA_79:
  3647.     vB_4B
  3648.     v1_B$="KONTENENTWICKLUNG - Sollkonten"
  3649.     v1_C$="Nun wählen Sie rechts die darzu-"
  3650.     v1_E$="stellenden Soll-Konten(Nr./ENDE=RETURN):"
  3651.     v2_45%=2
  3652.     vB_33
  3653.     IF v1_F$<>"" AND VAL(v1_F$)<=v2_3%
  3654.       INC v4_E#(v0_84#)
  3655.       v5_B$(v4_E#(v0_84#))=v1_F$+"S"
  3656.       IF v4_E#(v0_84#)>4
  3657.         ALERT 1,"Sie haben mehr als|4 Vergleichskonten|angegeben!",1,"Sorry",v2_0%
  3658.         DEC v4_E#(v0_84#)
  3659.       ENDIF
  3660.       v5_1C$(v4_E#(v0_84#),v0_84#)="S-"+v5_0$(VAL(v1_F$),2)
  3661.       GOTO vA_79
  3662.     ENDIF
  3663.     IF v4_E#(v0_84#)=0
  3664.       GOTO vA_74
  3665.     ENDIF
  3666.     v5_1A$(v0_84#)="Entwicklung der Konten..."
  3667.     v5_1B$(v0_84#)=""
  3668.     FOR v2_14%=1 TO v4_E#(v0_84#)
  3669.       v5_1B$(v0_84#)=v5_1B$(v0_84#)+" / "+v5_1C$(v2_14%,v0_84#)
  3670.     NEXT v2_14%
  3671.     v5_1B$(v0_84#)=RIGHT$(v5_1B$(v0_84#),LEN(v5_1B$(v0_84#))-3)
  3672.     RESTORE vA_76
  3673.     FOR v2_14%=1 TO 12
  3674.       READ v5_1D$(v2_14%,v0_84#),v5_1E$(v2_14%,v0_84#)
  3675.     NEXT v2_14%
  3676.     v4_F#(v0_84#)=12
  3677.     '
  3678.     FOR v2_14%=1 TO v4_E#(v0_84#)
  3679.       v2_5C%=VAL(LEFT$(v5_B$(v2_14%),LEN(v5_B$(v2_14%))-1))
  3680.       v5_B$(v2_14%)=RIGHT$(v5_B$(v2_14%),1)
  3681.       IF v5_B$(v2_14%)="H"
  3682.         FOR v2_5B%=1 TO v2_5%
  3683.           IF v6_0%(v2_5B%)=v2_5C%
  3684.             ADD v4_10#(v2_14%,VAL(MID$(v5_1$(v2_5B%),INSTR(v5_1$(v2_5B%),".")+1,2)),v0_84#),v4_0#(v2_5B%)
  3685.           ENDIF
  3686.         NEXT v2_5B%
  3687.       ELSE
  3688.         FOR v2_5B%=1 TO v2_5%
  3689.           IF v6_2%(v2_5B%)=v2_5C%
  3690.             ADD v4_10#(v2_14%,VAL(MID$(v5_1$(v2_5B%),INSTR(v5_1$(v2_5B%),".")+1,2)),v0_84#),v4_0#(v2_5B%)
  3691.           ENDIF
  3692.         NEXT v2_5B%
  3693.       ENDIF
  3694.     NEXT v2_14%
  3695.     ALERT 2,"Sollen weiter Konten-|grafiken erstellt|werden ?",2," JA |NEIN",v2_0%
  3696.     IF v2_0%=1
  3697.       GOTO vA_7A
  3698.     ENDIF
  3699.     v5_19$(v0_84#)=" säulen "
  3700.     vB_76
  3701.   CASE 3
  3702.     GOTO vA_74
  3703.   ENDSELECT
  3704. vA_74:
  3705. RETURN
  3706. > PROCEDURE vB_17
  3707.   MENU OFF
  3708.   v3_1!=FALSE
  3709.   vB_3D
  3710.   SELECT v2_1%
  3711.   CASE 0
  3712.     GOTO vA_3A
  3713.   CASE -1
  3714.     IF v2_19%<1
  3715.       ALERT 2,"Ich habe ein Augabeobjekt,|aber keinen Text?!",1,"Hä???",v2_0%
  3716.       GOTO vA_3A
  3717.     ENDIF
  3718.     vB_42
  3719.   CASE -2
  3720.     IF v2_43%<1
  3721.       ALERT 2,"Ich habe ein Augabeobjekt,|aber keinen Text?!",1,"Hä???",v2_0%
  3722.       GOTO vA_3A
  3723.     ENDIF
  3724.     v2_48%=v2_19%
  3725.     v2_49%=v2_43%
  3726.     vB_52
  3727.   CASE -3
  3728.     IF v2_47%<1
  3729.       ALERT 2,"Ich habe ein Augabeobjekt,|aber keinen Text?!",1,"Hä???",v2_0%
  3730.       GOTO vA_3A
  3731.     ENDIF
  3732.     v2_48%=v2_43%
  3733.     v2_49%=v2_47%
  3734.     vB_52
  3735.   ENDSELECT
  3736. vA_3A:
  3737. RETURN
  3738. > PROCEDURE vB_18                      ! <=== Andere Drucker implement.
  3739.   vB_3D
  3740.   SELECT v2_1%
  3741.   CASE 0
  3742.     GOTO vA_3B
  3743.   CASE -1
  3744.     vB_39
  3745.     v1_5$=STR$(INT(v2_19%/66+1)*v2_13%)
  3746.     ALERT 1,v1_9$+"|Bitte Drucker bereitmachen.|Ausdruck braucht "+v1_5$+" Seiten.",1,"Druck|Abbruch",v2_0%
  3747.     IF v2_0%=2
  3748.       GOTO vA_36
  3749.     ENDIF
  3750.     ' Anpassung des Ausdrucks an eingestellte Schriftart (96/120/137/160)
  3751.     vB_55("Ich drucke.|Abbruch mit der|'ESC'-Taste...")
  3752.     vB_4
  3753.     FOR v2_D%=1 TO v2_19%
  3754.       IF v1_16$="96"
  3755.         v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),85)+STRING$(11,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-85)
  3756.         IF 96+84>=LEN(v5_3$(v2_D%))
  3757.           GOTO vA_3C
  3758.         ENDIF
  3759.         v2_8%=0
  3760.       vA_3D:
  3761.         INC v2_8%
  3762.         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)
  3763.         IF (v2_8%+1)*96+84<LEN(v5_3$(v2_D%))
  3764.           GOTO vA_3D
  3765.         ENDIF
  3766.       vA_3C:
  3767.       ELSE
  3768.         IF v1_16$="120"
  3769.           v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),113)+STRING$(7,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-113)
  3770.           IF 120+112>=LEN(v5_3$(v2_D%))
  3771.             GOTO vA_3E
  3772.           ENDIF
  3773.           v2_8%=0
  3774.         vA_3F:
  3775.           INC v2_8%
  3776.           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)
  3777.           IF (v2_8%+1)*120+112<LEN(v5_3$(v2_D%))
  3778.             GOTO vA_3F
  3779.           ENDIF
  3780.         vA_3E:
  3781.         ELSE
  3782.           IF v1_16$="137"
  3783.             v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),127)+STRING$(10,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-127)
  3784.             IF 137+126>=LEN(v5_3$(v2_D%))
  3785.               GOTO vA_40
  3786.             ENDIF
  3787.             v2_8%=0
  3788.           vA_41:
  3789.             INC v2_8%
  3790.             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)
  3791.             IF (v2_8%+1)*137+126<LEN(v5_3$(v2_D%))
  3792.               GOTO vA_41
  3793.             ENDIF
  3794.           vA_40:
  3795.           ELSE
  3796.             IF v1_16$="160"
  3797.               v5_3$(v2_D%)=LEFT$(v5_3$(v2_D%),155)+STRING$(5,32)+RIGHT$(v5_3$(v2_D%),LEN(v5_3$(v2_D%))-155)
  3798.               IF 160+154>=LEN(v5_3$(v2_D%))
  3799.                 GOTO vA_42
  3800.               ENDIF
  3801.               v2_8%=0
  3802.             vA_43:
  3803.               INC v2_8%
  3804.               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)
  3805.               IF (v2_8%+1)*160+154<LEN(v5_3$(v2_D%))
  3806.                 GOTO vA_43
  3807.               ENDIF
  3808.             vA_42:
  3809.             ENDIF
  3810.           ENDIF
  3811.         ENDIF
  3812.       ENDIF
  3813.     NEXT v2_D%
  3814.     ' Druckroutine
  3815.     IF INKEY$=CHR$(27)
  3816.       ALERT 2,"Abbruch durch 'ESC'.|Laß' mich doch|arbeiten, Mensch!",1,"Mensch!",v2_0%
  3817.       GOTO vA_3B
  3818.     ENDIF
  3819.     LPRINT v1_17$;
  3820.     FOR v2_D%=1 TO INT(v2_19%/66+1)
  3821.       FOR v2_8%=1 TO v2_13%
  3822.         FOR v2_1B%=1 TO 66
  3823.           IF (v2_D%-1)*66+v2_1B%>v2_19%
  3824.             v2_1B%=66
  3825.             GOTO vA_44
  3826.           ENDIF
  3827.           v1_5$=MID$(v5_3$((v2_D%-1)*66+v2_1B%),(v2_8%-1)*VAL(v1_16$),VAL(v1_16$))
  3828.           ' if-Routine: Seitennumerierung 1...x (a...z) z.B. (SEITE 3f) -
  3829.           IF v2_1B%=1
  3830.             v1_3$="(SEITE "+STR$(v2_D%)+CHR$(96+v2_8%)+")"
  3831.             IF LEN(v1_5$+v1_3$)>95
  3832.               v1_5$=v1_3$+LEFT$(v1_5$,LEN(v1_5$)-LEN(v1_3$))
  3833.             ELSE
  3834.               v1_5$=v1_3$+" "+v1_5$
  3835.             ENDIF
  3836.           ENDIF
  3837.           LPRINT v1_5$
  3838.         vA_44:
  3839.           IF INKEY$=CHR$(27)
  3840.             v2_D%=INT(v2_19%/66+1)
  3841.             v2_8%=v2_13%
  3842.             v2_1B%=66
  3843.             ALERT 2,"Findest Du das gut,|mich mitten in der Arbeit|zu unterbrechen?!...",1,"Nein.",v2_0%
  3844.           ENDIF
  3845.         NEXT v2_1B%
  3846.         LPRINT CHR$(12);
  3847.       NEXT v2_8%
  3848.       EXIT IF (v2_D%-1)*66+v2_1B%>v2_19%
  3849.     NEXT v2_D%
  3850.     vB_0
  3851.   CASE -2
  3852.     IF v2_43%-v2_19%<=66
  3853.       v1_5$="eine Seite."
  3854.     ELSE
  3855.       v2_13%=INT((v2_43%-v2_19%)/61+1)
  3856.       v1_5$=STR$(v2_13%)+" Seiten."
  3857.     ENDIF
  3858.     v2_48%=v2_19%
  3859.     v2_49%=v2_43%
  3860.     vB_53
  3861.   CASE -3
  3862.     IF v2_47%-v2_43%<=66
  3863.       v1_5$="eine Seite."
  3864.     ELSE
  3865.       v2_13%=INT((v2_47%-v2_43%)/61+1)
  3866.       v1_5$=STR$(v2_13%)+" Seiten."
  3867.     ENDIF
  3868.     v2_48%=v2_43%
  3869.     v2_49%=v2_47%
  3870.     vB_53
  3871.   ENDSELECT
  3872. vA_3B:
  3873. RETURN
  3874. > PROCEDURE vB_3D
  3875.   SELECT v2_1%
  3876.   CASE -1
  3877.     v1_9$="AUSGABEOBJEKT: Abschluß."
  3878.   CASE -2
  3879.     v1_9$="AUSGABEOBJEKT: Anlagespiegel."
  3880.   CASE -3
  3881.     v1_9$="AUSGABEOBJEKT: V&G-Rechnung."
  3882.   CASE -4
  3883.     v1_9$="AUSGABEOBJEKT: Erfolgsstatistik."
  3884.   CASE  TO -5,0 TO 
  3885.     ALERT 2,"|Kein Ausgabeobjekt definiert?!",1,"Hä???",v2_0%
  3886.     v2_1%=0
  3887.   ENDSELECT
  3888. RETURN
  3889. > PROCEDURE vB_42
  3890.   vB_43
  3891.   DEFFILL 1,0,0
  3892.   CLS
  3893.   TEXT 0,54,"LfdNr"
  3894.   TEXT 0,70,"Beleg"
  3895.   '
  3896.   ' Für Kopf- und Fußbox Leerstrings anfügen
  3897.   v5_5$(4)=v5_5$(4)+STRING$(80," ")
  3898.   v5_5$(3)=v5_5$(3)+STRING$(80," ")
  3899.   v5_5$(v2_2B%)=v5_5$(v2_2B%)+STRING$(32," ")
  3900.   '  DIM wort&(7)        ! 16 Byte für
  3901.   v2_1E%=V:vC_0&(0) ! Message-Puffer
  3902.   '
  3903.   ' Fenster ohne FULL, SIZER, MOVER definieren
  3904.   v2_1F%=WIND_CREATE(&X111111010011,41,37,598,343)
  3905.   v1_1A$=v1_9$+CHR$(0)
  3906.   v2_20%=V:v1_1A$
  3907.   v1_1B$="Zum Absuchen den Objektes bitte Pfeile rechts und unten anklicken!"+CHR$(0)
  3908.   v2_21%=V:v1_1B$
  3909.   '
  3910.   ' Fenstername und Infozeile
  3911.   ~WIND_SET(v2_1F%,2,CARD(SWAP(v2_20%)),CARD(v2_20%),0,0)
  3912.   ~WIND_SET(v2_1F%,3,CARD(SWAP(v2_21%)),CARD(v2_21%),0,0)
  3913.   ~WIND_OPEN(v2_1F%,41,37,598,343)
  3914.   '
  3915.   vB_40
  3916.   vB_41
  3917.   '
  3918.   DO
  3919.     ' nächste Zeile aus Platzgründen geteilt
  3920.     ~EVNT_MULTI(&X110000,0,0,0,0,0,0,0,0,0,0,0,0,0,v2_1E%,100)
  3921.     SELECT vC_0&(0)
  3922.     CASE 22                              ! WM_CLOSED
  3923.       EXIT IF TRUE
  3924.       '
  3925.     CASE 24                              ! WM_ARROWED
  3926.       ~WIND_GET(v2_1F%,4,v2_22%,v2_23%,v2_24%,v2_25%)    ! Fenstergröße
  3927.       ~WIND_GET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)   ! Slider-
  3928.       ~WIND_GET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)   ! position
  3929.       SELECT vC_0&(4)
  3930.       CASE 0                    ! side up
  3931.         v2_29%=v2_25%/16-1
  3932.         v2_2A%=MAX(6,v2_2A%-v2_29%)
  3933.         v2_28%=(v2_2A%-1)/(v2_2B%-8)*1000
  3934.         ~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
  3935.         '
  3936.       CASE 1                    ! side down
  3937.         v2_29%=v2_25%/16-1
  3938.         v2_2A%=MIN((v2_2B%-2),v2_2A%+v2_29%)
  3939.         v2_28%=(v2_2A%-1)/(v2_2B%-8)*1000
  3940.         ~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
  3941.         '
  3942.       CASE 2                    ! line up
  3943.         v2_2A%=MAX(6,v2_2A%-1)
  3944.         v2_28%=(v2_2A%-1)/(v2_2B%-8)*1000
  3945.         ~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
  3946.         '
  3947.       CASE 3                    ! line down
  3948.         v2_2A%=MIN(v2_2B%-2,v2_2A%+1)
  3949.         v2_28%=(v2_2A%-1)/v2_2B%*1000
  3950.         ~WIND_SET(v2_1F%,9,v2_28%,v2_27%,v2_27%,v2_27%)
  3951.         '
  3952.       CASE 4                    ! side left
  3953.         v2_2C%=v2_24%/8-1
  3954.         v2_2D%=MAX(1,v2_2D%-v2_2C%)
  3955.         v2_26%=(v2_2D%-1)/v2_2E%*1000
  3956.         ~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
  3957.         '
  3958.       CASE 5                    ! side right
  3959.         v2_2C%=v2_24%/8-1
  3960.         v2_2D%=MIN(v2_2E%,v2_2D%+v2_2C%)
  3961.         v2_26%=(v2_2D%-1)/v2_2E%*1000
  3962.         ~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
  3963.         '
  3964.       CASE 6                    ! line left
  3965.         v2_2D%=MAX(1,v2_2D%-1)
  3966.         v2_26%=(v2_2D%-1)/v2_2E%*1000
  3967.         ~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
  3968.         '
  3969.       CASE 7                    ! line right
  3970.         v2_2D%=MIN(v2_2E%,v2_2D%+1)
  3971.         v2_26%=(v2_2D%-1)/v2_2E%*1000
  3972.         ~WIND_SET(v2_1F%,8,v2_26%,v2_27%,v2_27%,v2_27%)
  3973.         '
  3974.       ENDSELECT
  3975.       vB_41
  3976.       '
  3977.     CASE 25                              ! WM_HSLID
  3978.       ~WIND_SET(v2_1F%,8,vC_0&(4),v2_27%,v2_27%,v2_27%)
  3979.       v2_2D%=vC_0&(4)*v2_2E%/1000+1
  3980.       vB_41
  3981.       '
  3982.     CASE 26                              ! WM_VSLID
  3983.       ~WIND_SET(v2_1F%,9,vC_0&(4),v2_27%,v2_27%,v2_27%)
  3984.       v2_2A%=vC_0&(4)*v2_2B%/1000+1
  3985.       vB_41
  3986.       '
  3987.     ENDSELECT
  3988.   LOOP
  3989.   ~WIND_CLOSE(v2_1F%)
  3990.   ~WIND_DELETE(v2_1F%)
  3991.   DEFFILL 1,2,4
  3992.   PBOX 0,19,639,399  ! Hintergrundmuster
  3993.   DEFFILL 1,0
  3994.   '
  3995. RETURN
  3996. > PROCEDURE vB_41
  3997.   ~WIND_GET(v2_1F%,4,v2_22%,v2_23%,v2_24%,v2_25%)
  3998.   PBOX v2_22%-1,v2_23%-1,v2_22%+v2_24%,v2_23%+v2_25%       ! Inhalt löschen
  3999.   v2_31%=v2_23%/16+2                    ! Beginn der PRINT-Ausgabe
  4000.   v2_32%=(v2_23%+v2_25%)/16             ! Ende der PRINT-Ausgabe
  4001.   v2_33%=v2_2A%
  4002.   v2_34%=v2_22%/8+2                    ! Spalte der Textausgabe
  4003.   v2_35%=v2_24%/8-1         ! Länge einer Textzeile
  4004.   IF v2_33%<6
  4005.     v2_33%=6
  4006.   ENDIF
  4007.   IF v2_33%>=v2_2B%-17
  4008.     v2_33%=v2_2B%-18
  4009.   ENDIF
  4010.   IF v2_2D%+v2_35%>LEN(v5_5$(v2_33%))
  4011.     v2_2D%=LEN(v5_5$(v2_33%))-v2_35%
  4012.   ENDIF
  4013.   REPEAT
  4014.     v1_3$=MID$(v5_5$(v2_33%),v2_2D%+6,v2_35%)
  4015.     TEXT 0,v2_31%*16-3,LEFT$(v5_5$(v2_33%),5)
  4016.     PRINT AT(v2_34%,v2_31%);v1_3$;
  4017.     INC v2_31%
  4018.     INC v2_33%
  4019.   UNTIL v2_31%>v2_32% OR v2_33%>v2_2B%-2
  4020.   vC_0&(0)=0
  4021.   FOR v2_14%=1 TO 2
  4022.     TEXT 0,(v2_14%)*16,MID$(v5_5$(v2_14%+2),v2_2D%,80)
  4023.   NEXT v2_14%
  4024.   TEXT 0,398,MID$(v5_5$(v2_2B%),v2_2D%,80)
  4025. RETURN
  4026. > PROCEDURE vB_40
  4027.   ~WIND_GET(v2_1F%,4,v2_22%,v2_23%,v2_24%,v2_25%)
  4028.   v2_29%=v2_25%/16-1
  4029.   v2_36%=v2_29%/v2_2B%*1000
  4030.   ~WIND_SET(v2_1F%,16,v2_36%,v2_27%,v2_27%,v2_27%)
  4031.   v2_2C%=v2_24%/8-1
  4032.   v2_37%=v2_2C%/v2_2E%*1000
  4033.   ~WIND_SET(v2_1F%,15,v2_37%,v2_27%,v2_27%,v2_27%)
  4034. RETURN
  4035. > PROCEDURE vB_43
  4036.   v2_2B%=v2_19%
  4037.   v2_2A%=6
  4038.   v2_2D%=1
  4039.   vB_4
  4040.   FOR v2_D%=1 TO v2_2B%
  4041.     v2_2E%=MAX(v2_2E%,LEN(v5_3$(v2_D%)))
  4042.     v5_5$(v2_D%)=v5_3$(v2_D%)
  4043.     RESTORE vA_46
  4044.     DO
  4045.       READ v2_7%,v2_38%
  4046.       EXIT IF v2_7%=0 OR v2_38%=0
  4047.       vB_45
  4048.     LOOP
  4049.   NEXT v2_D%
  4050.   PRINT CHR$(27)+"w";
  4051. vA_46:
  4052.   DATA 205,45,196,45,180,43,181,43,182,43,195,43,193,43,194,43,197,43
  4053.   DATA 206,43,207,43,208,43,209,43,210,43,215,43,216,43,179,124,186,124
  4054.   DATA 202,43,0,0
  4055.   vB_0
  4056. RETURN
  4057. > PROCEDURE vB_45
  4058.   DO
  4059.     v2_8%=INSTR(v5_5$(v2_D%),CHR$(v2_7%))
  4060.     EXIT IF v2_8%=0
  4061.     MID$(v5_5$(v2_D%),v2_8%)=CHR$(v2_38%)
  4062.   LOOP
  4063. RETURN
  4064. > PROCEDURE vB_49(v0_24#)
  4065.   ' Prozedur-Aufruf: dm_format(REALZAHL)
  4066.   ' Prozedur-Rückgabe steht in dm$
  4067.   ' Funktion: Umwandlung beliebiger Zahlen in DM-Format
  4068.   ' z.B. Aufruf dm_format(3412.3) Ausgabe in dm$: 3.412,30
  4069.   v0_24#=INT(v0_24#*100+0.1)/100
  4070.   v1_21$=STR$(v0_24#)
  4071.   IF INSTR(v1_21$,".")=0
  4072.     v1_21$=v1_21$+",--"
  4073.   ELSE IF INSTR(v1_21$,".")=LEN(v1_21$)-1
  4074.     v1_21$=LEFT$(v1_21$,LEN(v1_21$)-2)+","+RIGHT$(v1_21$,1)+"0"
  4075.   ELSE
  4076.     v1_21$=LEFT$(v1_21$,LEN(v1_21$)-3)+","+RIGHT$(v1_21$,2)
  4077.   ENDIF
  4078.   IF INSTR(v1_21$,",")>7
  4079.     v1_21$=LEFT$(v1_21$,LEN(v1_21$)-9)+"."+RIGHT$(v1_21$,9)
  4080.   ENDIF
  4081.   IF INSTR(v1_21$,",")>4
  4082.     v1_21$=LEFT$(v1_21$,LEN(v1_21$)-6)+"."+RIGHT$(v1_21$,6)
  4083.   ENDIF
  4084. RETURN
  4085. > PROCEDURE vB_4A(v1_21$)
  4086.   ' Umkehrprozedur zu dm_format
  4087. vA_52:
  4088.   IF INSTR(v1_21$,".")>0
  4089.     v1_21$=LEFT$(v1_21$,INSTR(v1_21$,".")-1)+RIGHT$(v1_21$,LEN(v1_21$)-INSTR(v1_21$,"."))
  4090.     GOTO vA_52
  4091.   ENDIF
  4092.   IF INSTR(v1_21$,",")>0
  4093.     v1_21$=LEFT$(v1_21$,INSTR(v1_21$,",")-1)+"."+RIGHT$(v1_21$,LEN(v1_21$)-INSTR(v1_21$,","))
  4094.   ENDIF
  4095.   v0_24#=VAL(v1_21$)
  4096. RETURN
  4097. > PROCEDURE vB_4B
  4098.   vB_1B
  4099.   DEFFILL ,2,4
  4100.   PBOX 0,19,639,399
  4101.   IF v2_3%=0 AND v2_2%=0
  4102.     ALERT 1,"|Keine Konten gespeichert!",1,"Hmpf.",v2_0%
  4103.     GOTO vA_57
  4104.   ENDIF
  4105.   v0_1#=0
  4106.   v0_3#=128
  4107.   v0_2#=56
  4108.   v0_4#=88
  4109.   v0_5#=16
  4110.   v0_6#=80
  4111.   v1_3$="HABEN-KONTOS"
  4112.   vB_36
  4113.   v0_1#=0
  4114.   v0_2#=88
  4115.   v0_3#=128
  4116.   v0_4#=92+v2_2%*16
  4117.   @vB_1D
  4118.   v0_5#=4
  4119.   FOR v0_16#=1 TO v2_2%
  4120.     IF v5_4$(MENU(0))="...zeigen"
  4121.       SELECT v6_4%(v0_16#,1)
  4122.       CASE 1
  4123.         v5_0$(v0_16#,1)="B "+v5_0$(v0_16#,1)
  4124.       CASE 2
  4125.         v5_0$(v0_16#,1)="E "+v5_0$(v0_16#,1)
  4126.       ENDSELECT
  4127.     ELSE
  4128.       v5_0$(v0_16#,1)=STRING$(2-LEN(STR$(v0_16#)),32)+STR$(v0_16#)+v5_0$(v0_16#,1)
  4129.     ENDIF
  4130.     v0_6#=88+v0_16#*16
  4131.     v1_3$=LEFT$(v5_0$(v0_16#,1)+STRING$(15,32),15)
  4132.     @vB_1E
  4133.     v0_3#=v0_1#+18
  4134.     v0_4#=v0_6#+1
  4135.     v0_2#=v0_6#-15
  4136.     v1_3$=LEFT$(v5_0$(v0_16#,1),2)
  4137.     @vB_36
  4138.     v5_0$(v0_16#,1)=RIGHT$(v5_0$(v0_16#,1),LEN(v5_0$(v0_16#,1))-2)
  4139.   NEXT v0_16#
  4140.   v0_1#=511
  4141.   v0_2#=88
  4142.   v0_3#=639
  4143.   v0_4#=92+v2_3%*16
  4144.   @vB_1D
  4145.   v0_5#=515
  4146.   FOR v0_15#=1 TO v2_3%
  4147.     IF v5_4$(MENU(0))="...zeigen"
  4148.       SELECT v6_4%(v0_15#,2)
  4149.       CASE 1
  4150.         v5_0$(v0_15#,2)="B "+v5_0$(v0_15#,2)
  4151.       CASE 2
  4152.         v5_0$(v0_15#,2)="E "+v5_0$(v0_15#,2)
  4153.       ENDSELECT
  4154.     ELSE
  4155.       v5_0$(v0_15#,2)=STRING$(2-LEN(STR$(v0_15#)),32)+STR$(v0_15#)+v5_0$(v0_15#,2)
  4156.     ENDIF
  4157.     v0_6#=88+v0_15#*16
  4158.     v1_3$=LEFT$(v5_0$(v0_15#,2)+STRING$(15,32),15)
  4159.     @vB_1E
  4160.     v0_3#=v0_1#+18
  4161.     v0_4#=v0_6#+1
  4162.     v0_2#=v0_6#-15
  4163.     v1_3$=LEFT$(v5_0$(v0_15#,2),2)
  4164.     @vB_36
  4165.     v5_0$(v0_15#,2)=RIGHT$(v5_0$(v0_15#,2),LEN(v5_0$(v0_15#,2))-2)
  4166.   NEXT v0_15#
  4167.   v0_1#=511
  4168.   v0_3#=639
  4169.   v0_2#=56
  4170.   v0_4#=88
  4171.   v0_5#=535
  4172.   v0_6#=80
  4173.   v1_3$="SOLL-KONTOS"
  4174.   vB_36
  4175.   v0_1#=170
  4176.   v0_3#=470
  4177.   v0_2#=56
  4178.   v0_4#=88
  4179.   v1_3$="Aktueller Kontenrahmen: '"+LEFT$(v1_7$,8)+"'"
  4180.   IF v1_7$=""
  4181.     v1_3$="Bitte Kontenrahmen initialisieren!"
  4182.   ENDIF
  4183.   v0_6#=80
  4184.   v0_5#=INT(320-LEN(v1_3$)/2*8)
  4185.   vB_36
  4186.   v0_1#=170
  4187.   v0_3#=470
  4188.   v0_2#=94
  4189.   v0_4#=126
  4190.   v1_3$="Aktuelle Datei: '"+v1_4$+"'"
  4191.   IF v1_4$=""
  4192.     v1_3$="Bitte Datei initialisieren!"
  4193.   ENDIF
  4194.   v0_6#=118
  4195.   v0_5#=INT(320-LEN(v1_3$)/2*8)
  4196.   vB_36
  4197.   IF v5_4$(MENU(0))="...zeigen"
  4198.     ALERT 1,"|'E' => Erfolgskonto|'B' => Bestandskonto",1,"Ah ja!",v2_0%
  4199.   ENDIF
  4200. vA_57:
  4201. RETURN
  4202. > PROCEDURE vB_4D
  4203.   IF v1_7$=""
  4204.     ALERT 1,"|Erst Kontenrahmen|initialisieren!",1,"OKAY",v2_0%
  4205.     GOTO vA_5A
  4206.   ENDIF
  4207. vA_5C:
  4208.   vB_4B
  4209.   ALERT 2,"Soll ein SOLL- oder ein|HABEN-Konto umsortiert|werden?",1,"HABEN| SOLL ",v2_0%
  4210.   v2_3D%=v2_0%
  4211. vA_59:
  4212.   v1_B$="KONTENRAHMEN UMSORTIEREN"
  4213.   v1_C$="Bitte die Nummer des Kontos angeben,"
  4214.   v1_E$="das umsortiert werden soll:"
  4215.   v2_45%=2
  4216.   vB_33
  4217.   SELECT v2_3D%
  4218.   CASE 1
  4219.     IF VAL(v1_F$)>v2_2% OR VAL(v1_F$)<1
  4220.       ALERT 3,"Eine echte Quatscheingabe!|In der Kontenliste stehen die|möglichen HABEN-Kontennummern!",1,"OKAY",v2_0%
  4221.       vB_4B
  4222.       GOTO vA_59
  4223.     ENDIF
  4224.   CASE 2
  4225.     IF VAL(v1_F$)>v2_3% OR VAL(v1_F$)<1
  4226.       ALERT 3,"Eine echte Quatscheingabe!|In der Kontenliste stehen die|möglichen SOLL-Kontennummern!",1,"OKAY",v2_0%
  4227.       vB_4B
  4228.       GOTO vA_59
  4229.     ENDIF
  4230.   ENDSELECT
  4231.   v0_28#=VAL(v1_F$)
  4232. vA_5B:
  4233.   vB_4B
  4234.   v1_B$="ZIELSTELLE WÄHLEN"
  4235.   v1_C$="An welche Stelle soll das gewählte Konto"
  4236.   v1_E$="sortiert werden?"
  4237.   v2_45%=2
  4238.   vB_33
  4239.   SELECT v2_3D%
  4240.   CASE 1
  4241.     IF VAL(v1_F$)>v2_2% OR VAL(v1_F$)<1
  4242.       ALERT 1,"Es sind nur bereits bestehende|Nummern möglich! Keine Konten-|neueingabe!",1," OKAY |Abbruch",v2_0%
  4243.       IF v2_0%=2
  4244.         GOTO vA_5A
  4245.       ELSE
  4246.         vB_4B
  4247.         GOTO vA_5B
  4248.       ENDIF
  4249.     ENDIF
  4250.   CASE 2
  4251.     IF VAL(v1_F$)>v2_3% OR VAL(v1_F$)<1
  4252.       ALERT 1,"Es sind nur bereits bestehende|Nummern möglich! Keine Konten-|neueingabe!",1," OKAY |Abbruch",v2_0%
  4253.       IF v2_0%=2
  4254.         GOTO vA_5A
  4255.       ELSE
  4256.         vB_4B
  4257.         GOTO vA_5B
  4258.       ENDIF
  4259.     ENDIF
  4260.   ENDSELECT
  4261.   v0_29#=VAL(v1_F$)
  4262.   SWAP v5_0$(v0_28#,v2_3D%),v5_0$(v0_29#,v2_3D%)
  4263.   SWAP v6_4%(v0_28#,v2_3D%),v6_4%(v0_29#,v2_3D%)
  4264.   vB_4B
  4265.   v1_0$="|Weiter umsortieren?"
  4266.   vB_19
  4267.   IF v2_0%=1
  4268.     GOTO vA_5C
  4269.   ENDIF
  4270. vA_5A:
  4271. RETURN
  4272. > PROCEDURE vB_52
  4273.   v2_7%=0
  4274.   v0_1#=0
  4275.   v0_3#=639
  4276.   v0_2#=19
  4277.   v0_4#=35
  4278.   v0_5#=200
  4279.   v0_6#=31
  4280.   v1_3$="Nach oben blättern hier anklicken!"
  4281.   vB_36
  4282.   v0_1#=0
  4283.   v0_3#=639
  4284.   v0_2#=383
  4285.   v0_4#=399
  4286.   v0_5#=40
  4287.   v0_6#=399
  4288.   v1_3$="Nach unten blättern hier anklicken! Abbruch rechte Maustaste anklicken!"
  4289.   vB_36
  4290. vA_5F:
  4291.   DEFFILL ,0,0
  4292.   PBOX 0,35,639,383
  4293.   FOR v2_D%=1 TO 21
  4294.     TEXT 0,36+v2_D%*16,v5_3$(v2_48%+v2_30%+v2_D%)
  4295.   vA_55:
  4296.   NEXT v2_D%
  4297.   DO
  4298.     MOUSE v2_9%,v2_A%,v2_B%
  4299.     IF v2_B%=2
  4300.       v3_1!=TRUE
  4301.     ENDIF
  4302.     IF v2_B%=1
  4303.       IF v2_A%<35 AND v2_A%>19
  4304.         SUB v2_30%,3
  4305.       ELSE IF v2_A%>382
  4306.         ADD v2_30%,3
  4307.       ENDIF
  4308.       IF v2_30%<0
  4309.         v2_30%=0
  4310.       ELSE IF v2_30%+22>v2_49%
  4311.         v2_30%=v2_49%-21
  4312.       ENDIF
  4313.     ENDIF
  4314.     EXIT IF v2_B%>0
  4315.   LOOP
  4316.   IF v3_1!
  4317.     GOTO vA_66
  4318.   ELSE
  4319.     GOTO vA_5F
  4320.   ENDIF
  4321. vA_66:
  4322. RETURN
  4323. > PROCEDURE vB_53
  4324.   ALERT 1,v1_9$+"|Bitte Drucker bereitmachen.|Ausdruck braucht "+v1_5$,1,"Druck|Abbruch",v2_0%
  4325.   IF v2_0%=2
  4326.     GOTO vA_67
  4327.   ENDIF
  4328.   LPRINT CHR$(18);CHR$(27);CHR$(80);
  4329.   v2_38%=0
  4330.   v2_D%=0
  4331.   v2_13%=0
  4332.   vB_55("Ich drucke.|Abbruch mit der|'ESC'-Taste...")
  4333.   vB_4
  4334.   DO
  4335.     ' i%=Druckzeile bezogen auf den Text (nur ein Überschriftblock)
  4336.     ' si%=Druckzeile bezogen auf Drucker (extra Überschrift auf jeder Seite!)
  4337.     INC v2_38%
  4338.     INC v2_D%
  4339.     EXIT IF v2_D%>v2_49%-v2_48% OR INKEY$=CHR$(27)
  4340.     IF v2_38%/66=INT(v2_38%/66)
  4341.       INC v2_13%
  4342.       v1_5$="- Fortsetzung auf Seite "+STR$(v2_13%)+" -"
  4343.       LPRINT STRING$(80-LEN(v1_5$)," ");v1_5$
  4344.       LPRINT v5_3$(v2_48%+1)
  4345.       LPRINT v5_3$(v2_48%+2)
  4346.       LPRINT v5_3$(v2_48%+3)
  4347.       LPRINT v5_3$(v2_48%+4)
  4348.       LPRINT
  4349.       ADD v2_38%,6
  4350.     ENDIF
  4351.     LPRINT v5_3$(v2_48%+v2_D%)
  4352.   LOOP
  4353.   LPRINT CHR$(12);
  4354.   vB_0
  4355. vA_67:
  4356. RETURN
  4357. > PROCEDURE vB_55(v1_1B$)
  4358.   IF INSTR(v1_1B$,"|")=0
  4359.     v1_23$=v1_1B$
  4360.     GOTO vA_68
  4361.   ELSE
  4362.     v1_23$=LEFT$(v1_1B$,INSTR(v1_1B$,"|")-1)
  4363.     v1_1B$=RIGHT$(v1_1B$,LEN(v1_1B$)-LEN(v1_23$)-1)
  4364.     IF INSTR(v1_1B$,"|")=0
  4365.       v1_24$=v1_1B$
  4366.       GOTO vA_68
  4367.     ELSE
  4368.       v1_24$=LEFT$(v1_1B$,INSTR(v1_1B$,"|")-1)
  4369.       v1_25$=RIGHT$(v1_1B$,LEN(v1_1B$)-LEN(v1_24$)-1)
  4370.     ENDIF
  4371.   ENDIF
  4372. vA_68:
  4373.   v0_2#=160
  4374.   v0_4#=224
  4375.   v0_1#=200
  4376.   v0_3#=440
  4377.   @vB_1D
  4378.   vB_24
  4379.   v0_5#=320-LEN(v1_23$)*4
  4380.   v0_6#=184
  4381.   v1_3$=v1_23$
  4382.   vB_1E
  4383.   v0_5#=320-LEN(v1_24$)*4
  4384.   v0_6#=200
  4385.   v1_3$=v1_24$
  4386.   vB_1E
  4387.   v0_5#=320-LEN(v1_25$)*4
  4388.   v0_6#=216
  4389.   v1_3$=v1_25$
  4390.   vB_1E
  4391. RETURN
  4392. > PROCEDURE vB_57
  4393.   PRINT CHR$(27)+"j";
  4394.   GET 0,0,639,399,v1_2C$
  4395.   v1_2B$=""
  4396.   v1_B$="TASCHENRECHNER-TOOL"
  4397.   v1_C$="Bitte Rechenaufgabe eingeben (nur Grundrechenarten):"
  4398.   v1_E$="(Keine Klammern! Keine Punkt- vor Strichrechnung!)"
  4399.   v2_45%=30
  4400.   vB_33
  4401. vA_6B:
  4402.   v2_51%=INSTR(v1_F$,"*")
  4403.   v2_52%=INSTR(v1_F$,"/")
  4404.   v2_53%=INSTR(v1_F$,"+")
  4405.   v2_54%=INSTR(v1_F$,"-")
  4406.   IF v2_51%=0 AND v2_52%=0 AND v2_53%=0 AND v2_54%=0
  4407.     v0_28#=VAL(v1_F$)
  4408.     IF v0_28#<>0
  4409.       v1_F$=""
  4410.       vB_58
  4411.     ENDIF
  4412.     IF v1_F$<>""
  4413.       v1_2A$="** ERROR:|"+LEFT$(v1_F$,7)+"?"
  4414.     ELSE
  4415.       vB_49(v0_29#)
  4416.       v1_2A$="ERGEBNIS:|"+v1_21$
  4417.     ENDIF
  4418.     GOTO vA_6C
  4419.   ELSE
  4420.     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)
  4421.       v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"*")))
  4422.       v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"*"))
  4423.       vB_58
  4424.       v1_2B$="*"
  4425.     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)
  4426.       v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"/")))
  4427.       v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"/"))
  4428.       vB_58
  4429.       v1_2B$="/"
  4430.     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)
  4431.       v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"+")))
  4432.       v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"+"))
  4433.       vB_58
  4434.       v1_2B$="+"
  4435.     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)
  4436.       v0_28#=VAL(LEFT$(v1_F$,INSTR(v1_F$,"-")))
  4437.       v1_F$=RIGHT$(v1_F$,LEN(v1_F$)-INSTR(v1_F$,"-"))
  4438.       vB_58
  4439.       v1_2B$="-"
  4440.     ENDIF
  4441.   ENDIF
  4442.   GOTO vA_6B
  4443. vA_6C:
  4444.   PUT 0,0,v1_2C$
  4445.   v1_1B$="Das Ergebnis erscheint|rechts unten im|Taschenrechner-Button!"
  4446.   vB_55(v1_1B$)
  4447.   MOUSE v2_9%,v2_A%,v2_B%
  4448.   REPEAT
  4449.     MOUSE v2_7%,v2_38%,v2_B%
  4450.   UNTIL v2_7%<>v2_9% OR v2_38%<>v2_A%
  4451.   PUT 0,0,v1_2C$
  4452.   PRINT CHR$(27)+"k";
  4453. RETURN
  4454. > PROCEDURE vB_58
  4455.   IF v1_2B$="*"
  4456.     v0_29#=v0_29#*v0_28#
  4457.   ELSE IF v1_2B$="/" AND v0_28#<>0
  4458.     v0_29#=v0_29#/v0_28#
  4459.   ELSE IF v1_2B$="+"
  4460.     v0_29#=v0_29#+v0_28#
  4461.   ELSE IF v1_2B$="-"
  4462.     v0_29#=v0_29#-v0_28#
  4463.   ELSE
  4464.     v0_29#=v0_28#
  4465.   ENDIF
  4466. RETURN
  4467. > PROCEDURE vB_56
  4468.   v2_55%=v2_4%
  4469.   GET 0,0,639,399,v1_2C$
  4470.   PRINT CHR$(27)+"j";
  4471.   v1_B$="SUCHEN-TOOL"
  4472.   v1_C$="Bitte Buchungsdatum des gesuchten Belegs eingeben!"
  4473.   v1_E$="(Falls unbekannt, einfach RETURN drücken!)"
  4474.   v2_45%=10
  4475.   vB_33
  4476.   PUT 0,0,v1_2C$
  4477.   v5_F$(1)=v1_F$
  4478.   v1_C$="Bitte Buchungstext des gesuchten Belegs eingaben!"
  4479.   v2_45%=27
  4480.   vB_33
  4481.   PUT 0,0,v1_2C$
  4482.   v5_10$(1)=v1_F$
  4483.   v1_C$="Bitte Buchungsbetrag des gesuchten Belegs eingeben!"
  4484.   v2_45%=12
  4485.   vB_33
  4486.   PUT 0,0,v1_2C$
  4487.   v4_6#(1)=VAL(v1_F$)
  4488.   IF v5_F$(1)="" AND v5_10$(1)="" AND v4_6#(1)=0
  4489.     PUT 0,0,v1_2C$
  4490.     ALERT 2,"Sehr freundlich!|Ich darf mir also|einen Beleg aussuchen.",1,"Ja,äh..",v2_0%
  4491.     GOTO vA_6E
  4492.   ENDIF
  4493.   IF v5_F$(1)<>""
  4494.     v1_5$=v5_F$(1)
  4495.     v1_27$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
  4496.     IF LEN(v1_27$)=1
  4497.       v1_27$="0"+v1_27$
  4498.     ENDIF
  4499.     v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  4500.     v1_26$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
  4501.     IF LEN(v1_26$)=1
  4502.       v1_26$="0"+v1_26$
  4503.     ENDIF
  4504.     v1_20$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  4505.   ENDIF
  4506.   FOR v2_D%=1 TO v2_5%
  4507.     IF v5_F$(1)<>""
  4508.       v1_5$=v5_1$(v2_D%)
  4509.       v1_2E$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
  4510.       IF LEN(v1_27$)=1
  4511.         v1_2E$="0"+v1_2E$
  4512.       ENDIF
  4513.       v1_5$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  4514.       v1_2F$=LEFT$(v1_5$,INSTR(v1_5$,".")-1)
  4515.       IF LEN(v1_2F$)=1
  4516.         v1_2F$="0"+v1_2F$
  4517.       ENDIF
  4518.       v1_30$=RIGHT$(v1_5$,LEN(v1_5$)-INSTR(v1_5$,"."))
  4519.       IF v1_27$<>v1_2E$ OR v1_26$<>v1_2F$ OR v1_20$<>v1_30$
  4520.         GOTO vA_6F
  4521.       ENDIF
  4522.     ENDIF
  4523.     IF v5_10$(1)<>"" AND v5_10$(1)<>v5_2$(v2_D%)
  4524.       GOTO vA_6F
  4525.     ENDIF
  4526.     IF v4_6#(1)>0 AND v0_35#<>v4_0#(v2_D%)
  4527.       GOTO vA_6F
  4528.     ENDIF
  4529.     v2_4%=v2_D%
  4530.     v2_D%=v2_5%
  4531.   vA_6F:
  4532.   NEXT v2_D%
  4533.   IF v2_4%=v2_55%
  4534.     GOTO vA_6E
  4535.   ENDIF
  4536.   v1_1B$="SUCHEN-TOOL|Beleg gefunden.|Lfd.Nr. "+STR$(v2_4%)
  4537.   vB_55(v1_1B$)
  4538.   MOUSE v2_9%,v2_A%,v2_B%
  4539.   REPEAT
  4540.     MOUSE v2_7%,v2_38%,v2_B%
  4541.   UNTIL v2_7%<>v2_9% OR v2_38%<>v2_A%
  4542.   PUT 0,0,v1_2C$
  4543.   PRINT CHR$(27)+"k";
  4544.   vB_37
  4545.   vB_25
  4546.   GOTO vA_70
  4547. vA_6E:
  4548.   PUT 0,0,v1_2C$
  4549.   PRINT CHR$(27)+"k";
  4550. vA_70:
  4551. RETURN
  4552. ' **** Beginn des grafischen Teils
  4553. > PROCEDURE vB_60
  4554.   CLS
  4555.   DEFTEXT 1,0,0,32
  4556.   TEXT 20,32,v1_31$
  4557.   DEFTEXT 1,0,0,6
  4558.   TEXT 20,44,v1_32$
  4559.   v0_41#=30
  4560.   v0_42#=355
  4561.   v0_43#=25
  4562.   v0_44#=50
  4563.   v0_45#=470
  4564.   v0_46#=250
  4565.   v0_47#=v0_46#
  4566.   v0_48#=v0_45#
  4567.   v0_49#=v0_41#+v0_43#
  4568.   v0_4A#=v0_42#-v0_44#
  4569.   GOSUB vB_69
  4570.   v0_4B#=v0_49#+v0_48#
  4571.   v0_4C#=v0_4A#-v0_47#
  4572.   v0_4D#=v0_41#+v0_48#
  4573.   v0_4E#=v0_42#-v0_47#
  4574.   v0_4F#=0
  4575.   v0_21#=v0_4F#
  4576.   v0_50#=(v0_49#-v0_41#)/v0_3E#
  4577.   v0_51#=(v0_4A#-v0_42#)/v0_3E#
  4578.   FOR v0_25#=0 TO v0_3E#
  4579.     DRAW v0_41#+v0_4F#,v0_42#+v0_21# TO v0_4D#+v0_4F#,v0_42#+v0_21#
  4580.     v0_4F#=v0_4F#+v0_50#
  4581.     v0_21#=v0_21#+v0_51#
  4582.   NEXT v0_25#
  4583.   v0_4F#=0
  4584.   v0_50#=(v0_4D#-v0_41#)/v0_3F#
  4585.   FOR v0_25#=0 TO v0_3F#
  4586.     DRAW v0_41#+v0_4F#,v0_42# TO v0_49#+v0_4F#,v0_4A#
  4587.     DRAW v0_49#+v0_4F#,v0_4A# TO v0_49#+v0_4F#,v0_4C#
  4588.     v0_4F#=v0_4F#+v0_50#
  4589.   NEXT v0_25#
  4590.   v0_4F#=0
  4591.   v0_21#=v0_4F#
  4592.   v0_50#=(v0_4E#-v0_42#)/v0_52#
  4593.   FOR v0_25#=0 TO v0_52#
  4594.     DRAW v0_41#,v0_42#+v0_4F# TO v0_49#,v0_4A#+v0_4F#
  4595.     DRAW v0_49#,v0_4A#+v0_4F# TO v0_4B#,v0_4A#+v0_4F#
  4596.     v0_4F#=v0_4F#+v0_50#
  4597.     v0_53#=v0_4B#+2
  4598.     v0_54#=v0_4A#+v0_25#*v0_50#
  4599.     v0_55#=INT(v0_25#*v0_E#/v0_52#)
  4600.     v1_36$=STR$(v0_55#)
  4601.     v0_56#=4
  4602.     DEFTEXT 1,0,0,v0_56#
  4603.     TEXT v0_53#,v0_54#,v1_36$
  4604.   NEXT v0_25#
  4605.   DRAW v0_41#,v0_42# TO v0_41#,v0_4E#
  4606.   v0_50#=(v0_4D#-v0_41#)/v0_3F#
  4607.   v0_51#=(v0_42#-v0_4A#)/v0_3E#
  4608.   v0_57#=(v0_49#-v0_41#)/v0_3E#
  4609.   v0_55#=v0_50#/4
  4610.   v0_21#=0
  4611.   v0_58#=v0_21#
  4612.   IF v1_38$=" säulen "
  4613.     GOSUB vB_6A
  4614.   ELSE
  4615.     GOSUB vB_6B
  4616.   ENDIF
  4617. RETURN
  4618. > PROCEDURE vB_6A
  4619.   FOR v0_59#=v0_3E# DOWNTO 1
  4620.     v0_4F#=0
  4621.     v0_5A#=1
  4622.     DEFFILL 1,2,v0_59#*2-2
  4623.     v1_36$=v5_13$(v0_59#)
  4624.     FOR v0_25#=1 TO v0_3F#
  4625.       v0_5B#=v0_49#+v0_4F#+1+v0_55#*0.5-v0_58#-3*v0_57#/4
  4626.       v0_5C#=v0_5B#+v0_50#-v0_55#
  4627.       v0_5D#=v0_4A#+v0_21#+3*v0_51#/4
  4628.       v0_5E#=v0_5D#-v4_9#(v0_59#,v0_25#)*v0_5F#
  4629.       BOX v0_5B#,v0_5E#,v0_5C#,v0_5D#
  4630.       PBOX v0_5B#+1,v0_5E#+1,v0_5C#-1,v0_5D#-1
  4631.       GOSUB vB_6C
  4632.       GOSUB vB_6D
  4633.       v0_4F#=v0_4F#+v0_50#
  4634.     NEXT v0_25#
  4635.     v0_56#=6
  4636.     v0_53#=v0_5B#+v0_50#+4
  4637.     v0_54#=v0_5D#+4
  4638.     DEFTEXT 1,0,0,v0_56#
  4639.     TEXT v0_53#,v0_54#,v5_13$(v0_59#)
  4640.     v0_58#=v0_58#+v0_57#
  4641.     v0_21#=v0_21#+v0_51#
  4642.   NEXT v0_59#
  4643.   FOR v0_25#=1 TO v0_3F#
  4644.     v0_53#=v0_41#+v0_50#*v0_25#-(v0_50#/4)*3.5
  4645.     v0_54#=v0_42#+8+v0_D#
  4646.     v1_36$=STR$(v0_25#)
  4647.     DEFTEXT 1,0,0,6
  4648.     TEXT v0_53#,v0_54#,v5_14$(v0_25#)
  4649.     DEFTEXT 1,0,0,4
  4650.     TEXT v0_53#,v0_54#+7,v5_15$(v0_25#)
  4651.   NEXT v0_25#
  4652. RETURN
  4653. > PROCEDURE vB_6C
  4654.   v4_A#(1)=v0_5C#
  4655.   v4_A#(2)=v0_5C#+2*v0_57#/4
  4656.   v4_A#(3)=v0_5C#+2*v0_57#/4
  4657.   v4_A#(0)=v0_5C#
  4658.   v4_B#(1)=v0_5D#
  4659.   v4_B#(2)=v0_5D#-2*v0_51#/4
  4660.   v4_B#(3)=v0_5E#-2*v0_51#/4
  4661.   v4_B#(0)=v0_5E#
  4662.   POLYFILL 4,v4_A#(),v4_B#()
  4663. RETURN
  4664. > PROCEDURE vB_6D
  4665.   v4_A#(1)=v0_5B#
  4666.   v4_A#(2)=v0_5C#
  4667.   v4_A#(3)=v0_5C#+2*v0_57#/4
  4668.   v4_A#(0)=v0_5B#+2*v0_57#/4
  4669.   v4_B#(1)=v0_5E#
  4670.   v4_B#(2)=v0_5E#
  4671.   v4_B#(3)=v0_5E#-2*v0_51#/4
  4672.   v4_B#(0)=v0_5E#-2*v0_51#/4
  4673.   POLYFILL 4,v4_A#(),v4_B#()
  4674. RETURN
  4675. > PROCEDURE vB_6B
  4676.   FOR v0_59#=v0_3E# DOWNTO 1
  4677.     DEFFILL 1,2,v0_59#*2-2
  4678.     GOSUB vB_6E
  4679.     v1_36$=v5_13$(v0_59#)
  4680.     v0_53#=v0_49#+v0_45#+5-v0_60#*v0_57#
  4681.     v0_54#=v0_4A#+v0_51#+v0_60#*v0_51#
  4682.     DEFTEXT 1,0,0,6
  4683.     TEXT v0_53#,v0_54#,v5_13$(v0_59#)
  4684.   NEXT v0_59#
  4685.   FOR v0_0#=0 TO v0_3F#-1
  4686.     v0_53#=v0_41#+v0_0#*v0_50#-20
  4687.     v0_54#=v0_42#+10
  4688.     DEFTEXT 1,0,0,6
  4689.     TEXT v0_53#,v0_54#,v5_14$(v0_0#+1)
  4690.     DEFTEXT 1,0,0,4
  4691.     TEXT v0_53#,v0_54#+7,v5_15$(v0_0#+1)
  4692.   NEXT v0_0#
  4693. RETURN
  4694. > PROCEDURE vB_6E
  4695.   v0_61#=v0_3F#-1
  4696.   v0_60#=v0_3E#-v0_59#
  4697.   FOR v0_62#=0 TO v0_61#
  4698.     v0_63#=v0_61#-v0_62#
  4699.     v4_A#(v0_62#)=v0_49#+v0_62#*v0_50#-v0_60#*v0_57#-v0_57#
  4700.     v4_A#(v0_3F#+v0_63#)=v4_A#(v0_62#)+v0_57#
  4701.     v4_B#(v0_62#)=v0_4A#-v0_5F#*v4_9#(v0_59#,v0_62#+1)+4.2*v0_51#/4+v0_60#*v0_51#
  4702.     v4_B#(v0_3F#+v0_63#)=v4_B#(v0_62#)-v0_51#
  4703.   NEXT v0_62#
  4704.   POLYFILL v0_3F#*2,v4_A#(),v4_B#()
  4705.   FOR v0_62#=0 TO v0_61#
  4706.     DRAW v4_A#(v0_62#),v4_B#(v0_62#) TO v4_A#(v0_62#)+v0_57#,v4_B#(v0_62#)-v0_51#
  4707.   NEXT v0_62#
  4708.   v4_A#(v0_3F#)=v4_A#(v0_61#)
  4709.   v4_B#(v0_3F#)=v0_4A#+v0_51#+v0_60#*v0_51#
  4710.   v4_A#(v0_3F#+1)=v0_49#-v0_60#*v0_57#-v0_57#
  4711.   v4_B#(v0_3F#+1)=v4_B#(v0_3F#)
  4712.   POLYFILL v0_3F#+2,v4_A#(),v4_B#()
  4713.   v4_A#(1)=v4_A#(v0_61#)
  4714.   v4_B#(1)=v4_B#(v0_61#)
  4715.   v4_A#(2)=v4_A#(1)+v0_57#
  4716.   v4_B#(2)=v4_B#(1)-v0_51#
  4717.   v4_A#(3)=v4_A#(2)
  4718.   v4_B#(3)=v0_4A#+v0_60#*v0_51#
  4719.   v4_A#(0)=v4_A#(1)
  4720.   v4_B#(0)=v0_4A#+v0_51#+v0_60#*v0_51#
  4721.   POLYFILL 4,v4_A#(),v4_B#()
  4722. RETURN
  4723. > PROCEDURE vB_5F
  4724.   CLS
  4725.   GOSUB vB_69
  4726.   v0_64#=260/v0_52#
  4727.   v0_65#=450/(v0_3F#-1)
  4728.   v0_66#=450/(v0_3F#-1)
  4729.   v0_67#=v0_3F#-1
  4730.   v0_68#=0
  4731.   IF v1_38$=" balken "
  4732.     v0_68#=1
  4733.     v0_67#=v0_3F#
  4734.     v0_65#=450/v0_3F#
  4735.     v0_66#=v0_65#
  4736.   ENDIF
  4737.   v0_69#=v0_E#/v0_52#
  4738.   v0_6A#=260/v0_E#
  4739.   v0_3B#=40
  4740.   v0_6B#=330
  4741.   DRAW v0_3B#,v0_6B# TO v0_3B#+450,v0_6B#
  4742.   FOR v0_0#=1 TO v0_52#
  4743.     v0_6B#=330-v0_0#*v0_64#
  4744.     DRAW v0_3B#,v0_6B# TO 490,v0_6B#
  4745.   NEXT v0_0#
  4746.   v0_6B#=330
  4747.   FOR v0_0#=0 TO v0_67#
  4748.     v0_3B#=40+v0_0#*v0_65#
  4749.     DRAW v0_3B#,v0_6B# TO v0_3B#,v0_6B#-260
  4750.   NEXT v0_0#
  4751.   FOR v0_6C#=1 TO v0_3E#
  4752.     IF v0_6C#<3
  4753.       v0_6D#=3
  4754.     ELSE
  4755.       v0_6D#=5
  4756.     ENDIF
  4757.     v0_3B#=40
  4758.     v0_6B#=330
  4759.     IF v0_68#=1
  4760.       GOSUB vB_6F
  4761.     ELSE
  4762.       PLOT v0_3B#,v0_6B#-(v4_9#(v0_6C#,1)*v0_6A#)
  4763.       DEFLINE 1,v0_6D#,2,2
  4764.       FOR v0_0#=2 TO v0_3F#
  4765.         v0_3B#=v0_3B#+v0_66#
  4766.         v0_6B#=330-(v4_9#(v0_6C#,v0_0#)*v0_6A#)
  4767.         GOSUB vB_70
  4768.       NEXT v0_0#
  4769.       IF v0_6C#/2<>INT(v0_6C#/2)
  4770.         GOSUB vB_71
  4771.       ENDIF
  4772.       DEFTEXT 1,0,0,6
  4773.       TEXT v0_3B#+25,v0_6B#,v5_13$(v0_6C#)
  4774.     ENDIF
  4775.   NEXT v0_6C#
  4776.   IF v1_38$=" linien "
  4777.     DEFLINE 1,1,0,0
  4778.     GOSUB vB_72
  4779.   ENDIF
  4780. RETURN
  4781. > PROCEDURE vB_70
  4782.   DRAW  TO v0_3B#,v0_6B#
  4783. RETURN
  4784. > PROCEDURE vB_71
  4785.   v0_3B#=40
  4786.   v0_6B#=330
  4787.   PLOT v0_3B#,v0_6B#-(v4_9#(v0_6C#,1)*v0_6A#)
  4788.   DEFLINE 1,1,2,2
  4789.   GRAPHMODE 3
  4790.   FOR v0_0#=2 TO v0_3F#
  4791.     v0_3B#=v0_3B#+v0_66#
  4792.     v0_6B#=330-(v4_9#(v0_6C#,v0_0#)*v0_6A#)
  4793.     DRAW  TO v0_3B#,v0_6B#
  4794.   NEXT v0_0#
  4795.   GRAPHMODE 1
  4796. RETURN
  4797. > PROCEDURE vB_6F
  4798.   v0_66#=450/v0_3F#
  4799.   v0_6E#=v0_66#/v0_3E#
  4800.   FOR v0_0#=1 TO v0_3E#
  4801.     DEFFILL 1,2,v0_0#*2-1
  4802.     FOR v0_63#=1 TO v0_3F#
  4803.       v0_6F#=v0_66#*v0_63#-35+(v0_0#-1)*v0_6E#
  4804.       v0_6F#=40+(v0_63#-1)*v0_66#+(v0_0#-1)*v0_6E#
  4805.       v0_70#=v0_6F#+v0_6E#
  4806.       v0_71#=330-(v4_9#(v0_0#,v0_63#)*v0_6A#)
  4807.       PBOX v0_6F#,330,v0_70#,v0_71#
  4808.     NEXT v0_63#
  4809.   NEXT v0_0#
  4810.   v0_72#=(12-v0_3F#)*10
  4811.   FOR v0_25#=1 TO v0_3E#
  4812.     DEFFILL 1,2,v0_25#*2-1
  4813.     PCIRCLE 535,v0_72#+v0_25#*(340/14)+47,12
  4814.   NEXT v0_25#
  4815.   FOR v0_25#=1 TO v0_3E#
  4816.     DEFTEXT 1,0,0,6
  4817.     TEXT 551,v0_72#+49+v0_25#*24.2,v5_13$(v0_25#)
  4818.   NEXT v0_25#
  4819.   GOSUB vB_72
  4820. RETURN
  4821. > PROCEDURE vB_72
  4822.   DEFTEXT 1,0,0,32
  4823.   TEXT 20,30,v1_31$
  4824.   DEFTEXT 1,0,0,6
  4825.   TEXT 20,45,v1_32$
  4826.   FOR v0_0#=1 TO v0_52#
  4827.     DEFTEXT 1,0,0,4
  4828.     TEXT 500,330-(v0_0#*v0_64#),INT(v0_0#*v0_69#)
  4829.   NEXT v0_0#
  4830.   v0_73#=500-(v0_68#=1)
  4831.   v0_E#=0
  4832.   FOR v0_0#=25 TO v0_73# STEP v0_66#
  4833.     v0_74#=v0_0#
  4834.     IF v0_68#=1
  4835.       v0_74#=v0_74#+20
  4836.     ENDIF
  4837.     v0_E#=v0_E#+1
  4838.     DEFTEXT 1,0,0,6
  4839.     TEXT v0_74#,340,v5_14$(v0_E#)
  4840.     DEFTEXT 1,0,0,4
  4841.     TEXT v0_74#,348,v5_15$(v0_E#)
  4842.   NEXT v0_0#
  4843. RETURN
  4844. > PROCEDURE vB_69
  4845.   v0_E#=0
  4846.   FOR v0_3B#=1 TO v0_3E#
  4847.     FOR v0_4F#=1 TO v0_3F#
  4848.       IF v4_9#(v0_3B#,v0_4F#)>v0_E#
  4849.         v0_E#=v4_9#(v0_3B#,v0_4F#)
  4850.       ENDIF
  4851.     NEXT v0_4F#
  4852.   NEXT v0_3B#
  4853.   IF v0_40#>v0_E#
  4854.     v0_E#=v0_40#
  4855.   ENDIF
  4856.   IF v0_E#=0
  4857.     v0_E#=1
  4858.   ENDIF
  4859.   v0_5F#=v0_47#/v0_E#
  4860.   IF v0_E#<31
  4861.     v0_52#=v0_E#
  4862.   ELSE
  4863.     v0_52#=INT(SQR(v0_E#))
  4864.   ENDIF
  4865. RETURN
  4866. > PROCEDURE vB_5E
  4867.   CLS
  4868.   ALERT 2,"Beschriftung der Kuchenteile :",1,"keine|Zahlwert|% -wert",v0_38#
  4869.   FOR v0_63#=1 TO v0_3E#
  4870.     v0_75#=0
  4871.     FOR v0_0#=1 TO v0_3F#
  4872.       v0_75#=v0_75#+v4_9#(v0_63#,v0_0#)
  4873.     NEXT v0_0#
  4874.     v0_76#=3600/v0_75#
  4875.     v0_77#=0
  4876.     IF v0_3E#=1
  4877.       v0_78#=240
  4878.       v0_79#=190
  4879.       v0_7A#=135
  4880.       v0_7B#=105
  4881.     ENDIF
  4882.     IF v0_3E#=2
  4883.       v0_7A#=105
  4884.       v0_7B#=90
  4885.       IF v0_63#=1
  4886.         v0_78#=130
  4887.         v0_79#=200
  4888.       ELSE
  4889.         v0_78#=380
  4890.         v0_79#=200
  4891.       ENDIF
  4892.     ENDIF
  4893.     IF v0_3E#=3
  4894.       v0_7A#=87
  4895.       v0_7B#=78
  4896.       v0_78#=105
  4897.       v0_79#=145
  4898.       IF v0_63#=2
  4899.         v0_78#=400
  4900.         v0_79#=145
  4901.       ENDIF
  4902.       IF v0_63#=3
  4903.         v0_78#=250
  4904.         v0_79#=270
  4905.       ENDIF
  4906.     ENDIF
  4907.     IF v0_3E#=4
  4908.       v0_7A#=75
  4909.       v0_7B#=67
  4910.       v0_78#=90
  4911.       v0_79#=125
  4912.       IF v0_63#=2
  4913.         v0_78#=320
  4914.         v0_79#=125
  4915.       ENDIF
  4916.       IF v0_63#=3
  4917.         v0_78#=200
  4918.         v0_79#=285
  4919.       ENDIF
  4920.       IF v0_63#=4
  4921.         v0_78#=430
  4922.         v0_79#=285
  4923.       ENDIF
  4924.     ENDIF
  4925.     ELLIPSE v0_78#,v0_79#,v0_7A#,v0_7B#
  4926.     FOR v0_0#=1 TO v0_3F#
  4927.       DEFTEXT 1,0,0,4
  4928.       v0_7C#=v0_77#
  4929.       v0_77#=v0_77#+v4_9#(v0_63#,v0_0#)*v0_76#
  4930.       DEFFILL v0_0#>1,2,v0_0#
  4931.       PELLIPSE v0_78#,v0_79#,v0_7A#,v0_7B#,v0_7C#,v0_77#
  4932.       ELLIPSE v0_78#,v0_79#,v0_7A#,v0_7B#,v0_7C#,v0_77#
  4933.       IF v0_38#>1
  4934.         v0_66#=((v0_7C#+v0_77#)/2)*PI/1800
  4935.         v0_7D#=0
  4936.         IF v0_66#>PI/2
  4937.           IF v0_66#<5.3
  4938.             v0_7D#=8
  4939.           ENDIF
  4940.         ENDIF
  4941.         v0_7E#=v4_9#(v0_63#,v0_0#)
  4942.         IF v0_38#=3
  4943.           v0_7E#=INT(100*v0_7E#/v0_75#)
  4944.         ENDIF
  4945.         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#
  4946.       ENDIF
  4947.     NEXT v0_0#
  4948.     DEFTEXT 1,0,0,6
  4949.     v1_37$="Summe="+STR$(v0_75#)
  4950.     TEXT v0_78#-v0_7A#/3,v0_79#+5*v0_7B#/4+9,v1_37$
  4951.     DEFTEXT 1,1,0,6
  4952.     TEXT v0_78#-v0_7A#/3,v0_79#+5*v0_7B#/4,v5_13$(v0_63#)
  4953.   NEXT v0_63#
  4954.   v0_72#=(12-v0_3F#)*10
  4955.   CIRCLE 530,v0_72#+70,12
  4956.   FOR v0_25#=2 TO v0_3F#
  4957.     DEFFILL v0_25#>1,2,v0_25#
  4958.     PCIRCL