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

⟦53ec0ebd4⟧ TextFile

    Length: 3744 (0xea0)
    Types: TextFile
    Notes: Mikados_K
    Names: »SALDOLIS.K«

Derivation

└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
    └─⟦this⟧ »SALDOLIS.K« 

Mikados K File

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.

Full view