|
|
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 - metrics - download
Length: 7552 (0x1d80)
Types: TextFile
Names: »OPG8.CBL«
└─⟦c154ac35e⟧ Bits:30002656 COBOL-programmer til undervisning
└─⟦this⟧ »OPG8.CBL«
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»