PROGRAM POSTERRENTER;(*$IISFHEAD*) KPOST=RECORD        A:AR;$        NR:ARRAY (1..23) OF INTEGER;$G (*KNR1,KNR2,ANDBETADR,K[DENR1,K[DENR2,RESTORDRE,LAND,BETAKODE,LEVKODE,GG   RENTKODE,KREDDAGE,ANTFAKT,SIDFAKD1,SIDFAKD2,EMBALLAGE,BR[KAGE,RABAT,G.   EXPORT,RFSALDO,PERTRENT,NPOSTNR1,NPOSTNR2*).N     (* NAVN,UDVNAVN,LEVADR*)NAVN:ARRAY(1..3) OF PACKED ARRAY (1..30) OF CHAR;N-        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;'# (*SALDO1-6,]RK\B,M]NK\B,SID]RK\B*)#  END;JOURPOST=RECORD       KONTONR1,KONTONR2,       DATO1,DATO2,       TEKSTKODE,       BILAG1,BILAG2,(       KGB                     :INTEGER;($       BEL\B                   :REAL$END;JOURFILE=FILE OF JOURPOST;SYSPOST=RECORDHELTAL:ARRAY(1..24) OF INTEGER;KGB:ARRAY (1..5) OF REAL;%BETADAT:PACKED ARRAY (1..13) OF CHAR;%1KODE:ARRAY (1..2) OF PACKED ARRAY (1..10) OF CHAR1END;SYSFILE=FILE OF SYSPOST;POSTPOST=RECORD       A:AR;M      (*KNR1-2,DATO1-2,TEKSTKODE,BILAGSNR1-2*) HELTAL:ARRAY(1..7) OF INTEGER;M3      (*BEL\B,RESTBEL\B*) REEL:ARRAY (1..2) OF REAL3END;POSTZONE=RECORD       H:ISFHEAD;"       T:ARRAY (1..508) OF INTEGER"END; KZONE=RECORD        H:ISFHEAD;"        T:ARRAY(1..918) OF INTEGER"  END;PROCSTAT=RECORD       NP,NROSTART:INTEGEREND;NPFILE=FILE OF PROCSTAT; VAR    FPOST,FKUN : ISF;        JOURFIL:JOURFILE;        SYSFIL:SYSFILE;        KZ:KZONE;        PZ:POSTZONE;        PPOST:POSTPOST;        KUNDE:KPOST;        NRPF,CF:NPFILE;        FNAVN:STRING(20);        IER,I,K,LINIE,SIDE!                        :INTEGER;!        QUQ:^INTEGER;        CH:CHAR;        R1:REAL;&        DKB1,DKB:ARRAY (1..5) OF REAL;&<        TEKST:ARRAY (1..10) OF PACKED ARRAY (1..15) OF CHAR;<:        KONTO:ARRAY (1..5) OF PACKED ARRAY (1..5) OF CHAR;:(*$L-*) (*$R-,IEXCOMCOP*) (*$IIOPEN*) (*$IS[T\G*) (*$IREADPROC*) (*$IFINDPOST*) (*$IFORSKYD*) (*$IICLOSE*) (*$IPUTGET*) (*$IINSERT*) (*$INEXTREC*) (*$R+*)(*$L+*) PROCEDURE ERROR; BEGIN#   WRITELN('FEJL I REGISTER ',IER);#   ICLOSE(KZ.H,FKUN);   ICLOSE(PZ.H,FPOST);   WRITELN('ICLOSE ',IER);   I:=I DIV 0 END;PROCEDURE OFEJL;BEGIN  GOTOXY(1,20);C  WRITELN('REGISTERFEJL ',IER,' . SITUATIONEN ER FORS\GT REDDET.');C.  WRITELN('TAST 0, HVIS DER SKAL FORTS[TTES');.7  REPEAT GOTOXY(40,21);READLN;READ(I) UNTIL IORESULT=0;7  IF I<>0 THEN ERROR;  CLEARSCREENEND;PROCEDURE PRUT;VAR I:INTEGER;    DIFFE:REAL;BEGIN DIFFE:=0.0; FOR I:=1 TO 5 DO BEGINI   WRITELN(LIST,LINIE:5,' ':5,KONTO(I),SIDE-1:22,' ':10,DKB(I)/100:12:2);I   LINIE:=LINIE+1; END; WRITELN(LIST);+ WRITELN(LIST,'Difference',' ':37,0.0:12:2)+END;PROCEDURE DOIT;BEGIN  LINIE:=1;  REPEAT    GET(JOURFIL);    WITH JOURFIL^ DO    IF TEKSTKODE=9 THEN         BEGIN!           IF LINIE MOD 60=1 THEN!           BEGIN<             IF LINIE>1 THEN FOR I:=1 TO 8 DO WRITELN(LIST);<D             WRITELN(LIST,'B O G H O L D E R I J O U R N A L',' ':5,D<                          'Renteposteringer',' ':18,SIDE:5);<             WRITELN(LIST);L      WRITELN(LIST,'Linie',' ':5,'Tekst',' ':17,'Bilag',' ':5,'Debet',' ':7,LK                          'Bel|b',' ':4,'Kredit',SYSFIL^.HELTAL(1)*10000.0+K2                          SYSFIL^.HELTAL(2):8:-2);2             WRITELN(LIST);             SIDE:=SIDE+1           END;$           DATO1:=SYSFIL^.HELTAL(1);$$           DATO2:=SYSFIL^.HELTAL(2);$           BILAG1:=0;           BILAG2:=SIDE-1;$           DKB(KGB):=DKB(KGB)-BEL\B;$!           KUNDE.NR(1):=KONTONR1;!!           KUNDE.NR(2):=KONTONR2;!%           GETREC(KZ.H,FKUN,KUNDE.A);%            IF IER<>0 THEN ERROR;            WITH KUNDE DO           BEGIN             R1:=BEL\B;?             IF CH='J' THEN SALDOK\B(3):=SALDOK\B(3)+BEL\B ELSE?.               SALDOK\B(4):=SALDOK\B(4)+BEL\B;.9             WRITELN(LIST,LINIE:5,' ':5,TEKST(TEKSTKODE),93                       BILAG1*10000.0+BILAG2:12:-2,37                       KONTONR1*10000.0+KONTONR2:10:-2,77                       BEL\B/100:12:2,' ':4,KONTO(KGB),70                       DATO1*10000.0+DATO2:9:-2)0           END;           LINIE:=LINIE+1;%           PUTREC(KZ.H,FKUN,KUNDE.A);%            IF IER<>0 THEN ERROR;            WITH PPOST DO           BEGIN!             HELTAL(1):=KONTONR1;!!             HELTAL(2):=KONTONR2;!             HELTAL(3):=DATO1;             HELTAL(4):=DATO2;"             HELTAL(5):=TEKSTKODE;"             HELTAL(6):=BILAG1;             HELTAL(7):=BILAG2;             REEL(1):=BEL\B;             REEL(2):=R1;"             INSERT(PZ.H,FPOST,A);"!             IF IER<>0 THEN ERROR!           END;         END  UNTIL JOURFIL^.TEKSTKODE=0;  PRUTEND;BEGIN    FNAVN:='KUNDERG:P2:0000:I';  REWRITE(FKUN,FNAVN);.  IOPEN(KZ.H,FKUN,SKRIV);IF IER<>0 THEN OFEJL;.   FNAVN:='POSTREG:P2:0000:I';  REWRITE(FPOST,FNAVN);  IOPEN(PZ.H,FPOST,SKRIV);  IF IER<>0 THEN OFEJL;  FNAVN:='SYSREG:P2:1:I';  REWRITE(SYSFIL,FNAVN);  SEEK(SYSFIL,1);  GET(SYSFIL);  SIDE:=SYSFIL^.HELTAL(19);  FNAVN:='RENTPOST:P1:50:I';  REWRITE(JOURFIL,FNAVN);  LINIE:=1; 6  FOR I:=1 TO 5 DO BEGIN DKB(I):=0.0;DKB1(I):=0.0 END;6  TEKST(9):='Rentenota      ';  KONTO(1):='Kasse';  KONTO(2):='Bank ';  KONTO(3):='Giro ';  KONTO(4):='Rabat';  KONTO(5):='Rente';   CLEARSCREEN;  GOTOXY(1,1);&  WRITELN('Antal renteposteringer ?');&  REPEAT"       GOTOXY(25,1);READLN;READ(I)"   UNTIL (IORESULT=0) AND (I>=0);   GOTOXY(1,2);K  WRITELN('Sker rentepostering i forbindelse med m}nedsafslutning  (J/N)');K  REPEAT     GOTOXY(63,2);READLN;READ(CH) H  UNTIL (IORESULT=0) AND ((CH='J') OR (CH='N') OR (CH='j') OR (CH='n'));H  IF CH='j' THEN CH:='J';  %  IF (I>PZ.H.NREC-PZ.H.RECINUSE) THEN%7     WRITELN('Der er ikke plads til flere posteringer')7  ELSE  BEGIN    SEEK(JOURFIL,1);	    DOIT;	    ICLOSE(KZ.H,FKUN);    ICLOSE(PZ.H,FPOST);    FOR I:=1 TO 5 DO,      SYSFIL^.KGB(I):=SYSFIL^.KGB(I)+DKB(I);,    SYSFIL^.HELTAL(19):=SIDE;    SEEK(SYSFIL,1);    PUT(SYSFIL);  END;  CLOSE(JOURFIL);  CLOSE(SYSFIL);  FNAVN:='PROCSTAT:P2:0:I';(*$C-*)  REPEAT    REWRITE(NRPF,FNAVN);    SEEK(NRPF,1)  UNTIL IORESULT=0;(*$C+*)  GET(NRPF);  NRPF^.NP:=1;  SEEK(NRPF,1);  PUT(NRPF);  REPEAT    GOTOXY(1,20);3    WRITELN('S{t plade 1 i drev 1 og tryk RETURN');3    READLN;(*$C-*)    REWRITE(CF,'C1:P1:0:J');    SEEK(CF,1)(*$C+*)  UNTIL IORESULT=0;  CLOSE(CF);  CLOSE(NRPF);$  CHAIN('INTRE   *1','HOVSA:P1',QUQ)$END.  ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 