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

⟦512367bd2⟧ TextFile

    Length: 17888 (0x45e0)
    Types: TextFile
    Notes: Mikados_K
    Names: »ORDREVED.K«

Derivation

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

Mikados K File

PROGRAM ORDREVEDLIGEHOLDELSE;
 (*$IISFHEAD*)
 VPOST=RECORD
        A       :AR;
        HELTAL:ARRAY (1..11) OF INTEGER;
 (*VARENR,LVRNDØR,OPRLAND,PAKENHED,FORVLEVU,DATSBES1,DATSBES2,DATSORD1,
   DATSORD2,DÆKGRASÅ,ANAFTILG*)
        NAVN:ARRAY (1..2) OF PACKED ARRAY(1..30) OF CHAR;
 (*VARENAVN,NAVNHOSLEVERANDØR*)
        REELTAL :ARRAY (1..15) OF REAL
 (*PRIS,KOSTPRIS,TOLDPNR,FYSLAGER,PRIMOLAG,MINLAGER,RESAFLAG,IORDRE,
   RESAFIORDRE,STASBEST,ASOLGTIÅ,ASOLGTSÅ,OMSIÅR,OMSSÅR,DÆKBIDTD*)
  END;
 OLINE = RECORD
        VNR :ARRAY (1..2) OF INTEGER;
        (*VNR,BESTILT*)
        PRIS: REAL
  END;
 ORDREPOST = RECORD
        A:AR;
 (*
        KNR1,KNR2,
        NR1,NR2,
        SIDE,
        LEVUGE,ORDREDATO1-2,LEVKODE,BETAKODE,RESTORDREKODE,RABAT*)
        HEAD :ARRAY(1..12) OF INTEGER;
        LINE:ARRAY (1..2) OF PACKED ARRAY (1..30) OF CHAR;
        ORDRELIN : ARRAY (1..15) OF OLINE
  END;
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;
SYSPOST=RECORD
(*DATO1,DATO2,
  UGENR,
  MAXEXC,
  ORDRENR1-2,
  FAKTNR1-2,
  KREDNTNR1-2,
  BILAGSNR1-2,JOURFILNR,MOMS*) HELTAL: ARRAY (1..24) OF INTEGER;
  KGB: ARRAY (1..5) OF REAL;
  BETADAT:PACKED ARRAY (1..13) OF CHAR;
(*KIKKODE,ÆNDKODE*) KODE:ARRAY (1..2) OF PACKED ARRAY (1..10) OF CHAR
END;
SYSFILE=FILE OF SYSPOST;
 VZONE= RECORD
        H:ISFHEAD;
        T:ARRAY(1..451) OF INTEGER
  END;
 ORDZONE=RECORD
        H:ISFHEAD;
        T:ARRAY(1..930) OF INTEGER
  END;
KZONE=RECORD
       H:ISFHEAD;
       T:ARRAY(1..918) OF INTEGER
END;
  
VLIN=RECORD
       VNR,ANTAL:INTEGER;
       PRIS:REAL;
       NAVN:PACKED ARRAY(1:30) OF CHAR
END;
  
  
  
 VAR    FVAR,FORD,FKUN      : ISF;
        VZ:VZONE;
        KZ:KZONE;
        OZ:ORDZONE;
        ORDRE:ORDREPOST;
        VARE:VPOST;
        KUNDE:KPOST;
        SYSFIL:SYSFILE;
        LIN:STRING(30);
        QHEAD:ARRAY (6..12) OF INTEGER;
        QLINE:ARRAY (1..2) OF PACKED ARRAY (1..30) OF CHAR;
        FNAVN:STRING(20);
        VARELIN:ARRAY (1..16) OF VLIN;
        KNAVN:STRING(4);
  SVAR1,SVAR3:CHAR;
       RETTET,SRETTET:BOOLEAN;
        IER,I,J,K,L,ALI
                        :INTEGER;
        R,R1,R2         :REAL;
        QUQ:^INTEGER;
(*$L-*)
 (*$R-,IEXCOMCOP*)
 (*$IIOPEN*)
 (*$ISÆTØG*)
 (*$IREADPROC*)
 (*$IFINDPOST*)
 (*$IFORSKYD*)
 (*$IICLOSE1*)
 (*$IPUTGET*)
 (*$IINSERT*)
 (*$INEXTREC*)
 (*$IDELETE*)
 (*$R+*)
(*$L+*)
 PROCEDURE ERROR;
 BEGIN
   WRITELN('FEJL I REGISTER ',IER);
   ICLOSE(VZ.H,FVAR);
   CLOSE(FVAR);
   ICLOSE(OZ.H,FORD);
   CLOSE(FORD);
   ICLOSE(KZ.H,FKUN);
   CLOSE(FKUN);
   WRITELN('ICLOSE ',IER);
   I:=I DIV 0
 END;
PROCEDURE OFEJL;
BEGIN
  GOTOXY(1,20);
  WRITELN('REGISTERFEJL ',IER,' . SITUATIONEN ER FORSØGT REDDET.');
  WRITELN('TAST 0, HVIS DER SKAL FORTSÆTTES');
  REPEAT GOTOXY(40,21);READLN;READ(I) UNTIL IORESULT=0;
  IF I<>0 THEN ERROR;
  CLEARSCREEN
END;
PROCEDURE VALI;
BEGIN
  WITH VARELIN(J) DO
  BEGIN
  REPEAT
    VNR:=-1;
    GOTOXY(5,5+I);
    READLN;READ(VNR)
  UNTIL (IORESULT=0) AND (VNR>=0);
  IF VNR=0 THEN EXIT(VALI);
  REPEAT
    ANTAL:=-1;
    GOTOXY(16,5+I);
    READLN;READ(ANTAL)
  UNTIL (IORESULT=0) AND (ANTAL>0);
  REPEAT
    GOTOXY(25,5+I);
    READLN;READ(PRIS)
  UNTIL (IORESULT=0);
  PRIS:=PRIS*100;
  GOTOXY(21,5+I);
  WRITELN(PRIS/100:10:2)
  END
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 LINIE;
BEGIN
  GOTOXY(1,5+I);
  WRITELN(I:3);
  J:=I;
  VALI;
  IF VARELIN(I).VNR=0 THEN
       I:=17
  ELSE
  WITH VARELIN(I) DO
  BEGIN
    VARE.HELTAL(1):=VNR;
    GETREC(VZ.H,FVAR,VARE.A);
    IF IER=0 THEN
    BEGIN
      NAVN:=VARE.NAVN(1);
      GOTOXY(40,5+I);
      WRITELN(NAVN);
      R:=VARE.REELTAL(1);
      WHILE VARELIN(J).PRIS<>R DO
      BEGIN
        GOTOXY(27,7+I);
        WRITELN('PRISEN STEMMER IKKE MED VAREREGISTRET, SOM SIGER ');
        WRITELN(VNR:8,ANTAL:8,' ':4,R/100:10:2);
        WRITELN('INDTAST IGEN');
        I:=I+3;
        J:=16;
        VALI;
        I:=I-3;
        IF VNR<>VARELIN(J).VNR THEN
        BEGIN
          VARE.HELTAL(1):=VARELIN(J).VNR;
          GETREC(VZ.H,FVAR,VARE.A);
          IF IER=0 THEN
          BEGIN
            VARELIN(I):=VARELIN(J);
            NAVN:=VARE.NAVN(1);
            R:=VARE.REELTAL(1)
          END
        END
        ELSE
        BEGIN
          VARELIN(J).NAVN:=NAVN;
          GOTOXY(5,5+I);
          IF VARELIN(I)=VARELIN(J) THEN R:=PRIS
             ELSE VARELIN(I):=VARELIN(J);
        END;
        IF IER<>0 THEN R:=VARELIN(J).PRIS;
        GOTOXY(5,5+I);
        WRITELN(VNR:4,ANTAL:8,' ':4,PRIS/100:10:2,' ':9,NAVN);
        WRITELN(' ':77);
        WRITELN(' ':77);
        WRITELN(' ':77);
        WRITELN(' ':77);
      END;
      IF IER=0 THEN
      WITH VARE DO
      BEGIN
        IF (HELTAL(5)>ORDRE.HEAD(6)) OR (HELTAL(5)<ORDRE.HEAD(6)-30)
            OR (ORDRE.HEAD(6)=0) THEN
        BEGIN
          IF REELTAL(7)+ANTAL>REELTAL(4) THEN
          BEGIN
            REELTAL(9):=REELTAL(9)+ANTAL+REELTAL(7)-REELTAL(4);
            REELTAL(7):=REELTAL(4)
          END
          ELSE REELTAL(7):=REELTAL(7)+ANTAL
        END
        ELSE REELTAL(9):=REELTAL(9)+ANTAL;
        PUTREC(VZ.H,FVAR,VARE.A);
        IF IER<>0 THEN ERROR
      END
    END;
    IF IER=-6 THEN
    BEGIN
      GOTOXY(40,5+I);
      WRITELN('VARENUMMER EKSISTERER IKKE');
      I:=I-1
    END
    ELSE IF IER<>0 THEN ERROR
  END
END;
PROCEDURE FINDKUND;
VAR    N1,N2,FIN:INTEGER;
       SVAR1:CHAR;
BEGIN
  REPEAT
    I:=1;
    SVAR1:='N';
    CLEARSCREEN;
    WRITELN('ORDREVEDLIGEHOLDELSE');
    GOTOXY(1,4);
    WRITELN('0 FOR AFSLUTNING, 1 FOR SØGNING MED NAVN');
    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 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'));
        IF (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 (R=0.0)
END;
PROCEDURE FINDORDR;
BEGIN
  CLEARSCREEN;
  WRITELN('INDTAST ORDRENR, 1 FOR OVERSIGT OVER KUNDENS ORDRER, 0 FOR STOP');
  REPEAT
  GOTOXY(65,1);READLN;READ(R)
  UNTIL (IORESULT=0) AND (R<1000000.0) AND (R>=0);
  IF R=0.0 THEN EXIT(FINDORDR);
  WITH ORDRE DO
  BEGIN
    HEAD(1):=KUNDE.NR(1);
    HEAD(2):=KUNDE.NR(2);
    IF R>1 THEN
    BEGIN
      HEAD(3):=TRUNC(R/10000);
      HEAD(4):=TRUNC(R-HEAD(3)*10000.0);
      HEAD(5):=0;
      NEXTREC(OZ.H,FORD,A);
      IF (IER=-1) OR (IER=-2) OR (IER=-9) THEN IER:=0;
      IF IER<>0 THEN ERROR;
      IF (HEAD(3)*10000.0+HEAD(4)<>R) OR (HEAD(1)<>KUNDE.NR(1)) OR
          (HEAD(2)<>KUNDE.NR(2)) THEN
        BEGIN
        WRITELN('ORDREN FINDES IKKE, TRYK RETURN');
        READLN;
        R:=-1
        END ELSE R:=-2
    END
    ELSE
    BEGIN
      HEAD(3):=0;HEAD(4):=0;HEAD(5):=0;
      R1:=0;
      REPEAT
        NEXTREC(OZ.H,FORD,A);
        IF (IER=-1) OR (IER=-2) OR (IER=-9) THEN IER:=0;
        IF IER<>0 THEN ERROR;
        IF (HEAD(1)<>KUNDE.NR(1)) OR (HEAD(2)<>KUNDE.NR(2)) THEN
           BEGIN
             WRITELN('KUNDEN HAR IKKE FLERE ORDRER I SYSTEMET, TRYK RETURN');
             READLN;R:=-1
           END
        ELSE
        IF R1<>HEAD(3)*10000.0+HEAD(4) THEN
        BEGIN
          R1:=HEAD(3)*10000.0+HEAD(4);
          GOTOXY(1,3);
          WRITELN('ORDRENR:',R1:10:-2,' RIGTIGT (J/N)');
          REPEAT
          GOTOXY(40,3);
          READLN;READ(SVAR1)
          UNTIL (IORESULT=0) AND ((SVAR1='J') OR (SVAR1='N'));
          IF SVAR1='J' THEN R:=-2
        END
      UNTIL R<0;
    END
  END
END;
PROCEDURE RETBETINGELSER;
VAR J,I:INTEGER;
BEGIN
WITH ORDRE DO
BEGIN
  RETTET:=FALSE;
  REPEAT
    CLEARSCREEN;
    GOTOXY(1,1);
    WRITELN('GÆLDENDE ORDRE-HOVED:');
    GOTOXY(1,4);
    WRITELN('1 LEVERING',HEAD(9):9);
    WRITELN('2 BETALING',HEAD(10):9);
    WRITELN('3 RESTORDRE',HEAD(11):8);
    WRITELN('4 RABAT',HEAD(12):12);
    WRITELN('5 ORDREDATO',HEAD(7)*10000.0+HEAD(8):8:-2);
    WRITELN('6 LEVERINGSUGE',HEAD(6):5);
    WRITELN('7 TEKST 1 ',LINE(1));
    WRITELN('8 TEKST 2 ',LINE(2));
    REPEAT
      GOTOXY(1,13);
      WRITELN('ÆNDRING, 0 FOR NEJ');
      GOTOXY(20,13);
      READLN;READ(I)
    UNTIL (IORESULT=0) AND (I<9) AND (I>=0);
    IF I>0 THEN
    BEGIN
    RETTET:=TRUE;
    CASE I OF
1,2,3,4: REPEAT GOTOXY(20,3+I);READLN;READ(HEAD(8+I))
         UNTIL (IORESULT=0) AND (HEAD(8+I)<=99) AND (HEAD(8+I)>=0);
      5: BEGIN
           REPEAT
             GOTOXY(20,8);READLN;READ(R)
           UNTIL (IORESULT=0) AND (R>800000.0) AND (R<850000.0);
           HEAD(7):=TRUNC(R/10000);
           HEAD(8):=TRUNC(R-HEAD(7)*10000.0)
         END;
      6: REPEAT GOTOXY(20,9);READLN;READ(HEAD(6))
         UNTIL (IORESULT=0) AND (HEAD(6)>=0) AND (HEAD(6)<=53);
    7,8: BEGIN
           FOR J:=1 TO 30 DO LIN(J):=LINE(I-6,J);
           GOTOXY(11,3+I);
           EDIT(LIN:30);
           FOR J:=1 TO 30 DO LINE(I-6,J):=LIN(J)
         END
    END;
    END
  UNTIL I=0;
  FOR I:=6 TO 12 DO QHEAD(I):=HEAD(I);
  FOR I:=1 TO 2 DO FOR J:=1 TO 30 DO QLINE(I,J):=LINE(I,J)
END
END;
PROCEDURE SLETORDR;
BEGIN
  REPEAT
    FOR I:=1 TO 15 DO
    WITH ORDRE,VARE DO
    IF ORDRELIN(I).VNR(1)<>0 THEN
    BEGIN
      HELTAL(1):=ORDRELIN(I).VNR(1);
      GETREC(VZ.H,FVAR,VARE.A);
      IF IER<>0 THEN ERROR;
      IF (HELTAL(5)>HEAD(6)) OR (HELTAL(5)<HEAD(6)-30) OR (HEAD(6)=0) THEN
         IF ORDRELIN(I).VNR(2)>REELTAL(7) THEN
         BEGIN
           REELTAL(9):=REELTAL(9)-ORDRELIN(I).VNR(2)+REELTAL(7);
           REELTAL(7):=0
         END
         ELSE REELTAL(7):=REELTAL(7)-ORDRELIN(I).VNR(2)
      ELSE REELTAL(9):=REELTAL(9)-ORDRELIN(I).VNR(2);
      PUTREC(VZ.H,FVAR,VARE.A);
      IF IER<>0 THEN ERROR;
    END;
    L:=ORDRE.HEAD(5);
    DELETE(OZ.H,FORD,ORDRE.A)
  UNTIL L=99
END;
PROCEDURE RETSIDE;
VAR SVAR1:CHAR;
BEGIN
  SRETTET:=FALSE;
  GOTOXY(1,6+ALI);WRITELN;
  REPEAT
    FOR I:=1 TO ALI DO
    WITH VARELIN(I) DO
    BEGIN
      GOTOXY(1,5+I);
      WRITELN(I:3,VNR:5,ANTAL:8,' ':4,PRIS/100:10:2)
    END;
    REPEAT
      GOTOXY(1,21);
      WRITELN('Er ordresiden færdig (J/N)');
      GOTOXY(28,21);
      READLN;READ(SVAR1)
    UNTIL (IORESULT=0) AND ((SVAR1='N') OR (SVAR1='J') OR (SVAR1='n') OR
                            (SVAR1='j'));
    IF (SVAR1='J') OR (SVAR1='j') THEN EXIT(RETSIDE);
    SRETTET:=TRUE;
    GOTOXY(1,22);WRITELN('A: Tilføjelse   B:Sletning');
    REPEAT GOTOXY(35,22);READLN;READ(SVAR1)
    UNTIL (IORESULT=0) AND ((SVAR1='A') OR (SVAR1='B'));
    CASE SVAR1 OF
   'A':IF ALI < 15 THEN
      BEGIN
        ALI:=ALI+1;
        I:=ALI;
        LINIE;
        IF (I=17) OR (I=ALI-1) THEN ALI:=ALI-1
      END
      ELSE
      BEGIN
        GOTOXY(1,22);WRITELN('SIDEN ER FULD')
      END;
   'B':WITH VARE,ORDRE DO BEGIN
        GOTOXY(1,23);
        WRITELN('Linienummer');
        REPEAT GOTOXY(15,23);READLN;READ(I)
        UNTIL (IORESULT=0) AND (I>0) AND (I<=ALI);
        HELTAL(1):=VARELIN(I).VNR;
        GETREC(VZ.H,FVAR,VARE.A);
        IF IER<>0 THEN ERROR;
        IF (HELTAL(5)>HEAD(6)) OR (HELTAL(5)<HEAD(6)-30) OR
           (HEAD(6)=0) THEN
          IF VARELIN(I).ANTAL>REELTAL(7) THEN
          BEGIN
           REELTAL(9):=REELTAL(9)-VARELIN(I).ANTAL+REELTAL(7);
           REELTAL(7):=0
          END
          ELSE REELTAL(7):=REELTAL(7)-VARELIN(I).ANTAL
        ELSE REELTAL(9):=REELTAL(9)-VARELIN(I).ANTAL;
        PUTREC(VZ.H,FVAR,VARE.A);
        IF IER<>0 THEN ERROR;
        FOR J:=I TO ALI-1 DO VARELIN(J):=VARELIN(J+1);
        GOTOXY(1,5+ALI);WRITELN(' ':77);
        ALI:=ALI-1
      END;
    END;
  UNTIL SVAR1='J'
END;
BEGIN
  CLEARSCREEN;
  FNAVN:='REGVARE:P1:0000:I';
  REWRITE(FVAR,FNAVN);
  IOPEN(VZ.H,FVAR,SKRIV);IF IER<>0 THEN OFEJL;
 
  FNAVN:='ORDRERG:P2:0000:I';
  REWRITE(FORD,FNAVN);
  IOPEN(OZ.H,FORD,SKRIV);IF IER<>0 THEN OFEJL;
 
  FNAVN:='SYSREG:P2:1:I';
  RESET(SYSFIL,FNAVN);
  SEEK(SYSFIL,1);
  GET(SYSFIL);
 
  FNAVN:='KUNDERG:P2:0000:I';
  RESET(FKUN,FNAVN);
  IOPEN(KZ.H,FKUN,LÆS);IF IER<>0 THEN OFEJL;
 
  LIN:='123456789012345678901234567890';
  REPEAT
    FINDKUND;
    IF R<>0.0 THEN
    FINDORDR;
    IF R=-2 THEN
    WITH ORDRE DO
    BEGIN
     RETTET:=FALSE;SRETTET:=FALSE;
     L:=0;
     CLEARSCREEN;
     WRITELN('SKAL ORDREN SLETTES (J/N)');
     REPEAT
       GOTOXY(30,1);READLN;READ(SVAR1)
     UNTIL (IORESULT=0) AND ((SVAR1='N') OR (SVAR1='J'));
     IF SVAR1='N' THEN
     BEGIN
      CLEARSCREEN;
      GOTOXY(1,1);WRITELN('ÆNDRINGER I ORDRE-HOVED (J/N)');
      REPEAT
      GOTOXY(30,1);READLN;READ(SVAR1)
      UNTIL (IORESULT=0) AND ((SVAR1='J') OR (SVAR1='N'));
      IF SVAR1='J' THEN RETBETINGELSER;
     REPEAT
      CLEARSCREEN;
      WRITELN('ORDREVEDLIGEHOLDELSE');
      WRITELN;
      WRITELN(KUNDE.NAVN(1),' ':4,'Ordredato:',HEAD(7)*10000.0+HEAD(8):8:-2,
              'Leveringsuge':20,HEAD(6):3);
      WRITELN(' ':77);
      WRITELN('  Varenummer','Antal':8,'Pris':10,'Tekst':14);
      ALI:=0;
      FOR I:=1 TO 15 DO
      WITH ORDRELIN(I) DO
      BEGIN
        VARELIN(I).VNR:=VNR(1);
        VARELIN(I).ANTAL:=VNR(2);
        VARELIN(I).PRIS:=PRIS;
        FILLCHAR(VARELIN(I).NAVN,30,' ');
        IF VNR(1)<>0 THEN ALI:=I
      END;
      RETSIDE;
      (*ORDREN TIL ORDREREGISTRET*)
      IF (SRETTET OR RETTET) THEN
      BEGIN
      FOR I:=1 TO 15 DO
      WITH ORDRELIN(I) DO
      BEGIN
        IF I<= ALI THEN
        BEGIN
        VNR(1):=VARELIN(I).VNR;
        VNR(2):=VARELIN(I).ANTAL;
        PRIS:=VARELIN(I).PRIS
        END
        ELSE VNR(1):=0
      END;
      PUTREC(OZ.H,FORD,A);
      END;
      IF HEAD(5)<99 THEN
      BEGIN
        L:=HEAD(5);
        NEXTREC(OZ.H,FORD,A);
        IF RETTET THEN
        BEGIN
          FOR I:=6 TO 12 DO HEAD(I):=QHEAD(I);
          FOR I:=1 TO 2 DO FOR J:=1 TO 30 DO LINE(I,J):=QLINE(I,J)
        END
      END
      ELSE
      BEGIN
       IF L<3 THEN
       BEGIN
        CLEARSCREEN;
        WRITELN('SKAL DER OPRETTES EN NY SIDE (J/N)');
        REPEAT
          GOTOXY(40,1);READLN;READ(SVAR1)
        UNTIL (IORESULT=0) AND ((SVAR1='J') OR (SVAR1='N'));
        IF SVAR1='J' THEN
        BEGIN
          HEAD(5):=L+1;
          INSERT(OZ.H,FORD,A);
          IF IER<>0 THEN ERROR;
          HEAD(5):=99;
          FOR I:=1 TO 15 DO ORDRELIN(I).VNR(1):=0;
          PUTREC(OZ.H,FORD,A);
          IF IER<>0 THEN ERROR;
          L:=L+1
        END ELSE L:=99
       END ELSE L:=99
      END
     UNTIL L=99;
     END ELSE SLETORDR
    END
  UNTIL R=0.0;
     ICLOSE(OZ.H,FORD);
     CLOSE(FORD);
     ICLOSE(KZ.H,FKUN);
     CLOSE(FKUN);
     ICLOSE(VZ.H,FVAR);
     CLOSE(FVAR);
     CHAIN('INTRE   *1','HOVSA:P1',QUQ)
END.

Full view