DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦ccf10f077⟧

    Length: 20224 (0x4f00)
    Notes: Mikados TextFile, Mikados_K
    Names: »DEBVEDL«

Derivation

└─⟦ec8c1e0b0⟧ Bits:30007442 8" floppy ( MIKPROG vol. 1-3, MIKREL vol. 1-3, PCSE 4.7.80 vol 1-3, GL.SYS )
    └─⟦this⟧ »DEBVEDL« 

Text

0100 DIM K1$(17),K2$(17),DEBNAVN$(25),DSALDO1$(12),DEBKGR$(1),UD2$(14),A$(1)
0110 DIM DSALDO2$(12),DSALDO3$(12),DSALDO4$(12),DEBLK$(1),DEBGADE$(25),N$(6)
0120 DIM T2(9),BLANK$(77),TAL4$(14),TAH$(12),DEBTLF$(9),DEBBY$(20),VTAB2(5)
0130 DIM RES$(14),ÅRKØB$(12),MDNKØB$(12),DSALDI$(12),LK$(3),KG$(3),KTN$(6)
0140 DIM PNR$(6),TY$(1),OP1$(12),OP2$(12),TA$(12),TB$(14),TÅRKØB$(12),DAT$(8)
0150 DIM DEBGADE1$(25),DEBTLF1$(9),BLB2$(12),UBLB2$(14),UD1$(14),STREG$(71)
0160 DIM UD3$(14),UD4$(14),K3$(17),K4$(17),K5$(17),K6$(17),T1(9),LAND$(9,12)
0170 PROC CALC(ART,B1,B2,ES)
0180 OP1$=B1$;OP2$=B2$;RES$=ES$;SI=0;FLAG=0
0190 CALL "P641210:REGN"
0200 ES$=RES$
0210 IF FLAG THEN STOP 
0220 ENDPROC 
0230 PROC FEJL(NR1,NR2,NR3)
0240 IF STATUS(NR3$)<>0 THEN 
0250 PRINT STATUS(NR3$),NR1,NR2,NR3$
0260 STOP 
0270 ENDIF 
0280 ENDPROC 
0290 PROC INDTAB(T,MANTAL,K10)
0300 J=MANTAL DIV 32+1
0310 FOR I=J TO MANTAL DIV 4+J-1
0320 H=(I-J)*4+1;J2=H+1;J3=H+2;J4=H+3
0330 GET K10$,I:T(H,1),T(H,2),T(J2,1),T(J2,2),T(J3,1),T(J3,2),T(J4,1),T(J4,2)
0340 EXEC FEJL(1,1,K10$)
0350 NEXT I
0360 ENDPROC 
0370 PROC UDTAB(U,MANTAL1,K9)
0380 J=MANTAL1 DIV 32+1
0390 FOR I=1 TO J-1
0400 H=(I-1)*32+1;J1=H+4;J2=H+8;J3=H+12;J4=H+16;J5=H+20;J6=H+24;J7=H+28
0410 PUT K9$,I:U(H,1),U(J1,1),U(J2,1),U(J3,1),U(J4,1),U(J5,1),U(J6,1),U(J7,1)
0420 EXEC FEJL(2,1,K9$)
0430 NEXT I
0440 FOR I=J TO MANTAL1 DIV 4+J-1
0450 H=(I-J)*4+1;J1=H+1;J2=H+2;J3=H+3
0460 PUT K9$,I:U(H,1),U(H,2),U(J1,1),U(J1,2),U(J2,1),U(J2,2),U(J3,1),U(J3,2)
0470 EXEC FEJL(2,2,K9$)
0480 NEXT I
0490 ENDPROC 
0500 PROC FINDPOST(TAB1,MANT1,NØGL1,PIL3)
0510 PIL1=MANT1 DIV 2;PIL3=PIL1;CEKS=1
0520 REPEAT 
0530 IF NØGL1=TAB1(PIL3,1) THEN 
0540 CEKS=0
0550 ELSE 
0560 IF PIL1=1 THEN PIL1=0
0570 PIL1=INT((PIL1+1)/2)
0580 IF NØGL1>TAB1(PIL3,1) THEN 
0590 PIL3=PIL3+PIL1
0600 ELSE 
0610 PIL3=PIL3-PIL1
0620 ENDIF 
0630 IF PIL3<1 THEN PIL3=1
0640 IF PIL3>MANT1 THEN PIL3=MANT1
0650 ENDIF 
0660 UNTIL CEKS=0 OR PIL1=0
0670 ENDPROC 
0680 PROC SLETDPOST(NØGLE3)
0690 EXEC FINDPOST(DTAB,MDANTAL,NØGLE3,DPIL3)
0700 IF CEKS=1 THEN STOP 
0710 DEBNR=0
0720 DEBNAVN$=BLANK$(1:25)
0730 DSALDO1$=BLANK$(1:12)
0740 DSALDO2$=BLANK$(1:12)
0750 DSALDO3$=BLANK$(1:12)
0760 DSALDO4$=BLANK$(1:12)
0770 ÅRKØB$=BLANK$(1:12)
0780 MDNKØB$=BLANK$(1:12)
0790 DEBKGR$="0"
0800 DEBPOSTNR=0
0810 DEBLK$="0"
0820 DEBGADE$=BLANK$(1:25)
0830 DEBTLF$=BLANK$(1:9)
0840 HPOST=0
0850 HKUNDE=0
0860 DEBBY$=BLANK$(1:20)
0870 EXEC GEMDPOST
0880 EXEC SLETPOST(DTAB,ADEB,NØGLE3,DPIL3)
0890 ENDPROC 
0900 PROC INDSÆT(TAB2,ANTAL2,NØGL2,PIL4)
0910 IF CEKS=1 THEN 
0920 POSTNR=TAB2(ANTAL2+1,2)
0930 IF NØGL2>TAB2(PIL4,1) AND TAB2(PIL4,1)<>1000000 THEN PIL4=PIL4+1
0940 FOR J=ANTAL2+1 TO PIL4+1 STEP -1
0950 TAB2(J,1)=TAB2(J-1,1)
0960 TAB2(J,2)=TAB2(J-1,2)
0970 NEXT J
0980 TAB2(PIL4,1)=NØGL2
0990 TAB2(PIL4,2)=POSTNR
1000 ANTAL2=ANTAL2+1
1010 ENDIF 
1020 ENDPROC 
1030 PROC SLETPOST(TAB3,ANTAL3,NØGL3,PIL5)
1040 IF CEKS=0 THEN 
1050 POSTNR=TAB3(PIL5,2)
1060 FOR I=PIL5 TO ANTAL3
1070 TAB3(I,1)=TAB3(I+1,1)
1080 TAB3(I,2)=TAB3(I+1,2)
1090 NEXT I
1100 TAB3(ANTAL3,1)=1000000
1110 TAB3(ANTAL3,2)=POSTNR
1120 ANTAL3=ANTAL3-1
1130 ENDIF 
1140 ENDPROC 
1150 PROC HENTDPOST
1160 S=DTAB(DPIL3,2)
1170 GET K3$,S:DEBNR,DEBNAVN$,DSALDO1$,DEBKGR$
1180 EXEC FEJL(8,2,K3$)
1190 IF DEBNR<>DTAB(DPIL3,1) THEN STOP 
1200 GET K3$,S+1:DSALDO2$,DSALDO3$,DSALDO4$,DEBPOSTNR,DEBLK$
1210 EXEC FEJL(8,3,K3$)
1220 GET K3$,S+2:DEBGADE$,DEBTLF$,HPOST,HKUNDE
1230 EXEC FEJL(8,4,K3$)
1240 GET K3$,S+3:DEBBY$,ÅRKØB$,MDNKØB$
1250 EXEC FEJL(8,5,K3$)
1260 ENDPROC 
1270 PROC GEMDPOST
1280 S=DTAB(DPIL3,2)
1290 PUT K3$,S:DEBNR,DEBNAVN$,DSALDO1$,DEBKGR$
1300 EXEC FEJL(9,3,K3$)
1310 PUT K3$,S+1:DSALDO2$,DSALDO3$,DSALDO4$,DEBPOSTNR,DEBLK$
1320 EXEC FEJL(9,4,K3$)
1330 PUT K3$,S+2:DEBGADE$,DEBTLF$,HPOST,HKUNDE
1340 EXEC FEJL(9,4,K3$)
1350 PUT K3$,S+3:DEBBY$,ÅRKØB$,MDNKØB$
1360 EXEC FEJL(9,5,K3$)
1370 ENDPROC 
1380 PROC DINDTAST(DSTYR,CÆND,DEBNR2)
1390 IF CÆND<>1 THEN 
1400 CLEAR 
1410 CURSOR 21,1
1420 PRINT "Kundeoplysninger"
1430 EXEC OVERSKRIFT
1440 CURSOR 2,3
1450 PRINT "1:Kundenr   :";DEBNR2
1460 ENDIF 
1470 REPEAT 
1480 CASE DSTYR OF 
1490 STOP 
1500 WHEN 2
1510 IF CÆND<>1 THEN 
1520 CURSOR 2,4
1530 PRINT "2:Navn      :"
1540 DSTYR=3
1550 ENDIF 
1560 IF CÆND<>2 THEN 
1570 CURSOR 3,23
1580 PRINT "Navn";BLANK$(1:33);"(max 25 tegn)";BLANK$(1:26)
1590 CURSOR 13,23
1600 INPUT DEBNAVN$
1610 ENDIF 
1620 CURSOR 16,4
1630 PRINT BLANK$(1:25)
1640 CURSOR 16,4
1650 PRINT DEBNAVN$
1660 WHEN 3
1670 IF CÆND<>1 THEN 
1680 CURSOR 2,5
1690 PRINT "3:Gade      :"
1700 DSTYR=4
1710 ENDIF 
1720 IF CÆND<>2 THEN 
1730 CURSOR 3,23
1740 PRINT "Gade";BLANK$(1:33);"(max 25 tegn)";BLANK$(1:26)
1750 CURSOR 13,23
1760 INPUT DEBGADE$
1770 ENDIF 
1780 CURSOR 16,5
1790 PRINT BLANK$(1:25)
1800 CURSOR 16,5
1810 PRINT DEBGADE$
1820 WHEN 4
1830 IF CÆND<>1 THEN 
1840 CURSOR 2,6
1850 PRINT "4:Postnr    :"
1860 DSTYR=5
1870 ENDIF 
1880 IF CÆND<>2 THEN 
1890 REPEAT 
1900 CURSOR 3,23
1910 PRINT "Postnr";BLANK$(1:12);"(max 6 tegn)";BLANK$(1:45)
1920 CURSOR 13,23
1930 INPUT PNR$
1940 EXEC NRTEST(PNR$)
1950 UNTIL ((L>3 AND L<7) OR (P=-1 AND CÆND=1)) AND TEST2=0
1960 IF P<>-1 THEN DEBPOSTNR=P
1970 ENDIF 
1980 CURSOR 16,6
1990 PRINT BLANK$(1:6)
2000 CURSOR 16,6
2010 PRINT DEBPOSTNR
2020 WHEN 5
2030 IF CÆND<>1 THEN 
2040 CURSOR 2,7
2050 PRINT "5:By        :"
2060 DSTYR=6
2070 ENDIF 
2080 IF CÆND<>2 THEN 
2090 CURSOR 3,23
2100 PRINT "By";BLANK$(1:30);"(max 20 tegn)";BLANK$(1:31)
2110 CURSOR 13,23
2120 INPUT DEBBY$
2130 ENDIF 
2140 CURSOR 16,7
2150 PRINT BLANK$(1:20)
2160 CURSOR 16,7
2170 PRINT DEBBY$
2180 WHEN 6
2190 IF CÆND<>1 THEN 
2200 CURSOR 2,8
2210 PRINT "6:Landekode :     Land:"
2220 DSTYR=7
2230 ENDIF 
2240 IF CÆND<>2 THEN 
2250 REPEAT 
2260 CURSOR 3,23
2270 PRINT "Landekode";BLANK$(1:9);"0:for Danmark,max 2 cifre)";BLANK$(1:30)
2280 CURSOR 13,23
2290 INPUT LK$
2300 EXEC NRTEST(LK$)
2310 UNTIL (P>-1 AND P<10 AND TEST2=0) OR (P=-1 AND CÆND=1)
2320 ENDIF 
2330 CURSOR 16,8
2340 PRINT BLANK$(1:3)
2350 CURSOR 27,8
2360 PRINT BLANK$(1:15)
2370 CURSOR 16,8
2380 IF P<10 AND CÆND<>2 THEN 
2390 DEBLK$=CHR(P+48)
2400 ENDIF 
2410 P=ORD(DEBLK$)-48
2420 PRINT USING "###":P
2430 CURSOR 27,8
2440 IF P=0 THEN 
2450 PRINT "Danmark"
2460 ELSE 
2470 PRINT LAND$(P)
2480 ENDIF 
2490 WHEN 7
2500 IF CÆND<>1 THEN 
2510 CURSOR 2,9
2520 PRINT "7:Telefon   :"
2530 DSTYR=8
2540 ENDIF 
2550 IF CÆND<>2 THEN 
2560 CURSOR 3,23
2570 PRINT "Telefon";BLANK$(1:14);"(max 9 tegn)";BLANK$(1:44)
2580 CURSOR 13,23
2590 INPUT DEBTLF$
2600 ENDIF 
2610 CURSOR 16,9
2620 PRINT BLANK$(1:9)
2630 CURSOR 16,9
2640 PRINT DEBTLF$
2650 WHEN 8
2660 IF CÆND<>1 THEN 
2670 CURSOR 2,10
2680 PRINT "8:Kundegr   :"
2690 DSTYR=9
2700 ELSE 
2710 IF TYPE=2 THEN 
2720 EXEC KSØG(DEBNR2,ORD(DEBKGR$)-48)
2730 EXEC KINDSLET(0)
2740 ENDIF 
2750 ENDIF 
2760 IF CÆND<>2 THEN 
2770 REPEAT 
2780 CURSOR 3,23
2790 PRINT "Kundegr        (max 2 cifre)";BLANK$(1:49)
2800 CURSOR 13,23
2810 INPUT KG$
2820 EXEC NRTEST(KG$)
2830 UNTIL (P>0 AND TEST2=0 AND P<=MKGR) OR (P=-1 AND CÆND=1)
2840 ENDIF 
2850 CURSOR 16,10
2860 IF P>0 AND CÆND<>2 THEN 
2870 DEBKGR$=CHR(P+48)
2880 ENDIF 
2890 PRINT USING "###":INT(ORD(DEBKGR$)-48)
2900 IF CÆND=1 AND TYPE=2 THEN 
2910 EXEC KSØG(DEBNR2,ORD(DEBKGR$)-48)
2920 EXEC KINDSLET(1)
2930 ENDIF 
2940 ENDCASE 
2950 IF CÆND=1 THEN 
2960 DSTYR=9
2970 ENDIF 
2980 UNTIL DSTYR=9
2990 IF CÆND<>1 THEN 
3000 EXEC CALC(0,DSALDO1$,DSALDO2$,DSALDI$)
3010 EXEC CALC(0,DSALDI$,DSALDO3$,DSALDI$)
3020 EXEC CALC(0,DSALDI$,DSALDO4$,DSALDI$)
3030 CURSOR 4,12
3040 PRINT "Saldo      :"
3050 CURSOR 17,12
3060 EXEC TUD(DSALDI$,TAL4$,1,0)
3070 PRINT TAL4$
3080 CURSOR 4,14
3090 PRINT " 0-30 Dage :"
3100 CURSOR 17,14
3110 EXEC TUD(DSALDO1$,TAL4$,1,0)
3120 PRINT TAL4$
3130 CURSOR 4,16
3140 PRINT "30-60 Dage :"
3150 CURSOR 17,16
3160 EXEC TUD(DSALDO2$,TAL4$,1,0)
3170 PRINT TAL4$
3180 CURSOR 4,18
3190 PRINT "60-90 Dage :"
3200 CURSOR 17,18
3210 EXEC TUD(DSALDO3$,TAL4$,1,0)
3220 PRINT TAL4$
3230 CURSOR 4,20
3240 PRINT "Ældre      :"
3250 CURSOR 17,20
3260 EXEC TUD(DSALDO4$,TAL4$,1,0)
3270 PRINT TAL4$
3280 CURSOR 44,12
3290 PRINT "Månedens køb :"
3300 CURSOR 59,12
3310 EXEC TUD(MDNKØB$,TAL4$,1,0)
3320 PRINT TAL4$
3330 CURSOR 44,14
3340 PRINT "Årets køb    :"
3350 CURSOR 59,14
3360 TÅRKØB$=ÅRKØB$
3370 EXEC TUD(TÅRKØB$,TAL4$,1,0)
3380 PRINT TAL4$
3390 ENDIF 
3400 ENDPROC 
3410 PROC TUD(BLB1,UBLB1,TEGN,STØR)
3420 BLB2$=BLB1$;UBLB2$=UBLB1$
3430 EXEC CALC(5,BLB2$,TAH$,UBLB2$)
3440 UBLB1$=UBLB2$
3450 IF TEGN=0 THEN 
3460 UBLB1$=UBLB1$(1:13)
3470 ELSE 
3480 IF TEGN=1 AND UBLB1$(LEN(UBLB1$))="+" THEN 
3490 UBLB1$(LEN(UBLB1$))=" "
3500 ENDIF 
3510 ENDIF 
3520 IF STØR=1 THEN 
3530 UBLB1$=UBLB1$(4:LEN(UBLB1$)-3)
3540 ENDIF 
3550 ENDPROC 
3560 PROC KINDSLET(AR1)
3570 IF FUN+AR1=0 THEN 
3580 IF SPIL1=0 THEN 
3590 KARRAY(ORD(DEBKGR$)-48)=HKUNDE
3600 ELSE 
3610 HKUNDE1=HKUNDE
3620 ENDIF 
3630 ELSE 
3640 IF FUN+AR1=2 THEN 
3650 HKUNDE=SPIL2
3660 IF SPIL1=0 THEN 
3670 KARRAY(ORD(DEBKGR$)-48)=DEBNR
3680 ELSE 
3690 HKUNDE1=DEBNR
3700 ENDIF 
3710 ELSE 
3720 STOP 
3730 ENDIF 
3740 ENDIF 
3750 IF (FUN+AR1=0 OR FUN+AR1=2) AND SPIL1<>0 THEN 
3760 PUT K3$,DTAB(DPIL3,2)+2:DEBGADE1$,DEBTLF1$,HPOST1,HKUNDE1
3770 EXEC FEJL(11,2,K3$)
3780 ENDIF 
3790 ENDPROC 
3800 PROC KSØG(NØGLE,KGR)
3810 FUN=1;SPIL1=0;SPIL2=KARRAY(KGR)
3820 IF SPIL2<NØGLE AND SPIL2>0 THEN 
3830 REPEAT 
3840 SPIL1=SPIL2
3850 EXEC FINDPOST(DTAB,MDANTAL,SPIL1,DPIL3)
3860 IF CEKS=1 THEN STOP 
3870 GET K3$,DTAB(DPIL3,2)+2:DEBGADE1$,DEBTLF1$,HPOST1,HKUNDE1
3880 EXEC FEJL(10,2,K3$)
3890 SPIL2=HKUNDE1
3900 UNTIL SPIL2=>NØGLE OR SPIL2=0
3910 ENDIF 
3920 IF SPIL2=NØGLE THEN FUN=0
3930 ENDPROC 
3940 PROC KPUT
3950 OPEN K4$,W
3960 EXEC FEJL(12,1,K4$)
3970 FOR I=1 TO MKGR DIV 5
3980 J=(I-1)*5+1
3990 PUT K4$,I:KARRAY(J),KARRAY(J+1),KARRAY(J+2),KARRAY(J+3),KARRAY(J+4)
4000 EXEC FEJL(12,2,K4$)
4010 NEXT I
4020 CLOSE K4$
4030 EXEC FEJL(12,3,K4$)
4040 ENDPROC 
4050 PROC NRTEST(NUM1)
4060 P=0;TEST2=0;KTAL=0;L=LEN(NUM1$)
4070 CASE L OF 
4080 FOR I=1 TO L
4090 P1=INT(ORD(NUM1$(I))-48)
4100 IF P1=>0 AND P1<=9 THEN 
4110 P=P*10+P1
4120 ELSE 
4130 TEST2=1
4140 ENDIF 
4150 NEXT I
4160 KTAL=P DIV 10000
4170 WHEN 0
4180 P=-1
4190 WHEN 1
4200 CASE NUM1$ OF 
4210 P=INT(ORD(NUM1$)-48)
4220 WHEN "J","j"
4230 P=-7
4240 WHEN "N","n"
4250 P=-8
4260 ENDCASE 
4270 ENDCASE 
4280 ENDPROC 
4290 PROC OVERSKRIFT
4300 CURSOR 45,1
4310 CASE TYPE OF 
4320 WHEN 1
4330 PRINT "Oprettelse"
4340 WHEN 2
4350 PRINT "Ændring"
4360 WHEN 3
4370 PRINT "Sletning"
4380 WHEN 4
4390 PRINT "Udskrift"
4400 WHEN 5
4410 PRINT "Kundekontoliste"
4420 ENDCASE 
4430 ENDPROC 
4440 K1$="P641220:SYSTEM1"
4450 OPEN K1$,R
4460 EXEC FEJL(9,1,K1$)
4470 GET K1$,1:MFANTAL,MDANTAL
4480 EXEC FEJL(9,2,K1$)
4490 GET K1$,4:MKRMID,MFAK,MVGR,MKGR
4500 EXEC FEJL(9,3,K1$)
4510 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL
4520 EXEC FEJL(9,4,K1$)
4530 GET K1$,10:N$
4540 EXEC FEJL(9,5,K1$)
4550 GET K1$,12:K2$
4560 EXEC FEJL(9,6,K1$)
4570 GET K1$,16:K3$
4580 EXEC FEJL(9,7,K1$)
4590 GET K1$,35:K4$
4600 EXEC FEJL(9,8,K1$)
4610 GET K1$,36:K5$
4620 EXEC FEJL(9,9,K1$)
4630 CLOSE K1$
4640 EXEC FEJL(9,10,K1$)
4650 DIM DTAB(MDANTAL,2),KARRAY(MKGR)
4660 K5$=N$+K5$
4670 OPEN K5$,W
4680 EXEC FEJL(9,11,K5$)
4690 GET K5$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),DATO
4700 EXEC FEJL(9,12,K5$)
4710 FOR I=1 TO 3
4720 J=(I-1)*3+1
4730 GET K5$,I+2:LAND$(J),LAND$(J+1),LAND$(J+2)
4740 EXEC FEJL(9,13,K5$)
4750 NEXT I
4760 GET K5$,14:AFIN,ADEB,AKRE,VTAB2(1),VTAB2(2),VTAB2(3),VTAB2(4),VTAB2(5)
4770 EXEC FEJL(9,14,K5$)
4780 GET K5$,17:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
4790 EXEC FEJL(9,15,K5$)
4800 T2(3)=1
4810 PUT K5$,17:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
4820 EXEC FEJL(9,16,K5$)
4830 CLOSE K5$
4840 EXEC FEJL(9,17,K5$)
4850 K3$=N$+K3$
4860 OPEN K3$,W
4870 EXEC FEJL(9,18,K3$)
4880 K2$=N$+K2$
4890 OPEN K2$,W
4900 EXEC FEJL(9,19,K2$)
4910 EXEC INDTAB(DTAB,MDANTAL,K2$)
4920 K4$=N$+K4$
4930 OPEN K4$,R
4940 EXEC FEJL(9,10,K4$)
4950 FOR I=1 TO MKGR DIV 5
4960 J=(I-1)*5+1
4970 GET K4$,I:KARRAY(J),KARRAY(J+1),KARRAY(J+2),KARRAY(J+3),KARRAY(J+4)
4980 EXEC FEJL(9,11,K4$)
4990 NEXT I
5000 CLOSE K4$
5010 EXEC FEJL(9,12,K4$)
5020 BLANK$="                                      ";BLANK$=BLANK$+BLANK$+" "
5030 TAH$="0+";TAL4$="0+"
5040 STREG$="-----------------------------------";STREG$=STREG$+STREG$
5050 REPEAT 
5060 CLEAR 
5070 CURSOR 21,1
5080 PRINT "Kundevedligeholdelse"
5090 CURSOR 2,3
5100 PRINT "0:Færdig"
5110 CURSOR 2,5
5120 PRINT "1:Oprettelse"
5130 CURSOR 2,7
5140 PRINT "2:Ændring"
5150 CURSOR 2,9
5160 PRINT "3:Sletning"
5170 CURSOR 2,11
5180 PRINT "4:Udskrift"
5190 CURSOR 2,13
5200 PRINT "5:Kundekontoliste"
5210 REPEAT 
5220 CURSOR 4,15
5230 PRINT "Vælg type     (0-5)"
5240 CURSOR 14,15
5250 INPUT TY$
5260 EXEC NRTEST(TY$)
5270 UNTIL P>-1 AND P<6
5280 TYPE=P
5290 IF TYPE=0 THEN EXIT 
5300 REPEAT 
5310 EXEC OVERSKRIFT
5320 TEST=0;KONT=1
5330 IF TYPE<5 THEN 
5340 REPEAT 
5350 REPEAT 
5360 CURSOR 3,23
5370 PRINT "Indtast nyt kundenr        (0:for færdig)";BLANK$(1:35)
5380 CURSOR 22,23
5390 INPUT KTN$
5400 EXEC NRTEST(KTN$)
5410 UNTIL (TEST2=0 AND KTAL=DTAL AND DTAL*10000+MKGR<P) OR P=0
5420 KONT=P
5430 IF KONT=0 THEN EXIT 
5440 EXEC FINDPOST(DTAB,MDANTAL,P,DPIL3)
5450 REPEAT 
5460 CURSOR 44,23
5470 IF (CEKS=0 AND TYPE<>1) OR (CEKS=1 AND TYPE=1 AND ADEB<MDANTAL) THEN 
5480 PRINT BLANK$(1:35)
5490 P=-1
5500 ELSE 
5510 IF CEKS=1 AND TYPE=1 AND ADEB=>MDANTAL THEN 
5520 CURSOR 3,23
5530 INPUT "Ikke plads til flere kunder,tast RETURN                      ",A$
5540 ELSE 
5550 IF CEKS=0 THEN 
5560 INPUT "Kunde eksisterer , tast RETURN     ",A$
5570 ELSE 
5580 INPUT "Kunde eksisterer ikke , tast RETURN",A$
5590 ENDIF 
5600 ENDIF 
5610 EXEC NRTEST(A$)
5620 ENDIF 
5630 UNTIL P=-1
5640 UNTIL (CEKS=0 AND TYPE<>1) OR (CEKS=1 AND TYPE=1 AND ADEB<MDANTAL)
5650 IF KONT=0 THEN EXIT 
5660 IF TYPE<>1 THEN 
5670 FNR=KONT
5680 EXEC HENTDPOST
5690 IF TYPE=3 THEN EXEC SALDOTEST
5700 IF TEST<>0 THEN EXIT 
5710 EXEC DINDTAST(2,2,FNR)
5720 ELSE 
5730 DEBNR=KONT
5740 DEBNAVN$=BLANK$(1:25)
5750 DSALDO1$="0+"
5760 DSALDO2$="0+"
5770 DSALDO3$="0+"
5780 DSALDO4$="0+"
5790 MDNKØB$="0+"
5800 ÅRKØB$="0+"
5810 DEBGADE$=BLANK$(1:25)
5820 DEBTLF$=BLANK$(1:9)
5830 HPOST=0
5840 HKUNDE=0
5850 DEBPOSTNR=0
5860 DEBLK$="0"
5870 DEBKGR$="0"
5880 DEBBY$=BLANK$(1:20)
5890 EXEC DINDTAST(2,0,DEBNR)
5900 ENDIF 
5910 ENDIF 
5920 IF KONT=0 THEN EXIT 
5930 IF TEST=0 THEN 
5940 CASE TYPE OF 
5950 STOP 
5960 WHEN 1,2
5970 REPEAT 
5980 REPEAT 
5990 CURSOR 3,23
6000 PRINT "Hvilket felt ønskes ændret       (Indtast feltnr 2-8,";
6010 PRINT "0:for færdig)          "
6020 CURSOR 32,23
6030 INPUT LK$
6040 EXEC NRTEST(LK$)
6050 UNTIL P=0 OR (P>1 AND P<9)
6060 STYR1=P
6070 IF STYR1=0 THEN EXIT 
6080 EXEC DINDTAST(STYR1,1,DEBNR)
6090 UNTIL STYR1=0
6100 IF TYPE=1 THEN 
6110 EXEC KSØG(DEBNR,ORD(DEBKGR$)-48)
6120 EXEC KINDSLET(1)
6130 EXEC FINDPOST(DTAB,MDANTAL,DEBNR,DPIL3)
6140 EXEC INDSÆT(DTAB,ADEB,DEBNR,DPIL3)
6150 EXEC GEMDPOST
6160 ELSE 
6170 EXEC FINDPOST(DTAB,MDANTAL,DEBNR,DPIL3)
6180 EXEC GEMDPOST
6190 ENDIF 
6200 WHEN 3
6210 REPEAT 
6220 CURSOR 3,23
6230 PRINT "Er det rigtigt at denne konto skal slettes";
6240 PRINT "       (J/N)";BLANK$(1:23)
6250 CURSOR 48,23
6260 INPUT A$
6270 EXEC NRTEST(A$)
6280 UNTIL P=-7 OR P=-8
6290 IF P=-7 THEN 
6300 EXEC KSØG(DEBNR,ORD(DEBKGR$)-48)
6310 EXEC KINDSLET(0)
6320 EXEC SLETDPOST(DEBNR)
6330 ENDIF 
6340 WHEN 4
6350 WHEN 5
6360 REPEAT 
6370 REPEAT 
6380 CURSOR 3,23
6390 PRINT "Fra kundenr        (0: Alle)"
6400 CURSOR 15,23
6410 INPUT KTN$
6420 EXEC NRTEST(KTN$)
6430 UNTIL L=5 AND P>9999 AND TEST2=0 OR P=0
6440 IF P=0 THEN 
6450 FRA=1;TIL=ADEB
6460 ELSE 
6470 KONT=P
6480 EXEC FINDPOST(DTAB,MDANTAL,P,DPIL3)
6490 FRA=DPIL3
6500 ENDIF 
6510 UNTIL FRA<=ADEB
6520 IF P>0 THEN 
6530 REPEAT 
6540 CURSOR 3,23
6550 PRINT "Til kundenr                  "
6560 CURSOR 15,23
6570 INPUT KTN$
6580 EXEC NRTEST(KTN$)
6590 UNTIL L=5 AND P>9999 AND TEST2=0 AND P=>KONT
6600 EXEC FINDPOST(DTAB,MDANTAL,P,DPIL3)
6610 IF CEKS=1 THEN DPIL3=DPIL3-1
6620 TIL=DPIL3
6630 ENDIF 
6640 CLEAR 
6650 REPEAT 
6660 CURSOR 8,13
6670 INPUT "Monter papir til udskrift af kundekontoliste og tast RETURN",A$
6680 UNTIL ORD(A$)=255
6690 OUTPUT P
6700 SIDE=1;DA1=DATO;DAT$="        "
6710 FOR J=8 TO 1 STEP -1
6720 IF J MOD 3=0 THEN 
6730 DAT$(J)="."
6740 ELSE 
6750 DAT$(J)=CHR(DA1 MOD 10+48);DA1=DA1 DIV 10
6760 ENDIF 
6770 NEXT J
6780 FOR I=FRA TO TIL STEP 4
6790 PRINT TAB(10);CHR(14);"Kundekontoliste";CHR(15);TAB(38);"Dato : ";DAT$;
6800 PRINT USING "   Side :####":SIDE
6810 PRINT " "
6820 SIDE=SIDE+1
6830 FOR DPIL3=I TO I+3
6840 IF DTAB(DPIL3,1)>0 THEN 
6850 EXEC HENTDPOST
6860 EXEC TUD(MDNKØB$,UD1$,1,0)
6870 TÅRKØB$=ÅRKØB$
6880 EXEC TUD(TÅRKØB$,UD2$,1,0)
6890 PRINT TAB(9);STREG$
6900 PRINT TAB(9);"NAVN OG ADRESSE";TAB(39);"MÅNEDENS KØB      ÅRETS KØB  H";
6910 PRINT "KUNDE HPOST"
6920 PRINT " "
6930 PRINT USING "######  ":DEBNR;
6940 PRINT DEBNAVN$;TAB(38);UD1$;" ";UD2$;
6950 PRINT USING "###### ######":HKUNDE,HPOST
6960 PRINT TAB(9);DEBGADE$;" "
6970 PRINT USING "       ####### ":DEBPOSTNR;
6980 PRINT DEBBY$;TAB(39);
6990 DLK=ORD(DEBLK$)-48;DKGR=ORD(DEBKGR$)-48
7000 PRINT USING "LANDEKODE:###    KUNDEGRUPPE:###":DLK,DKGR
7010 PRINT " "
7020 PRINT TAB(9);"TLF";TAB(23);"0-30 DAGE     30-60 DAGE     60-90 DAGE";
7030 PRINT "        ÆLDRE"
7040 PRINT " "
7050 EXEC TUD(DSALDO1$,UD1$,1,0)
7060 EXEC TUD(DSALDO2$,UD2$,1,0)
7070 EXEC TUD(DSALDO3$,UD3$,1,0)
7080 EXEC TUD(DSALDO4$,UD4$,1,0)
7090 PRINT TAB(9);DEBTLF$;TAB(19);UD1$;" ";UD2$;" ";UD3$;" ";UD4$
7100 PRINT " "
7110 ENDIF 
7120 IF DPIL3=TIL THEN EXIT 
7130 NEXT DPIL3
7140 PRINT CHR(10)
7150 IF DPIL3=TIL THEN EXIT 
7160 NEXT I
7170 FOR J=DPIL3+1 TO I+3
7180 PRINT CHR(10)
7190 PRINT CHR(10)
7200 PRINT CHR(10)
7210 PRINT CHR(10)
7220 PRINT CHR(10)
7230 PRINT " "
7240 NEXT J
7250 OUTPUT T
7260 KONT=0
7270 ENDCASE 
7280 ELSE 
7290 REPEAT 
7300 CURSOR 3,23
7310 PRINT "Denne konto kan ikke slettes, da saldoen ikke er udlignet,";
7320 PRINT " tryk RETURN      "
7330 INPUT A$
7340 EXEC NRTEST(A$)
7350 UNTIL P=-1
7360 ENDIF 
7370 UNTIL KONT=0
7380 UNTIL TYPE=0
7390 EXEC KPUT
7400 EXEC UDTAB(DTAB,MDANTAL,K2$)
7410 CLOSE K2$
7420 EXEC FEJL(9,20,K2$)
7430 CLOSE K3$
7440 EXEC FEJL(9,21,K3$)
7450 T2(3)=0
7460 OPEN K5$,W
7470 EXEC FEJL(9,22,K5$)
7480 PUT K5$,14:AFIN,ADEB,AKRE,VTAB2(1),VTAB2(2),VTAB2(3),VTAB2(4),VTAB2(5)
7490 EXEC FEJL(9,23,K5$)
7500 PUT K5$,17:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
7510 EXEC FEJL(9,24,K5$)
7520 CLOSE K5$
7530 EXEC FEJL(9,25,K5$)
7540 CHAIN "P641210:OPSTART"
7550 PROC SALDOTEST
7560 EXEC CALC(4,DSALDO1$,TAH$,TAH$)
7570 IF SI=0 THEN 
7580 EXEC CALC(4,DSALDO2$,TAH$,TAH$)
7590 IF SI=0 THEN 
7600 EXEC CALC(4,DSALDO3$,TAH$,TAH$)
7610 IF SI=0 THEN 
7620 EXEC CALC(4,DSALDO4$,TAH$,TAH$)
7630 IF SI<>0 THEN TEST=1
7640 ELSE 
7650 TEST=1
7660 ENDIF 
7670 ELSE 
7680 TEST=1
7690 ENDIF 
7700 ELSE 
7710 TEST=1
7720 ENDIF 
7730 ENDPROC