|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3744 (0xea0)
Types: TextFile
Notes: Mikados_K
Names: »SALDOLIS.K«
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
└─⟦this⟧ »SALDOLIS.K«
PROGRAM SALDOLISTE;
(*$IISFHEAD*)
KPOST=RECORD
A:AR;
NR:ARRAY(1..23) OF INTEGER;
NAVN:ARRAY (1..3) OF PACKED ARRAY (1..30) OF CHAR;
LANDSBY:PACKED ARRAY (1..20) OF CHAR;
POSTNR:PACKED ARRAY (1..25) OF CHAR;
TLF:PACKED ARRAY (1..10) OF CHAR;
SALDOKØB:ARRAY (1..9) OF REAL
END;
ZONE= RECORD
H:ISFHEAD;
T:ARRAY(1..918) OF INTEGER
END;
PROCSTAT=RECORD
NP,NROSTART:INTEGER
END;
NPFILE=FILE OF PROCSTAT;
VAR F:ISF;
NRPF,CF:NPFILE;
QUQ:^INTEGER;
KZ:ZONE;
FILNAVN2:STRING(20);
J,IER,I:INTEGER;
KUNDE:KPOST;
NAME:PACKED ARRAY (1..26) OF CHAR;
TOTAL,TTOTAL:REAL;
(*$R-,IEXCOMCOP*)
(*$IIOPEN*)
(*$IREADPROC*)
(*$IFINDPOST*)
(*$IICLOSE*)
(*$INEXTREC*)
(*$R+*)
(*$L+*)
PROCEDURE ERROR;
BEGIN
WRITELN('FEJL I KUNDEREG ',IER);
ICLOSE(KZ.H,F);
WRITELN('ICLOSE ',IER);
I:=I DIV 0
END;
PROCEDURE PRKUNOPL;
BEGIN
WITH KUNDE DO
BEGIN
TOTAL:=0;
WRITE(LIST,NR(1)*10000.0+NR(2):5:-2);
J:=0;
REPEAT J:=J+1
UNTIL (J=4) OR (NAVN(1,J)<>' ');
IF NAVN(1,J)=' ' THEN
BEGIN
MOVELEFT(NAVN(1,5),NAME,26);
WRITE(LIST,' ':6,NAME,' ':4)
END
ELSE
WRITE(LIST,' ':6,NAVN(1));
TOTAL:= SALDOKØB(4)+SALDOKØB(5)+SALDOKØB(6);
WRITE(LIST,' ':11,TOTAL/100:12:2);
WRITE(LIST, SALDOKØB(4) /100:12:2);
WRITE(LIST,(SALDOKØB(5)+SALDOKØB(6))/100:12:2);
WRITELN(LIST,SALDOKØB(8)/100:12:2);
TOTAL:=TOTAL+SALDOKØB(1)+SALDOKØB(2)+SALDOKØB(3);
WRITE(LIST,' ':12,POSTNR,' ',TLF,' ':5);
WRITE(LIST,TOTAL/100:12:2);
WRITE(LIST,(SALDOKØB(1)+SALDOKØB(2))/100:12:2);
WRITE(LIST,SALDOKØB(3)/100:12:2);
WRITELN(LIST,SALDOKØB(7)/100:12:2);
WRITELN(LIST);
TTOTAL:=TTOTAL+TOTAL;
END
END;
BEGIN
FILNAVN2:='PROCSTAT:P2:0:I';
(*$C-*)
REPEAT
REWRITE(NRPF,FILNAVN2);
SEEK(NRPF,1)
UNTIL IORESULT=0;
(*$C+*)
GET(NRPF);
NRPF^.NP:=1;
SEEK(NRPF,1);
PUT(NRPF);
REPEAT
GOTOXY(1,20);
WRITELN('Sæt plade 1 i drev 1 og tryk RETURN');
READLN;
(*$C-*)
REWRITE(CF,'C1:P1:0:J');
SEEK(CF,1)
(*$C+*)
UNTIL IORESULT=0;
CLOSE(CF);
CLOSE(NRPF);
WRITELN('SALDOLISTE');
FILNAVN2:='KUNDERG:P2:1338:I';
RESET(F,FILNAVN2);
IOPEN(KZ.H,F,LÆS);
IF IER<>0 THEN ERROR;
WITH KUNDE DO
BEGIN
NR(1):=0;NR(2):=0;
I:=0;
NEXTREC(KZ.H,F,A);
IF IER<>-1 THEN ERROR;
TTOTAL:=0;
WRITELN(LIST);
WRITELN(LIST,'A L D E R S F O R D E L T S A L D O L I S T E');
WRITELN(LIST);
WRITELN(LIST,' Kundenr',' ':4,'Kundenavn',' ':33,'Forf. saldo ',
'Saldo 45-60 Saldo Ældre Månedens køb');
WRITELN(LIST,' ':12,'Postnr og by',' ':16,'Telefon',' ':7,
'Total saldo Saldo 0-30 Saldo 30-45 Årets køb');
WRITELN(LIST);
REPEAT
I:=I+1;
PRKUNOPL;
NEXTREC(KZ.H,F,A)
UNTIL IER<>0;
WRITELN(LIST,'TOTAL SALDO: ',' ':34,TTOTAL/100:10:2);
WRITELN(LIST,'FOR ',I:5,' AF ',KZ.H.RECINUSE:5,' KUNDER');
IF I<>KZ.H.RECINUSE THEN WRITELN(LIST,'Der er altså fejl i kunderegistret');
END;
IF IER<>-2 THEN ERROR;
ICLOSE(KZ.H,F);
CLEARSCREEN;
WRITELN('ICLOSE ',IER);
CHAIN('INTRE *1','HOVSA:P1',QUQ)
END.