DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d4cca93f4⟧ TextFile

    Length: 7552 (0x1d80)
    Types: TextFile
    Names: »OPG8.CBL«

Derivation

└─⟦c154ac35e⟧ Bits:30002656 COBOL-programmer til undervisning
    └─ ⟦this⟧ »OPG8.CBL« 

TextFile

       IDENTIFICATION DIVISION.
       PROGRAM-ID.                              OPG8.
       AUTHOR.                                  HOLD 4.
       DATE-WRITTEN.                            29.10.85.
       DATE-COMPILED.                           29.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 "IXPERSON.REG"
         ORGANIZATION IS INDEXED
         ACCESS MODE IS DYNAMIC
         RECORD KEY IS IXPERS-NR.
       SELECT LAES-FIL2 ASSIGN TO "P-TRANS.TRA".
       SELECT PRINTER    ASSIGN TO "LST:".
      *
      *
       DATA DIVISION.
       FILE SECTION.
       FD       LAES-FIL1
                LABEL RECORD IS STANDARD.
       01     IXPERSREG.
            02  IXPERS-NR                   PIC 9(10).
            02  IXPERS-FNVN                 PIC X(15).
            02  IXPERS-EFNVN                PIC X(20).
            02  IXPERS-GNVN                 PIC X(20).
            02  IXPERS-POSTNR               PIC 9(4).
            02  IXPERS-BYNAVN               PIC X(20).
            02  IXPERS-TLFNR                PIC 9(8).
      *
       FD       LAES-FIL2
                LABEL RECORD IS STANDARD.
        01    TRANSREG.
            02  TRANS-TYPE                PIC 9.
            02  TRANS-ARB.
              05  TRANS-NR                  PIC 9(10).
              05  TRANS-FNVN                PIC X(15).
              05  TRANS-EFNVN               PIC X(20).
              05  TRANS-GNVN                PIC X(20).
              05  TRANS-POSTNR              PIC 9(4).
              05  TRANS-BYNAVN              PIC X(20).
              05  TRANS-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.
      *
      *
       PROCEDURE DIVISION.
       STYR SECTION.
       STYR-IND.
           PERFORM OPEN-FILER.
           PERFORM INDLAES-DATO.
           PERFORM BEHANDL UNTIL EOF-LAES2="JA ".
           PERFORM LUK-FILER.
           STOP RUN.
        STYR-UD.
        EXIT.
      *
      *
       OPEN-FILER SECTION.
       OPEN-IND.
           OPEN I-O LAES-FIL1.
           OPEN INPUT LAES-FIL2.
           OPEN OUTPUT PRINTER.
           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.
      *
      *
       BEHANDL SECTION.
       BEH-IND.
           IF TRANS-TYPE = 1
             PERFORM OPRET
           ELSE
           IF TRANS-TYPE = 2
             PERFORM AENDRE
           ELSE
           IF TRANS-TYPE = 3
             PERFORM SLET.
        PERFORM LAES-LAES2.
       BEH-UD.
       EXIT.
      *
      *
       LUK-FILER SECTION.
       LUK-IND.
           CLOSE LAES-FIL1.
           CLOSE LAES-FIL2.
           CLOSE PRINTER.
       LUK-UD.
       EXIT.
      *
      *
       OPRET SECTION.
       OPR-IND.
           MOVE "OPRETTET" TO KOMMENTAR.
           WRITE IXPERSREG FROM TRANS-ARB INVALID KEY PERFORM FEJL-1.
           PERFORM SKRIV-DETAIL.
       OPR-UD.
       EXIT.
      *
      *
       AENDRE SECTION.
       AENDRE-IND.
         MOVE "ÆNDRET" TO KOMMENTAR.
         MOVE TRANS-NR TO IXPERS-NR.
         READ LAES-FIL1 INVALID KEY PERFORM FEJL-2.
          IF TRANS-FNVN NOT = SPACES MOVE SPACES TO IXPERS-FNVN
             MOVE TRANS-FNVN TO IXPERS-FNVN.
          IF TRANS-EFNVN NOT = SPACES MOVE SPACES TO IXPERS-EFNVN
             MOVE TRANS-EFNVN TO IXPERS-EFNVN.
          IF TRANS-GNVN NOT = SPACES MOVE SPACES TO IXPERS-GNVN
             MOVE TRANS-GNVN TO IXPERS-GNVN.
          IF TRANS-POSTNR NOT = SPACES
              MOVE TRANS-POSTNR TO IXPERS-POSTNR.
          IF TRANS-BYNAVN NOT = SPACES MOVE SPACES TO IXPERS-BYNAVN
              MOVE TRANS-BYNAVN TO IXPERS-BYNAVN.
          IF TRANS-TLFNR NOT = ZEROES MOVE ZEROES TO IXPERS-TLFNR
              MOVE TRANS-TLFNR TO IXPERS-TLFNR.
          REWRITE IXPERSREG INVALID KEY PERFORM FEJL-2.
        PERFORM SKRIV-DETAIL.
       AENDRE-UD.
       EXIT.
      *
      *
       SLET SECTION.
       SLET-IND.
             MOVE "SLETTET" TO KOMMENTAR.
             MOVE TRANS-NR TO IXPERS-NR.
             READ LAES-FIL1 INVALID KEY PERFORM FEJL-3.
             DELETE LAES-FIL1 INVALID KEY PERFORM FEJL-3.
           PERFORM SKRIV-DETAIL.
       SLET-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.
       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-LAES2 SECTION.
       L-L2-IND.
             READ LAES-FIL2 AT END MOVE "JA " TO EOF-LAES2.
       L-L2-UD.
       EXIT.
      *
      *
       FEJL-1 SECTION.
        F1-IND.
          MOVE "OPRETTELSE AF EKSISTERENDE POST" TO KOMMENTAR.
        F1-UD.
       EXIT.
      *
      *
       FEJL-2 SECTION.
        F2-IND.
         MOVE "ÆNDRING AF IKKE-EKSISTERENDE POST" TO KOMMENTAR.
        F2-UD.
       EXIT.
      *
      *
       FEJL-3 SECTION.
        F3-IND.
          MOVE "SLETTNING AF IKKE-EKSISTERENDE POST" TO KOMMENTAR.
        F3-UD.
       EXIT.
«eof»