10 REM +++++++++++++++++++++++++++++++++ 20 REM ! Program .... KONTOLIS 30 REM ! Utg}va 3.1 850120 40 REM ! av (c) Michael Widell 50 REM ! Minne 16 Kbytes f|r flexskiva 60 REM ! Ins{nt av Michael Widell 70 REM +++++++++++++++++++++++++++++++++ 80 REM 80-kolumners bildsk{rm (Tkn-80) 90 REM m}ste vara monterad. 100 REM *** Lista och {ndra uppgifter KONTOLIS Ver 3.1 *** 110 DIM K$(200%)=10,K%(200%),D$(200%)=10,B$(200%),P(200%),I%(200%) 120 I%=INP(4%) 130 GOSUB 900 140 FOR I=22768 TO 22773 150 D$=D$+CHR$(PEEK(I)) 160 NEXT I 170 ; : ; 'Printerutskrift (N) '; 180 GET A0$ 190 OPEN 'KLISTA.DAT' ASFILE 1 200 INPUT #1,A0% 210 DIM K0$(A0%),B0$(A0%),M0(A0%),B0%(A0%),S0(A0%) 220 FOR I%=1% TO A0% 230 INPUT #1,K0$(I%) 240 INPUTLINE #1,A$ : B0$(I%)=LEFT$(A$,LEN(A$)-2%) 250 INPUT #1,M0(I%),B0%(I%),S0(I%) 260 NEXT I% 270 OPEN 'KPOSTER.DAT' ASFILE 1 280 I%=1% 290 ONERRORGOTO 350 300 INPUT #1,K$(I%),D$(I%) 310 INPUTLINE #1,B$(I%) : B$(I%)=LEFT$(B$(I%),LEN(B$(I%))-2) 320 INPUT #1,P(I%) 330 I%(I%)=I% 340 I%=I%+1% : GOTO 300 350 CLOSE 1 360 GOSUB 900 : ; : ; 370 ; TAB(21)'$$$$$ Sortering P}g}r $$$$$' 380 A%=I%-1% : G%=255% 390 IF G%>A% THEN G%=G%/2 : GOTO 390 400 I0%=A%-G% 410 S%=0% 420 FOR I%=1% TO I0% : J%=I%+G% 430 IF K$(I%(J%))>K$(I%(I%)) THEN 470 440 IF K$(I%(J%))=K$(I%(I%)) AND D$(I%(J%))>=D$(I%(I%)) THEN 470 450 S%=1% 460 J0%=I%(J%) : I%(J%)=I%(I%) : I%(I%)=J0% 470 NEXT I% 480 IF S% THEN 410 490 G%=G%/2-.5 : IF G%<>0% THEN 400 500 GOSUB 900 510 IF A0$='J' OR A0$='j' THEN F%=3% ELSE F%=0% 520 OPEN 'PR:' ASFILE F% 530 IF F% ; #F%,TAB(27)'CMW-Konto Utskrift' : ; #F%,TAB(26)STRING$(20,232) : R%=R%+2% 540 GOSUB 930 550 FOR I%=1% TO A% 560 IF B$<>K$(I%(I%)) AND I%<>1% GOSUB 1040 : GOSUB 900 : IF F%=0% GOSUB 930 570 X=P(I%(I%)) : GOSUB 980 580 IF R%>=65% AND F%<>0% ; #F%,CHR$(12,13); : R%=0% : GOSUB 930 590 ; #F%,K$(I%(I%));TAB(10);D$(I%(I%));TAB(20)B$(I%(I%));TAB(67)A$ 600 R%=R%+1% 610 B$=K$(I%(I%)) : B=B+P(I%(I%)) 620 IF F% THEN 750 630 GET A$ : IF A$<>'' THEN 750 640 B=B-P(I%(I%)) 650 ; : ; 'Vill du makulera transaktionen '; : INPUT A$ 660 IF (ASC(A$) AND 223%)<>74% ; : GOTO 560 670 ; '$$$ Absolut S{ker $$$ '; : INPUT A$ 680 IF (ASC(A$) AND 223%)<>74% ; : GOTO 560 690 IF K$(I%(I%))<>'\VRF\R' AND K$(I%(I%))<>'L\N' THEN 710 700 ; : ; '**** ';K$(I%(I%))'-transaktioner f}r ej makuleras ****' : ; : GOTO 560 710 FOR J%=1% TO A0% : IF K$(I%(I%))=K0$(J%) THEN 730 720 NEXT J% 730 M0(J%)=M0(J%)+P(I%(I%)) : P(I%(I%))=0% : [%=1% 740 ; : GOTO 560 750 IF I%=A% GOSUB 1040 760 NEXT I% 770 IF [%=0% THEN 890 780 PREPARE 'KPOSTER.DAT' ASFILE 1 790 FOR I%=1% TO A% 800 ; #1,K$(I%(I%)) : ; #1,D$(I%(I%)) 810 ; #1,B$(I%(I%)) : ; #1,P(I%(I%)) 820 NEXT I% : CLOSE 1 830 PREPARE 'KLISTA.DAT' ASFILE 1 840 ; #1,A0% 850 FOR J%=1% TO A0% 860 ; #1,K0$(J%) : ; #1,B0$(J%) 870 ; #1,M0(J%) : ; #1,B0%(J%) : ; #1,S0(J%) 880 NEXT J% : CLOSE 1 890 CHAIN 'CMWKONTO' 900 IF F% THEN RETURN 910 ; CHR$(12);TAB(27)'CMW-Konto Listning' 920 ; TAB(25)CHR$(151)STRING$(20,35) : ; : RETURN 930 IF F% S0%=S0%+1% : ; #F%,'Utskriftsdatum: 'D$;TAB(71)'Sida:'S0% 940 ; #F%,'Konto:';TAB(10)'Datum:';TAB(20)'Ben{mning:';TAB(69)'Kostnad:' 950 ; #F%,'------';TAB(10)'------';TAB(20)'----------';TAB(68)'---------' 960 R%=R%+3% 970 RETURN 980 A$=NUM$(X) 990 IF X=0 A$='Makulerad' : GOTO 1030 1000 IF X=INT(X) THEN A$=A$+'.00' ELSE A$=A$+'00' 1010 A$=LEFT$(A$,INSTR(1%,A$,'.')+2) 1020 A$=SPACE$(9-LEN(A$))+A$ 1030 RETURN 1040 ; #F%,STRING$(80,95)B$;TAB(20)'TOTAL'; : X=B : GOSUB 980 1050 ; #F%,TAB(67)A$ : B=0 : R%=R%+4% 1060 IF F% ; #F% : ; #F% : RETURN 1070 ; : ; 'Tryck RETURN n{r du vill forts{tta '; 1080 GET A$ : IF A$<>CHR$(13) GOTO 1080 1090 RETURN