|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 9472 (0x2500) Types: TextFile Names: »OPG6B.CBL«
└─⟦c154ac35e⟧ Bits:30002656 COBOL-programmer til undervisning └─ ⟦this⟧ »OPG6B.CBL«
IDENTIFICATION DIVISION. PROGRAM-ID. OPG6. AUTHOR. HOLD 4. DATE-WRITTEN. 24.09.85. DATE-COMPILED. .09.85. * * ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. PICCOLINE. OBJECT-COMPUTER. PICCOLINE. SPECIAL-NAMES. CONSOLE IS CRT. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT LAES-FIL1 ASSIGN TO "PERSON.TRA". SELECT LAES-FIL2 ASSIGN TO "P-TRANS.TRA". SELECT AJOUR-FIL ASSIGN TO "A-PERSON.TRA". SELECT PRINTER ASSIGN TO "LST:". * * DATA DIVISION. FILE SECTION. FD LAES-FIL1 LABEL RECORD IS STANDARD. 01 PERSREG. 02 PERS-NR PIC 9(10). 02 PERS-FNVN PIC X(15). 02 PERS-EFNVN PIC X(20). 02 PERS-GNVN PIC X(20). 02 PERS-POSTNR PIC 9(4). 02 PERS-BYNAVN PIC X(20). 02 PERS-TLFNR PIC 9(8). * FD LAES-FIL2 LABEL RECORD IS STANDARD. 01 TRANSREG. 02 TRANS-TYPE PIC 9. 02 TRANS-NR PIC 9(10). 02 TRANS-FNVN PIC X(15). 02 TRANS-EFNVN PIC X(20). 02 TRANS-GNVN PIC X(20). 02 TRANS-POSTNR PIC 9(4). 02 TRANS-BYNAVN PIC X(20). 02 TRANS-TLFNR PIC 9(8). * FD AJOUR-FIL LABEL RECORD IS STANDARD. 01 AJOUR-REG. 02 AJOUR-NR PIC 9(10). 02 AJOUR-FNVN PIC X(15). 02 AJOUR-EFNVN PIC X(20). 02 AJOUR-GNVN PIC X(20). 02 AJOUR-POSTNR PIC 9999. 02 AJOUR-BYNAVN PIC X(20). 02 AJOUR-TLFNR PIC 9(8). * FD PRINTER LABEL RECORD IS OMITTED. 01 PRINT-LINIE PIC X(132). * * WORKING-STORAGE SECTION. 01 RAPPORT-LINIE. 02 RAPP-PERSNR PIC 99B99B99B9999. 02 FILLER PIC X(5) VALUE ": ". 02 KOMMENTAR PIC X(114) VALUE SPACE. 01 EOF-LAES1 PIC XXX VALUE "NEJ". 01 EOF-LAES2 PIC XXX VALUE "NEJ". 01 DATO PIC 999999. 01 OVERSKRIFT-1. 02 FILLER PIC X(37) VALUE SPACES. 02 OVS1 PIC X(45) VALUE "A J O U R F Ø R I N G S R A P P O R T PR. ". 02 OVS1-DATO PIC 99B99B99. 02 FILLER PIC X(34) VALUE SPACES. 02 FILLER PIC XXXXX VALUE "SIDE ". 02 SIDE-NR PIC ZZ9. 01 OVERSKRIFT-2. 02 FILLER PIC X(132) VALUE "PERSON-NUMMER: FORKLARING:". 01 LINIE-TAELLER PIC 99 VALUE 18. 01 SIDETAL PIC 999 VALUE 001. 01 TEMP-REG. 02 TEMP-NR PIC 9(10). 02 TEMP-FNVN PIC X(15). 02 TEMP-EFNVN PIC X(20). 02 TEMP-GNVN PIC X(20). 02 TEMP-POSTNR PIC 9999. 02 TEMP-BYNAVN PIC X(20). 02 TEMP-TLFNR PIC 9(8). * * PROCEDURE DIVISION. STYR SECTION. STYR-IND. PERFORM OPEN-FILER. PERFORM INDLAES-DATO. PERFORM TRANS UNTIL EOF-LAES1="JA " OR EOF-LAES2="JA ". IF EOF-LAES2="JA " PERFORM LAES-NAESTE UNTIL EOF-LAES1="JA " ELSE PERFORM TRANS UNTIL EOF-LAES2="JA ". PERFORM LUK-FILER. STOP RUN. STYR-UD. EXIT. * * OPEN-FILER SECTION. OPEN-IND. OPEN INPUT LAES-FIL1. OPEN INPUT LAES-FIL2. OPEN OUTPUT AJOUR-FIL. OPEN OUTPUT PRINTER. PERFORM LAES-LAES1. MOVE PERSREG TO TEMP-REG. PERFORM LAES-LAES2. OPEN-UD. EXIT. * * INDLAES-DATO SECTION. DATO-IND. PERFORM CLEAR. DISPLAY "DAGS DATO:" AT 0101. ACCEPT DATO AT 0112. PERFORM CLEAR. DATO-UD. EXIT. * * CLEAR SECTION. CLS-IND. DISPLAY SPACES UPON CRT. CLS-UD. EXIT. * * TRANS SECTION. TRANS-IND. IF EOF-LAES1="NEJ" PERFORM LAES-NAESTE UNTIL PERS-NR NOT < TRANS-NR. MOVE SPACES TO KOMMENTAR. IF TRANS-TYPE=1 PERFORM OPRET ELSE IF TRANS-TYPE=2 PERFORM AENDRE ELSE PERFORM SLET. TRANS-UD. EXIT. * * LUK-FILER SECTION. LUK-IND. CLOSE LAES-FIL1. CLOSE LAES-FIL2. CLOSE AJOUR-FIL. CLOSE PRINTER. LUK-UD. EXIT. * * LAES-NAESTE SECTION. LNST-IND. WRITE AJOUR-REG FROM TEMP-REG. PERFORM LAES-LAES1. LNST-UD. EXIT. * * OPRET SECTION. OPR-IND. IF PERS-NR=TRANS-NR MOVE "OPRETTELSE AF EKSISTERENDE POST" TO KOMMENTAR ELSE PERFORM FLYT-LAES2-TIL-AJOUR MOVE "OPRETTET" TO KOMMENTAR. MOVE TRANSREG TO TEMP-REG. PERFORM SKRIV-DETAIL. OPR-UD. EXIT. * * AENDRE SECTION. AENDRE-IND. IF PERS-NR = TRANS-NR PERFORM FLYT-LAES2-TIL-AJOUR MOVE "ÆNDRET" TO KOMMENTAR PERFORM LAES-LAES1 ELSE IF TEMP-NR = TRANS-NR PERFORM FLYT-LAES2-TIL-AJOUR MOVE "ÆNDRET" TO KOMMENTAR ELSE MOVE "ÆNDRING AF IKKE EKSISTERENDE POST" TO KOMMENTAR. MOVE TRANSREG TO TEMP-REG. PERFORM SKRIV-DETAIL. AENDRE-UD. EXIT. * * SLET SECTION. SLET-IND. IF PERS-NR = TRANS-NR OR TEMP-NR = TRANS-NR MOVE "SLETTET" TO KOMMENTAR PERFORM LAES-LAES1 ELSE MOVE "SLETNING AF IKKE EKSISTERENDE POST" TO KOMMENTAR. PERFORM SKRIV-DETAIL. SLET-UD. EXIT. * * FLYT-LAES2-TIL-AJOUR SECTION. FLYT-IND. MOVE SPACES TO AJOUR-REG. MOVE TRANS-NR TO AJOUR-NR. IF TRANS-FNVN NOT = SPACES MOVE TRANS-FNVN TO AJOUR-FNVN ELSE MOVE TEMP-FNVN TO AJOUR-FNVN. IF TRANS-EFNVN NOT = SPACES MOVE TRANS-EFNVN TO AJOUR-EFNVN ELSE MOVE TEMP-EFNVN TO AJOUR-EFNVN. IF TRANS-GNVN NOT = SPACES MOVE TRANS-GNVN TO AJOUR-GNVN ELSE MOVE TEMP-GNVN TO AJOUR-GNVN. IF TRANS-POSTNR NOT = SPACES MOVE TRANS-POSTNR TO AJOUR-POSTNR ELSE MOVE TEMP-POSTNR TO AJOUR-POSTNR. IF TRANS-BYNAVN NOT = SPACES MOVE TRANS-BYNAVN TO AJOUR-BYNAVN ELSE MOVE TEMP-BYNAVN TO AJOUR-BYNAVN. IF TRANS-TLFNR NOT = ZEROES MOVE TRANS-TLFNR TO AJOUR-TLFNR ELSE MOVE TEMP-TLFNR TO AJOUR-TLFNR. WRITE AJOUR-REG. FLYT-UD. EXIT. * * SKRIV-DETAIL SECTION. SK-DET-IND. MOVE TRANS-NR TO RAPP-PERSNR. MOVE SIDETAL TO SIDE-NR. MOVE DATO TO OVS1-DATO. PERFORM LINIE-SKRIV. PERFORM LAES-LAES2. SK-DET-UD. EXIT. * * LINIE-SKRIV SECTION. LS-IND. IF LINIE-TAELLER = 18 WRITE PRINT-LINIE FROM OVERSKRIFT-1 AFTER ADVANCING PAGE WRITE PRINT-LINIE FROM OVERSKRIFT-2 AFTER ADVANCING 2 LINES ADD 1 TO SIDETAL WRITE PRINT-LINIE FROM RAPPORT-LINIE MOVE ZERO TO LINIE-TAELLER ELSE WRITE PRINT-LINIE FROM RAPPORT-LINIE AFTER ADVANCING 2 LINES. ADD 1 TO LINIE-TAELLER. LS-UD. EXIT. * * LAES-LAES1 SECTION. L-L1-IND. IF EOF-LAES1="JA " MOVE ZEROES TO PERS-NR ELSE READ LAES-FIL1 AT END MOVE "JA " TO EOF-LAES1. MOVE PERSREG TO TEMP-REG. L-L1-UD. EXIT. * * LAES-LAES2 SECTION. L-L2-IND. IF EOF-LAES2="JA " MOVE 9999999999 TO TRANS-NR ELSE READ LAES-FIL2 AT END MOVE "JA " TO EOF-LAES2. L-L2-UD. EXIT. «eof»