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

⟦75e717c41⟧ TextFile

    Length: 7488 (0x1d40)
    Types: TextFile
    Notes: Mikados_K
    Names: »SALDSTAT.K«

Derivation

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

Mikados K File

PROGRAM SALDOSTATISTIK;
(*$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;
SYSPOST=RECORD
       HELTAL:ARRAY (1..24) OF INTEGER;
       KGB:ARRAY(1..5) OF REAL;
       BETADAT:PACKED ARRAY (1..13) OF CHAR;
       KODE:ARRAY (1..2) OF PACKED ARRAY (1..10) OF CHAR
END;
SYSFILE=FILE OF SYSPOST;
VAR    FKUN:ISF;
       SYSFIL:SYSFILE;
       QUQ:^INTEGER;
       KZ:ZONE;
       FILNAVN2:STRING(20);
    J,IER,I:INTEGER;
       KNAVN:STRING(4);
      KUNDE:KPOST;
       NAME:PACKED ARRAY (1..26) OF CHAR;
       R2,R1,R,TOTAL:REAL;
(*$L-*)
(*$R-,IEXCOMCOP*)
(*$IIOPEN*)
(*$IREADPROC*)
(*$IFINDPOST*)
(*$IICLOSE*)
(*$INEXTREC*)
(*$IPUTGET*)
(*$R+*)
(*$L+*)
PROCEDURE ERROR;
BEGIN
  WRITELN('FEJL I KUNDEREG ',IER);
  ICLOSE(KZ.H,FKUN);
  WRITELN('ICLOSE ',IER);
  I:=I DIV 0
END;
PROCEDURE NANU(VAR T:STRING;VAR NU1,NU2 :INTEGER);
VAR I:INTEGER;
    R:REAL;
BEGIN
  R:=0.0;
  FOR I:=1 TO 4 DO R:=R*29+ORD(T(I));
  I:=TRUNC(R/89998.0);
  R:=R-I*89998.0+10001;
  NU1:=TRUNC(R/10000);
  NU2:=TRUNC(R-NU1*10000.0)
END;
PROCEDURE FINDKUND;
VAR    N1,N2,FIN:INTEGER;
       SVAR1:CHAR;
BEGIN
  REPEAT
    I:=1;
    SVAR1:='N';
    CLEARSCREEN;
    WRITELN('SALDOOVERSIGT, PR. KUNDE');
    GOTOXY(1,4);
    WRITELN('0 FOR AFSLUTNING, 1 FOR SØGNING MED NAVN, 2 FOR ALLE');
    REPEAT
      R:=-1.0;
      GOTOXY(1,3);
      WRITELN('INDTAST KUNDENUMMER');
      GOTOXY(25,3);READLN;READ(R)
    UNTIL (IORESULT=0) AND (R>=0.0) AND (R<100000.0);
    IF (R=0.0) OR (R=2.0) THEN EXIT(FINDKUND);
    REPEAT
      IF R=1.0 THEN
        IF I=1 THEN
        BEGIN
          GOTOXY(1,4);
          WRITELN('INDTAST KUNDENAVN',' ':60);
          REPEAT
          GOTOXY(20,4);
          READLN;READ(KNAVN)
          UNTIL LENGTH(KNAVN)=4;
          NANU(KNAVN,N1,N2);
          KUNDE.NR(1):=N1;
          KUNDE.NR(2):=N2;
          R1:=N1*10000.0+N2;
          GETREC(KZ.H,FKUN,KUNDE.A);
          IF IER=-6 THEN NEXTREC(KZ.H,FKUN,KUNDE.A);
          IF (IER=-9) OR (IER=-2) OR (IER=-1) THEN IER:=0;
          I:=0
        END
        ELSE
        BEGIN
          NEXTREC(KZ.H,FKUN,KUNDE.A);
          IF (IER=-9) OR (IER=-2) OR (IER=-1) THEN IER:=0;
          R2:=KUNDE.NR(1)*10000.0+KUNDE.NR(2);
          IF (R2-R1>SYSFIL^.HELTAL(4)) OR (R2<R1) THEN IER:=-6;
        END
      ELSE
      BEGIN
        KUNDE.NR(1):=TRUNC(R/10000.0);
        KUNDE.NR(2):=TRUNC(R-KUNDE.NR(1)*10000.0);
        GETREC(KZ.H,FKUN,KUNDE.A)
      END;
      GOTOXY(1,5);
      FIN:=1;
      IF IER=0 THEN
      BEGIN
        WRITELN('KUNDENUMMER ',KUNDE.NR(1)*10000.0+KUNDE.NR(2):8:-2);
        WRITELN;
        WRITELN(KUNDE.NAVN(1));
        WRITELN(KUNDE.NAVN(3));
        WRITELN(KUNDE.POSTNR);
        WRITELN;
        WRITELN('TLF: ',KUNDE.TLF);
        GOTOXY(40,6);WRITELN('RIGTIG KUNDE (J/N)');
        REPEAT  GOTOXY(60,6);READLN;READ(SVAR1) UNTIL (IORESULT=0) AND
                ((SVAR1='J') OR (SVAR1='N') OR (SVAR1='n') OR (SVAR1='j'));
        IF ((SVAR1='N') OR (SVAR1='n')) AND (R=1.0) THEN FIN:=0
      END
      ELSE
      IF IER=-6 THEN
      BEGIN
        IER:=0;
        WRITELN(' ':80);
        WRITELN('KUNDEN EKSISTERER IKKE, TRYK RETURN');
        READLN
      END
      ELSE ERROR
    UNTIL FIN=1
  UNTIL (SVAR1='J') OR (SVAR1='j') OR (R=0.0)
END;
PROCEDURE PR1;
BEGIN
  WITH KUNDE DO
  BEGIN
    CLEARSCREEN;
    WRITE(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(' ':4,NAME,' ':4)
       END
       ELSE
    WRITE(' ':4,NAVN(1));
    WRITELN(' ':14,'Saldostatistik');
    WRITELN;
TOTAL:=SALDOKØB(3)+SALDOKØB(4)+SALDOKØB(5)+SALDOKØB(6);
    WRITELN(' ':10,' 0 - 15 dage',SALDOKØB(1)/100:12:2,
                 ' ':10,'16 - 30 dage',SALDOKØB(2)/100:12:2);
    WRITELN(' ':10,'30 - 45 dage',SALDOKØB(3)/100:12:2,
                 ' ':10,'45 - 60 dage',SALDOKØB(4)/100:12:2);
    WRITELN(' ':10,'Ældre saldo1',SALDOKØB(5)/100:12:2,
                 ' ':10,'Ældre saldo2',SALDOKØB(6)/100:12:2);
    WRITELN(' ':10,'Total saldo ',(TOTAL+SALDOKØB(1)+SALDOKØB(2))/100:12:2,
                 ' ':10,'Forfalden   ',TOTAL/100:12:2);
    WRITELN;
    IF NR(12)=0 THEN NR(12):=1;
    WRITELN(' ':10,'Rntfri saldo',NR(19)/100:12:2,
                 ' ':10,'Genn. kreddg',NR(11)/NR(12):12:2);
    WRITELN;
    WRITELN(' ':10,'Årets køb   ',SALDOKØB(7)/100:12:2,
                 ' ':10,'Månedens køb',SALDOKØB(8)/100:12:2);
    WRITELN(' ':10,'Sid. års køb',SALDOKØB(9)/100:12:2);
    WRITELN('Tryk Return');READLN;
  END
END;
PROCEDURE PRKUNOPL;
BEGIN
  WITH KUNDE DO
  BEGIN
    WRITELN('Monter papir og tryk RETURN');READLN;
    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,' ':4,NAME,' ':4)
       END
       ELSE
    WRITE(LIST,' ':4,NAVN(1));
    WRITELN(LIST,' ':14,'Saldostatistik');
    WRITELN(LIST);
TOTAL:=SALDOKØB(3)+SALDOKØB(4)+SALDOKØB(5)+SALDOKØB(6);
    WRITELN(LIST,' ':10,' 0 - 15 dage',SALDOKØB(1)/100:12:2,
                 ' ':10,'16 - 30 dage',SALDOKØB(2)/100:12:2);
    WRITELN(LIST,' ':10,'30 - 45 dage',SALDOKØB(3)/100:12:2,
                 ' ':10,'45 - 60 dage',SALDOKØB(4)/100:12:2);
    WRITELN(LIST,' ':10,'Ældre saldo1',SALDOKØB(5)/100:12:2,
                 ' ':10,'Ældre saldo2',SALDOKØB(6)/100:12:2);
  WRITELN(LIST,' ':10,'Total saldo ',(TOTAL+SALDOKØB(1)+SALDOKØB(2))/100:12:2
                ,' ':10,'Forfalden   ',TOTAL/100:12:2);
    WRITELN(LIST);
    IF NR(12)=0 THEN NR(12):=1;
    WRITELN(LIST,' ':10,'Rntfri saldo',NR(19)/100:12:2,
                 ' ':10,'Genn. kreddg',NR(11)/NR(12):12:2);
    WRITELN(LIST);
    WRITELN(LIST,' ':10,'Årets køb   ',SALDOKØB(7)/100:12:2,
                 ' ':10,'Månedens køb',SALDOKØB(8)/100:12:2);
    WRITELN(LIST,' ':10,'Sid. års køb',SALDOKØB(9)/100:12:2);
    WRITELN(LIST);
    WRITELN(LIST);
  END
END;
BEGIN
  FILNAVN2:='KUNDERG:P2:0000:I';
  RESET(FKUN,FILNAVN2);
  IOPEN(KZ.H,FKUN,LÆS);
  IF IER<>0 THEN ERROR;
  FILNAVN2:='SYSREG:P2:1:I';
  RESET(SYSFIL,FILNAVN2);
  SEEK(SYSFIL,1);
  GET(SYSFIL);
  CLOSE(SYSFIL);
  REPEAT
    FINDKUND;
    IF R<>0.0 THEN
    BEGIN
      GOTOXY(1,13);WRITELN('Skærmudskrift ell. liste (1/2) ?');
      REPEAT
        GOTOXY(37,13);READLN;READ(I)
      UNTIL (IORESULT=0) AND (I>0) AND (I<3);
      IF I=1 THEN
        PR1 ELSE PRKUNOPL
    END
  UNTIL R=0.0;
  ICLOSE(KZ.H,FKUN);
  CLEARSCREEN;
  WRITELN('ICLOSE ',IER);
  CHAIN('INTRE   *1','HOVSA:P1',QUQ)
END.

Full view