|
|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5925 (0x1725)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »HUVBOK«
└─⟦b4c020431⟧ Bits:30008687 DDMQ1-0127_VERFIL
└─⟦this⟧ »HUVBOK«
DCL 1 VER,
2 VENR CHAR(6),
2 DATUM CHAR(6),
2 KOSTST CHAR(4) INIT(' '),
2 DEBET CHAR(4)INIT(' '),
2 KREDIT CHAR(4)INIT(' '),
2 BELOPP FIXED(11,2),
2 VTEXT CHAR(20),
2 KOD CHAR(2)INIT(' ');
DCL 1 BOK,
2 KONTONR CHAR(4),
2 TEXT CHAR(25);
DCL 1 BALANS,
2 KONTO CHAR(4),
2 DSALDO(12) FIXED(10,2),
2 KSALDO(12) FIXED(10,2);
DCL VERIFILE FILE; DCL BKONTO FILE; DCL SALREG FILE;
DCL RUB1 CHAR(50)INIT('M S T E N H A R D T A B PROGR: A101');
DCL RUB2 CHAR(55)INIT(' H U V U D B O K DATUM ');
DCL RUB3 CHAR(50)INIT('KONTO BENÄMNING');
DCL RUB4 CHAR(40)INIT('TEXT');
DCL RUB5 CHAR(55)INIT('VERIF.NR DATUM DEBET KREDIT SALDO');
DCL DAT CHAR(8); PUT FILE(DISP)SKIP LIST('ANGE DATUM '); GET LIST(DAT);
PUT SKIP(3) EDIT(RUB1) (A(50)) (RUB2) (A(50)) (DAT) (A(15));PUT LIST('SIDA');
S = 1; PUT EDIT(S) (P'ZZZ');
PUT SKIP(2) EDIT(RUB3) (A(40)) (RUB4) (A(25));PUT LIST(RUB5);
PUT SKIP(2) LIST(' ');
OPEN VERIFILE; OPEN BKONTO; OPEN SALREG;
DCL SUM1 FIXED(11,2) INIT(0), SUM2 FIXED(11,2)INIT(0);
DCL TOTS1 FIXED(12,2)INIT(0), TOTS2 FIXED(12,2)INIT(0);
DCL SAL FIXED(11,2)INIT(0), TOTSAL FIXED(11,2)INIT(0);
RADR = 5; DCL MAN CHAR(2); A = 0; B = 0; DCL C CHAR(1)INIT(' ');
PUT FILE(DISP) SKIP LIST('ANGE AKTUELL MÅNAD '); GET LIST(MAN);
START: ON ENDFILE GO TO SLUT;
READ FILE(BKONTO) INTO(BOK); OPEN VERIFILE;
OMIG: ON ENDFILE GO TO PRI;
READ FILE(VERIFILE) INTO(VER);
IF(SUBSTR(DATUM,3,2) ¬= MAN) THEN GO TO OMIG;
IF(DEBET = KONTONR ) THEN GO TO DEB;
IF(KREDIT = KONTONR) THEN GO TO KRED; GO TO OMIG;
DEB:A = A + 1; SUM1 = SUM1 + BELOPP; TOTS1 = TOTS1 + BELOPP;
IF(A = 1) THEN PUT SKIP(2)EDIT(KONTONR) (A(8)) (TEXT) (A(34));
PUT EDIT(VTEXT) (A(27));
PUT EDIT(VENR) (A(8)) (DATUM) (A(6))(BELOPP) (P'-------9V.99');
RADR = RADR + 1; IF(RADR = 40) THEN GO TO NYR; PUT SKIP EDIT(C)(A(42));
B = 1; GO TO OMIG;
KRED: B = B + 1; SUM2 = SUM2 + BELOPP; TOTS2 = TOTS2 + BELOPP;
IF(B = 1) THEN PUT SKIP(2) EDIT(KONTONR) (A(8)) (TEXT) (A(34));
PUT EDIT(VTEXT) (A(27));
PUT EDIT(VENR) (A(8)) (DATUM) (A(19)) (BELOPP)(P'--------9V.99');
RADR = RADR + 1; IF(RADR = 40) THEN GO TO NYR; PUT SKIP EDIT(C)(A(42));
A = 1; GO TO OMIG;
PRI: IF(SUM1 = 0 & SUM2 = 0) THEN GO TO START; A = 0; B = 0;
PUT SKIP EDIT(SUM1) (X(83),P'-------9V.99')(SUM2)(P'----------9V.99');
SAL = SUM1 - SUM2; PUT EDIT(SAL) (P'-------ZV.99'); M = MAN;
DSALDO(M) = SUM1; KSALDO(M) = SUM; KONTO = KONTONR;
PUT FILE(DISP) SKIP; ON ERROR GO TO BAD;
READ KEY(KONTO) FILE(SALREG) INTO(BALANS);
REWRITE FILE(SALREG) FROM (BALANS);
GO TO NY;
BAD: IF(ONCODE = 4) THEN DO;
CALL SEOF(SALREG); WRITE FILE(SALREG) FROM(BALANS); CLOSE SALREG;
OPEN SALREG; END; NY:SUM1 = 0; SUM2 = 0; PUT SKIP LIST(' ');
RADR = RADR + 3; IF(RADR = 40) THEN GO TO NYR; GO TO START;
NYR: PUT SKIP(11)EDIT(RUB1) (A(50)) (RUB2) (A(50)) (DAT) (A(15));
S = S + 1; PUT LIST('SIDA '); PUT EDIT(S) (P'ZZZ');
PUT SKIP(2)EDIT(RUB3) (A(40)) (RUB4) (A(25)); PUT LIST(RUB5);
PUT SKIP(2) LIST(' '); RADR = 5; GO TO OMIG;
SLUT: PUT SKIP(2) EDIT(TOTS1)(X(83),P'-------9V.99')(TOTS2)(P'--------9V.99');
TOTSAL = TOTS1 - TOTS2;
PUT EDIT(TOTSAL) (P'---------9V.99');
END;