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

⟦c73792e5d⟧ SPC/1-COMAL-BIN

    Length: 9670 (0x25c6)
    Types: SPC/1-COMAL-BIN
    Notes: Mikados_B
    Names: »DEBLIST.B«

Derivation

└─⟦385f097a1⟧ Bits:30008988 SPC/1 COMAL programmer til bogføring
    └─⟦this⟧ »DEBLIST.B« 
└─⟦ff7f7aeee⟧ Bits:30009007 NBT	15/3-84
    └─⟦this⟧ »DEBLIST.B« 

SPC/1 COMAL-BIN

0090 REM DEBLIST
0100 DIM K1$(17),N$(6),K2$(17),K3$(17),DEBNAVN$(25),DSALDO1$(12),DEBKGR$(2)
0110 DIM DSALDO2$(12),DSALDO3$(12),DSALDO4$(12),DEBLK$(2),DEBGADE$(25)
0120 DIM BLANK$(77),A$(1),TAL4$(14),TAH$(12),T1(9),DEBTLF$(9),DEBBY$(20)
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),DV$(10)
0150 DIM SUM$(12),SUM1$(12),SUM2$(12),SUM3$(12),SUM4$(12),SUM5$(12),SUM6$(12)
0160 DIM TAL1$(14),TAL2$(14),TAL3$(14),KS$(5),DAT$(8),STREG$(78),K4$(17)
0170 DIM K5$(17),LAND$(9,12)
0175 TALLET=0
0180 PROC CALC(ART,B1,B2,ES)
0190 OP1$=B1$
0200 OP2$=B2$
0210 RES$=ES$
0220 SI=0
0230 FLAG=0
0240 CALL "P641210:REGN"
0250 ES$=RES$
0260 IF FLAG THEN STOP
0270 ENDPROC
0280 PROC FEJL(NR1,NR2,NR3)
0290 IF STATUS(NR3$)<>0 THEN
0300 PRINT STATUS(NR3$),NR1,NR2,NR3$
0310 STOP
0320 ENDIF
0330 ENDPROC
0340 PROC INDTAB(T,MANTAL,L10)
0350 J=MANTAL DIV 32+1
0360 FOR I=J TO MANTAL DIV 4+J-1
0370 H=(I-J)*4+1;H1=H+1;H2=H+2;H3=H+3
0380 GET L10$,I:T(H,1),T(H,2),T(H1,1),T(H1,2),T(H2,1),T(H2,2),T(H3,1),T(H3,2)
0390 EXEC FEJL(1,1,L10$)
0400 NEXT I
0410 ENDPROC
0420 PROC HENTDPOST
0430 S=DTAB(DPIL3,2)
0440 GET K3$,S:DEBNR,DEBNAVN$,DSALDO1$,DEBKGR$
0450 EXEC FEJL(8,2,K3$)
0460 GET K3$,S+1:DSALDO2$,DSALDO3$,DSALDO4$,DPOSTNR,DEBLK$
0470 EXEC FEJL(8,3,K3$)
0480 GET K3$,S+2:DEBGADE$,DEBTLF$,HPOST,HKUNDE
0490 EXEC FEJL(8,4,K3$)
0500 GET K3$,S+3:DEBBY$,ÅRKØB$,MDNKØB$
0510 EXEC FEJL(8,5,K3$)
0520 ENDPROC
0530 PROC TUD(BLB,UBLB,TEGN,STØR)
0540 EXEC CALC(5,BLB$,TAH$,UBLB$)
0550 IF TEGN=0 THEN
0560 UBLB$=UBLB$(1:13)
0570 ELSE
0580 IF TEGN=1 AND UBLB$(LEN(UBLB$))="+" THEN
0590 UBLB$(LEN(UBLB$))=" "
0600 ENDIF
0610 ENDIF
0620 IF STØR=1 THEN UBLB$=UBLB$(4:LEN(UBLB$)-3)
0630 ENDPROC
0640 PROC HOVED(GR)
0650 LINIE=LINIE+1
0660 IF LINIE MOD (13*(1+2*(TYPE=2)))=1 THEN
0670 IF LINIE<>1 THEN PRINT CHR(10);CHR(10)
0680 IF LINIE<>1 AND TYPE=2 THEN PRINT " "
0690 SIDENR=SIDENR+1
0700 PRINT TAB(64);DV$;" "
0710 PRINT CHR(14);"    Debitor"+KS$+"liste";CHR(15);TAB(25);
0720 IF GR>0 THEN
0730 PRINT USING "Gruppe:###":GR;
0740 ENDIF
0750 PRINT TAB(37);"Dato: ";DAT$;
0760 PRINT USING " Side:###":SIDENR
0770 PRINT " "
0780 IF TYPE=2 THEN
0790 PRINT " KONTO  NAVN";TAB(37);"POSTNR  BY";TAB(67);"TLF"
0800 PRINT STREG$
0810 ELSE
0820 PRINT " KONTO   TLF";TAB(28);"SALDO IALT";TAB(44);"0-30 DAGE";
0830 PRINT TAB(56);"60-90 DAGE MÅNEDENS KØB"
0840 PRINT " NAVN";TAB(43);"30-60 DAGE    ÆLDRE      ÅRETS KØB"
0850 PRINT STREG$
0860 ENDIF
0870 ENDIF
0880 ENDPROC
0890 PROC BUND
0900 FOR LINIE=LINIE+1 TO 13*(1+2*(TYPE=2))*SIDENR
0910 IF TYPE=1 THEN
0920 PRINT CHR(10);CHR(10)
0930 ELSE
0940 PRINT " "
0950 ENDIF
0960 NEXT LINIE
0970 IF TYPE=1 THEN
0980 EXEC TUD(SUM$,TAL1$,1,0)
0990 EXEC TUD(SUM1$,TAL2$,1,0)
1000 EXEC TUD(SUM3$,TAL3$,1,0)
1010 EXEC TUD(SUM5$,TAL4$,1,0)
1020 PRINT TAB(10);CHR(14);"Total";CHR(15);TAB(21);TAL1$,TAB(35);TAL2$;
1030 PRINT TAB(49);TAL3$;TAB(63);TAL4$
1040 EXEC TUD(SUM2$,TAL1$,1,0)
1050 EXEC TUD(SUM4$,TAL2$,1,0)
1060 EXEC TUD(SUM6$,TAL3$,1,0)
1070 PRINT TAB(38);TAL1$;TAB(52);TAL2$;TAB(66);TAL3$
1090 ELSE
1100 PRINT CHR(10);CHR(10);CHR(10)
1120 ENDIF
1130 ENDPROC
1140 PROC UDSKRIV
1150 CASE TYPE OF
1160 WHEN 1
1170 EXEC CALC(0,DSALDO1$,DSALDO2$,DSALDI$)
1180 EXEC CALC(0,DSALDI$,DSALDO3$,DSALDI$)
1190 EXEC CALC(0,DSALDI$,DSALDO4$,DSALDI$)
1200 EXEC CALC(0,SUM$,DSALDI$,SUM$)
1210 EXEC CALC(0,SUM1$,DSALDO1$,SUM1$)
1220 EXEC CALC(0,SUM2$,DSALDO2$,SUM2$)
1230 EXEC CALC(0,SUM3$,DSALDO3$,SUM3$)
1240 EXEC CALC(0,SUM4$,DSALDO4$,SUM4$)
1250 EXEC CALC(0,SUM5$,MDNKØB$,SUM5$)
1260 TÅRKØB$=ÅRKØB$
1270 EXEC CALC(0,SUM6$,TÅRKØB$,SUM6$)
1280 EXEC TUD(DSALDI$,TAL1$,1,0)
1290 EXEC TUD(DSALDO1$,TAL2$,1,0)
1300 EXEC TUD(DSALDO3$,TAL3$,1,0)
1310 EXEC TUD(MDNKØB$,TAL4$,1,0)
1320 PRINT USING "######   ":DEBNR;
1330 PRINT DEBTLF$;
1340 PRINT TAB(24);TAL1$;TAB(38);TAL2$;TAB(52);TAL3$;TAB(65);TAL4$
1350 EXEC TUD(DSALDO2$,TAL1$,1,0)
1360 EXEC TUD(DSALDO4$,TAL2$,1,0)
1370 EXEC TUD(TÅRKØB$,TAL3$,1,0)
1380 PRINT " ";DEBNAVN$;TAB(38);TAL1$;TAB(52);TAL2$;TAB(65);TAL3$
1390 PRINT " "
1400 WHEN 2
1410 PRINT USING "######  ":DEBNR;
1420 PRINT DEBNAVN$;TAB(34);
1430 PRINT USING "#######    ":DPOSTNR;
1440 PRINT DEBBY$;TAB(67);DEBTLF$
1450 WHEN 3
1451 J=0
1452 REPEAT
1460 FOR I=1 TO 4
1470 PRINT " "
1480 NEXT I
1490 PRINT USING "######   ":DEBNR;
1500 PRINT DEBNAVN$;" "
1510 PRINT " "
1520 PRINT TAB(10);DEBGADE$;" "
1530 PRINT " "
1540 PRINT TAB(7);
1550 PRINT USING "########  ":DPOSTNR;
1560 PRINT DEBBY$;" "
1570 IF DEBLK$>"0" AND DEBLK$<="9" THEN
1580 PRINT " "
1590 PRINT TAB(9);LAND$(ORD(DEBLK$)-48)
1600 ELSE
1610 PRINT CHR(10);CHR(10)
1620 ENDIF
1630 PRINT CHR(10);CHR(10);CHR(10);CHR(10);CHR(10)
1635 J=J+1
1636 UNTIL J=TALLET
1640 ENDCASE
1650 ENDPROC
1660 PROC FINDPOST(TAB1,MANT1,NØGL1,PIL3)
1670 PIL1=MANT1 DIV 2;PIL3=PIL1;CEKS=1
1680 REPEAT
1690 IF NØGL1=TAB1(PIL3,1) OR PIL1=1 THEN EXIT
1700 PIL1=(PIL1+1) DIV 2;PIL3=PIL3+PIL1*(1-2*(NØGL1<TAB1(PIL3,1)))
1710 IF PIL3<1 THEN PIL3=1
1720 IF PIL3>MANT1 THEN PIL3=MANT1
1730 UNTIL PIL1=0
1740 IF NØGL1=TAB1(PIL3,1) THEN CEKS=0
1750 ENDPROC
1760 PROC NRTEST(NUM)
1770 P=0;TEST2=0;KTAL=0;L=LEN(NUM$)
1780 CASE L OF
1790 FOR J=1 TO L
1800 P1=INT(ORD(NUM$(J))-48)
1810 IF P1=>0 AND P1<=9 THEN
1820 P=P*10+P1
1830 ELSE
1840 TEST2=1
1850 ENDIF
1860 NEXT J
1870 KTAL=P DIV 10000
1880 WHEN 0
1890 P=-1
1900 WHEN 1
1910 CASE NUM$ OF
1920 P=INT(ORD(NUM$)-48)
1930 WHEN "j","J"
1940 P=-7
1950 WHEN "n","N"
1960 P=-8
1970 ENDCASE
1980 ENDCASE
1990 ENDPROC
2000 K1$="P641220:SYSTEM1"
2010 OPEN K1$,R
2020 EXEC FEJL(9,1,K1$)
2030 GET K1$,1:MFANTAL,MDANTAL
2040 EXEC FEJL(9,2,K1$)
2050 GET K1$,4:MKPOST,MFAK,MVGR,MKGR
2060 EXEC FEJL(9,3,K1$)
2070 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL
2080 EXEC FEJL(9,4,K1$)
2090 GET K1$,10:N$
2100 EXEC FEJL(9,5,K1$)
2110 GET K1$,12:K2$
2120 EXEC FEJL(9,6,K1$)
2130 GET K1$,16:K3$
2140 EXEC FEJL(9,7,K1$)
2150 GET K1$,35:K4$
2160 EXEC FEJL(9,8,K1$)
2170 GET K1$,36:K5$
2180 EXEC FEJL(9,9,K1$)
2190 CLOSE K1$
2200 EXEC FEJL(9,10,K1$)
2210 K2$=N$+K2$;K3$=N$+K3$;K4$=N$+K4$;K5$=N$+K5$
2220 OPEN K5$,R
2230 EXEC FEJL(9,11,K5$)
2240 GET K5$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9)
2250 EXEC FEJL(9,12,K5$)
2260 FOR I=1 TO 3
2270 H=(I-1)*3+1
2280 GET K5$,I+2:LAND$(H),LAND$(H+1),LAND$(H+2)
2290 EXEC FEJL(9,13,K5$)
2300 NEXT I
2310 GET K5$,14:AFIN,ADEB
2320 EXEC FEJL(9,14,K5$)
2330 GET K5$,20:DV$
2340 EXEC FEJL(9,21,K5$)
2350 CLOSE K5$
2360 EXEC FEJL(9,22,K5$)
2370 DIM DTAB(MDANTAL,2),KARRAY(MKGR)
2380 OPEN K4$,R
2390 EXEC FEJL(9,15,K4$)
2400 FOR I=1 TO MKGR DIV 5
2410 J=(I-1)*5+1
2420 GET K4$,I:KARRAY(J),KARRAY(J+1),KARRAY(J+2),KARRAY(J+3),KARRAY(J+4)
2430 EXEC FEJL(9,16,K4$)
2440 NEXT I
2450 CLOSE K4$
2460 EXEC FEJL(9,12,K4$)
2470 OPEN K2$,R
2480 EXEC FEJL(9,18,K2$)
2490 OPEN K3$,R
2500 EXEC FEJL(9,19,K3$)
2510 EXEC INDTAB(DTAB,MDANTAL,K2$)
2520 DA=T1(7)
2530 DAT$="        "
2540 FOR J=8 TO 1 STEP -1
2550 IF J MOD 3=0 THEN
2560 DAT$(J)="."
2570 ELSE
2580 DAT$(J)=CHR(DA MOD 10+48)
2590 DA=DA DIV 10
2600 ENDIF
2610 NEXT J
2620 STREG$="---------------------------------------";STREG$=STREG$+STREG$
2630 REPEAT
2640 SUM$="0+";SUM1$="0+";SUM2$="0+";SUM3$="0+";SUM4$="0+";SUM5$="0+"
2650 SUM6$="0+";LINIE=0;SIDENR=0
2660 OUTPUT T
2670 CLEAR
2680 CURSOR 20,1
2690 PRINT "Debitorudskrifter"
2700 CURSOR 11,6
2710 PRINT "0: Færdig"
2720 CURSOR 11,8
2730 PRINT "1: Saldoliste"
2740 CURSOR 11,10
2750 PRINT "2: Kontoliste"
2760 CURSOR 11,12
2770 PRINT "3: Labels"
2780 REPEAT
2790 CURSOR 13,14
2800 INPUT "Vælg type :",A$
2810 EXEC NRTEST(A$)
2820 UNTIL P>-1 AND P<4
2830 TYPE=P
2840 IF TYPE=0 THEN EXIT
2850 REPEAT
2860 CURSOR 13,17
2870 PRINT "Ordnet efter :      (1: Gruppe , 2: Nr)"
2880 CURSOR 26,17
2890 INPUT A$
2900 EXEC NRTEST(A$)
2910 UNTIL P=1 OR P=2
2920 ORDEN=P
2930 REPEAT
2940 REPEAT
2950 CURSOR 13,19
2960 IF ORDEN=1 THEN
2970 PRINT "Fra gruppenr :      (0: Alle)"
2980 ELSE
2990 PRINT "Fra kontonr  :      (0: Alle)"
3000 ENDIF
3010 CURSOR 26,19
3020 INPUT KTN$
3030 EXEC NRTEST(KTN$)
3040 UNTIL P=0 OR (P>0 AND P<=MKGR AND ORDEN=1) OR (KTAL=DTAL AND ORDEN=2)
3050 IF ORDEN=1 THEN
3060 IF P=0 THEN
3070 FRA=1;TIL=MKGR
3080 ELSE
3090 FRA=P
3100 ENDIF
3110 ELSE
3120 IF P=0 THEN
3130 FRA=1;TIL=ADEB
3140 ELSE
3150 IF DTAB(ADEB,1)<P THEN
3160 FRA=0
3170 ELSE
3180 EXEC FINDPOST(DTAB,MDANTAL,P,DPIL3)
3190 IF CEKS=0 THEN
3200 FRA=DPIL3
3210 ELSE
3220 FRA=DPIL3+1
3230 ENDIF
3240 ENDIF
3250 ENDIF
3260 ENDIF
3270 UNTIL FRA<>0
3280 IF P>0 THEN
3290 REPEAT
3300 REPEAT
3310 CURSOR 13,21
3320 IF ORDEN=1 THEN
3330 INPUT "Til gruppenr :",KTN$
3340 ELSE
3350 INPUT "Til kontonr  :",KTN$
3360 ENDIF
3370 EXEC NRTEST(KTN$)
3380 UNTIL (P>0 AND P<=MKGR AND ORDEN=1) OR (KTAL=DTAL AND ORDEN=2)
3390 IF ORDEN=1 THEN
3400 TIL=P
3410 ELSE
3420 IF DTAB(ADEB,1)<P THEN
3430 TIL=ADEB
3440 ELSE
3450 EXEC FINDPOST(DTAB,MDANTAL,P,DPIL3)
3460 TIL=DPIL3
3470 ENDIF
3480 ENDIF
3490 UNTIL FRA<=TIL
3500 ENDIF
3501 IF TYPE=3 THEN
3502 CURSOR 13,23
3503 INPUT "Hvor mange labels ønskes af hver, (1-99) ",TALLET
3504 ENDIF
3510 CLEAR
3520 REPEAT
3530 CURSOR 18,13
3540 INPUT "Monter lister til udskrift og tast RETURN",A$
3550 UNTIL ORD(A$)=255
3560 IF TYPE=1 THEN KS$="saldo"
3570 IF TYPE=2 THEN KS$="konto"
3580 OUTPUT P
3590 IF ORDEN=1 THEN
3600 FOR H=FRA TO TIL
3610 SUM1$="0+";SUM2$="0+";SUM3$="0+";SUM4$="0+";SUM5$="0+";SUM6$="0+"
3620 SUM$="0+";LINIE=0;SIDENR=0
3630 HKUNDE=KARRAY(H)
3640 REPEAT
3650 IF HKUNDE=0 THEN EXIT
3660 IF TYPE<>3 THEN
3670 EXEC HOVED(H)
3680 ENDIF
3690 EXEC FINDPOST(DTAB,MDANTAL,HKUNDE,DPIL3)
3700 EXEC HENTDPOST
3710 EXEC UDSKRIV
3720 UNTIL HKUNDE=0
3730 IF TYPE<>3 AND KARRAY(H)<>0 THEN
3740 EXEC BUND
3750 ENDIF
3760 NEXT H
3770 ELSE
3780 FOR DPIL3=FRA TO TIL
3790 IF TYPE<>3 THEN
3800 EXEC HOVED(0)
3810 ENDIF
3820 EXEC HENTDPOST
3830 EXEC UDSKRIV
3840 NEXT DPIL3
3850 IF TYPE<>3 THEN
3860 EXEC BUND
3870 ENDIF
3880 ENDIF
3890 UNTIL TYPE=0
3900 CHAIN "P641210:OPSTART"

Full view