|
|
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: 13825 (0x3601)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »KONTUT_U«
└─⟦28699d361⟧ Bits:30008635 DDMQ1-0074_Bokrut_diskett_2_Kopia_JÅ_800504_PL1_LMC
└─⟦this⟧ »KONTUT_U«
/* KONTUT ÄR ENRUTIN FÖR UTSKRIFT AV SMMTLIGA KONTERINGAR UNDER EN MÅNAD
BEGRÄNSNINGARNA ANGES SOM KONTO OCH AVDELNINGS GRÄNSER
EN ELLER FLERA MÅNADER KAN OMFATTAS AV RAPPORTEN
PRG JÅ 800504 */
DCL FILNAMN CHAR(1),
FIL FILE,
1 VER_STR,
2 VER_ID,
3 KONTO FIXED(4),
3 AVD CHAR(3),
2 DAT FIXED(4),
2 VERNR FIXED(7),
2 VTXT CHAR(20),
2 BEL FIXED(11,2),
2 KOD CHAR(1),
1 IN_STR(64),
2 CH CHAR(40),
IN_SIZE BINARY INIT(64),
D_T BINARY INIT(37),
VERSION CHAR(37)
INIT('KONTUT Version 2.1 800609'),
1 BREC,
2 FILLER FIXED(11),
2 DATUM CHAR(6),
2 S_STR,
3 SKONTO FIXED(4),
3 SAVD CHAR(3),
2 E_STR,
3 EKONTO FIXED(4),
3 EAVD CHAR(3),
1 VERID_STR,
2 T66 CHAR(6),
T6 CHAR(6),
T8 CHAR(8),
SLUT BINARY,
OK BINARY,
MAX_P_FIL BINARY INIT(0),
MAX_P_STR BINARY INIT(0),
POS_STR BINARY INIT(0),
SDEB FIXED(11,2) INIT(0),
SKRE FIXED(11,2) INIT(0),
TDEB FIXED(11,2) INIT(0),
TKRE FIXED(11,2) INIT(0),
RAD BINARY INIT(0),
SIDA BINARY INIT(1),
C CHAR(16) INIT('-----------9V.99'),
1 DATREC,
2 FIRMA_NAMN CHAR(20) INIT(' ');
START:PROC;
PUT FILE(D) SKIP EDIT(VERSION)(A(D_T*2));
RETURN;
END;
RUB:PROC;
PUT SKIP(RAD+3) EDIT(FIRMA_NAMN)(A) SKIP(2) EDIT
('KONTOUTDRAG OMFATTANDE KONTO ')(A)(SKONTO)(A(5))(SAVD)(A)(' TILL ')
(A)(EKONTO)(A(5))(EAVD)(A(10))
(' DATUM ')(A)(DATUM)(A)(' SIDA ')(A)
(SIDA)(A) SKIP(2) EDIT('VER.NR TEXT')(A(33))
('BOKF.DATUM KONTO AVD. ')(A)
('DEBET KREDIT')(A) SKIP;
RAD=40;
SIDA=SIDA+1;
RETURN;
END;
SKRIV_KONTO_AVD_SUM:PROC;
PUT SKIP EDIT('SUMMA')(X(48),A(9))(SDEB)(PC)(SKRE)(PC)(SDEB-SKRE)(PC)
SKIP;
RAD=RAD-2;
SDEB=0;
SKRE=0;
T6=T66;
RETURN;
END;
DO_EXIT:PROC;
CALL SKRIV_KONTO_AVD_SUM;
PUT SKIP(2) EDIT('TOTALT')(X(48),A(9))(TDEB)(PC)(TKRE)(PC)(TDEB-TKRE)
(PC) SKIP(RAD-2);
STOP;
END;
OPEN_FIL:PROC;
OPEN FIL;
CALL SEOF(FIL);
MAX_P_FIL=UNSPEC(FIL);
UNSPEC(FIL)=0;
SLUT=0;
RETURN;
END;
GET_POST:PROC;
IF POS_STR = MAX_P_STR THEN DO;
IF MAX_P_FIL = 0 THEN DO;
SLUT=1;
RETURN;
END;
ELSE DO;
ON ENDFILE GO TO VIDARE;
READ FILE(FIL) INTO(IN_STR);
VIDARE: MAX_P_STR=IN_SIZE;
IF MAX_P_STR > MAX_P_FIL THEN MAX_P_STR=MAX_P_FIL;
MAX_P_FIL=MAX_P_FIL-MAX_P_STR;
POS_STR=1;
END;
END;
ELSE DO;
POS_STR=POS_STR+1;
END;
VER_STR=IN_STR(POS_STR);
VERID_STR=VER_ID;
RETURN;
END;
SKRIV_RAD:PROC;
IF RAD < 7 THEN CALL RUB;
PUT SKIP EDIT(VERNR)(A(10))(VTXT)(A(28))(DAT)(P'99.99',X(3))(KONTO)
(A(7))(AVD)(A(4));
IF KOD = 'K' THEN DO;
PUT EDIT(' ')(A(15));
SKRE=SKRE+BEL;
TKRE=TKRE+BEL;
END;
IF KOD = 'D' THEN DO;
SDEB=SDEB+BEL;
TDEB=TDEB+BEL;
END;
PUT EDIT(BEL)(PC);
RAD=RAD-1;
RETURN;
END;
/* H Ä R B Ö R J A R H U V U D P R O G R A M M E T */
CALL START;
CALL OPEN_FIL;
CALL GET_POST;
BREC=VER_STR;
CALL RUB;
CALL GET_POST;
IF SLUT THEN CALL DO_EXIT;
CALL SKRIV_RAD;
T6=T66;
POST_LOOP:
CALL GET_POST;
IF SLUT THEN CALL DO_EXIT;
IF T66 ¬= T6 THEN CALL SKRIV_KONTO_AVD_SUM;
CALL SKRIV_RAD;
GO TO POST_LOOP;
END;