|
|
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: 7742 (0x1e3e)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »AKTSAL1«
└─⟦ff53f924a⟧ Bits:30008653 DDMQ1-0093_Nya_bokforingssystemet_II_original
└─⟦this⟧ »AKTSAL1«
/*FÖRSTA RADEN*/
/*AKTSAL GER AKTUELLA SALDON PÅ KONTO:1020,1041,1211,2010,3,TOM ANGIVEN DAG
KLART: 780625 PROGR:TD */
DCL VERFIL FILE;CALL KFILE(VERFIL);
DCL 1 VER,2 KO FIXED(4),2 AVD FIXED(2),2 PROJ FIXED(4),2 DAT FIXED(4),
2 TYP CHAR(1),2 VERNR FIXED(6),2 BEL FIXED(11,2),2 KOD CHAR(1);
DCL 1 SAM,2 SKO FIXED(4),2 SAVD FIXED(2),2 SPROJ FIXED(4),
2 SAD(12) FIXED(11,2),2 SAK(12) FIXED(11,2);
DCL 1 KTX,2 KSTR,3 KONTO FIXED(4),3 Z CHAR(1),2 K CHAR(4),2 TEXT CHAR(34),
2 IB FIXED(13,2);
DCL 1 DATREC,2 DAG CHAR(6),2 MON CHAR(3),2 MNR FIXED(2),2 SK(14) CHAR(1),
2 CO FIXED(1),2 HUVKOD(12) CHAR(1);
DCL 1 XDATREC,2 XDAG CHAR(9),2 XMNR FIXED(2),2 XSK(14) CHAR(1),2 XCO FIXED(1),
2 XHUVKOD(12) CHAR(1);
XDAG='XXXXXX ';XMNR=0;
DCL DATFIL FILE,XXMNR FIXED(2),KTOTX FILE,RAD FIXED(2),IND FIXED(1),
S CHAR(1),Q FIXED(1),ADAG FIXED(2),SAMFIL FILE,
XKO FIXED(4),AKO(10) FIXED(4) INIT(1020,1041,1211,2010,3,0,0,0,0,0),
KD FIXED(13,2),KK FIXED(13,2),QKTO BINARY,QSAM BINARY,QVER BINARY,
RECNR BINARY,I BINARY,
JUMP FIXED(1),C CHAR(20) INIT('-------------9V.99'),
KIB FIXED(13,2);
OPEN KTOTX;OPEN DATFIL;OPEN VERFIL;OPEN SAMFIL;
READ FILE(DATFIL)INTO(DATREC);IF DAG='XXXXXX' THEN GO TO SLUTT;
DO I=1 TO 14;XSK(I)=SK(I);END;XCO=CO;DO I=1 TO 12;XHUVKOD(I)=HUVKOD(I);END;
PUT FILE(D) SKIP EDIT(' ')(A(37))('*** AKTUELLA SALDON ***')
(A(74))('STÄLL IN PERFORERINGEN')(A(37))('TRYCK SEDAN RETURN.')(A(37));
GET SKIP LIST(S);
PUT FILE(D)SKIP EDIT('KONTOSTÄLLNINGEN SKA AVSE VILKEN DAG I MÅNADEN')
(A(47))(MON)(A(3))('?')(A(22));GET SKIP LIST(ADAG);
PUT FILE(D) SKIP EDIT(' ')(A(42))('*** UTSKRIFT PÅGÅR ***')(A(69));
IND=0;JUMP=0;RAD=5;
I=0;RECNR=0;
RUB:PUT SKIP(RAD)EDIT('AKTUELL SALDOSTÄLLNING ')(A)(ADAG)(A)
(' ')(A)(MON)(A)(',PÅ KONTON:')(A);
DO III=1 TO 10;IF AKO(III)¬=0 THEN PUT EDIT(AKO(III))(A)(',')(A);END;
PUT EDIT(' UTSKRIFTSDATUM:')(A)(DAG)(A(10))SKIP(2)EDIT
('KONTO')(A(8))('BENÄMNING')(A(43))('ING SALDO')(A(15))
('AKT MÅN DEB')(A(17))('AKT MÅN KRE')(A(17))('AKT MÅN SAL')(A(15))
('AKT UTG SALDO')(A)SKIP;
RAD=45;
NY:UNSPEC(SAMFIL)=0;UNSPEC(VERFIL)=0;UNSPEC(KTOTX)=0;
I=I+1;II=1;KD=0;KK=0;KIB=0;QSAM=0;QVER=0;QKTO=0;BEL=0;
DO III=1 TO 12;SAD(III)=0;SAK(III)=0;END;
IF AKO(I)=0 THEN GO TO UT;
IF AKO(I)<1000 THEN DO;
UNSPEC(SAMFIL)=0;UNSPEC(VERFIL)=0;UNSPEC(KTOTX)=0;II=10;
IF AKO(I)<100 THEN II=100;IF AKO(I)<10 THEN II=1000;
KTOIN:ON ENDFILE GOTO SAMIN;READ FILE(KTOTX)INTO(KTX);
IF KONTO<1000 THEN GOTO KTOIN;
J=KONTO/II;IF J¬=AKO(I) THEN GOTO KTOIN;
QKTO=1;
SAMIN:ON ENDFILE GO TO SAMUT1;READ FILE(SAMFIL)INTO(SAM);
J=SKO/II;
IF J¬=AKO(I) THEN GO TO SAMIN;
QSAM=1;
SAMUT1:ON ENDFILE GO TO VERUT1;READ FILE(VERFIL)INTO(VER);
J=KO/II;
IF J¬=AKO(I) THEN GO TO SAMUT1;
QVER=1;
VERUT1:END;
ELSE DO;ON ERROR GO TO SAMUT2;READ KEY(AKO(I))FILE(SAMFIL)INTO(SAM);
QSAM=1;
SAMUT2:KONTO=AKO(I);Z='A';
ON ERROR GOTO KTOUT2;READ KEY(KSTR)FILE(KTOTX)INTO(KTX);
QKTO=1;
KTOUT2:ON ERROR GO TO VERUT2;READ KEY(AKO(I))FILE(VERFIL)INTO(VER);
QVER=1;
VERUT2:END;
ACKSAM:IF QSAM=1 THEN DO III=1 TO MNR-1;KIB=KIB+SAD(III)-SAK(III);END;
ON ENDFILE GO TO ACKVER;READ FILE(SAMFIL)INTO(SAM);
J=SKO/II;IF J¬=AKO(I) THEN GO TO ACKVER;
QSAM=1;GO TO ACKSAM;
ACKVER:XXMNR=MNR-4;IF XXMNR<1 THEN XXMNR=XXMNR+12;
IF QVER=1&((DAT-100*XXMNR)<=ADAG) THEN DO;
IF KOD='D' THEN KD=KD+BEL;IF KOD='K' THEN KK=KK+BEL;
END;
ON ENDFILE GO TO ACKIB;READ FILE(VERFIL)INTO(VER);
J=KO/II;IF J¬=AKO(I) THEN GO TO ACKIB;
QVER=1;GO TO ACKVER;
ACKIB:IF QKTO=1&Z='A' THEN DO;
KIB=KIB+IB;END;
ON ENDFILE GOTO PRT;READ FILE(KTOTX)INTO(KTX);
J=KONTO/II;IF J¬=AKO(I) THEN GOTO PRT;
QKTO=1;GOTO ACKIB;
PRT:KONTO=AKO(I);Z='A';
ON ERROR GO TO EJTXT;READ KEY(KSTR)FILE(KTOTX)INTO(KTX);GO TO KOPRT;
EJTXT:TEXT='*** KONTOT SAKNAS I KONTOPLANEN ';
KOPRT:PUT SKIP EDIT(AKO(I))(P'ZZZZ9 ')(TEXT)(A(35))(KIB)(PC)(KD)(PC)(KK)(PC)
(KD-KK)(PC)(KIB+KD-KK)(PC)SKIP;RAD=RAD-2;
GO TO NY;
UT:PUT SKIP(RAD-5);
SLUTT:CALL LOAD('BOKRUT',6);END;