Trailing-Edge
-
PDP-10 Archives
-
k20v7d
-
uetp/lib/pbrpt.cbl
There are 13 other files named pbrpt.cbl in the archive. Click here to see a list.
IDENTIFICATION DIVISION.
PROGRAM-ID. PBRPT.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES. CHANNEL (1) TOP-OF-FORM.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO DSK.
SELECT SORT-FILE ASSIGN DSK,DSK,DSK.
SELECT PRINT-FILE ASSIGN TO DSK.
SELECT PBINPT-FILE ASSIGN TO DSK
RECORDING MODE IS ASCII.
DATA DIVISION.
FILE SECTION.
FD PBINPT-FILE
VALUE OF ID 'PBINPTFIL'.
01 PBINPT-REC PIC X(100).
FD PRINT-FILE
VALUE OF ID IS PRNT-LABEL-WS.
01 PRINT-REC.
05 PARENT-P PIC Z(9).
05 FILLER PIC XXX.
05 BRANCH-P PIC Z(9).
05 FILLER PIC XXX.
05 METER-P PIC Z(9).
05 FILLER PIC XXX.
05 UPDATED-P PIC Z(9).
05 FILLER PIC XXX.
05 ACT-RECS-P PIC Z(9).
05 FILLER PIC XXX.
05 CUSTOMER-P PIC Z(9).
05 FILLER PIC XXX.
05 DATE-P PIC X(8).
FD IN-FILE VALUE OF ID IS CRT12-REPORT-FILE-NME.
01 POSTAL-REC.
05 PARENT-P PIC 9(4).
05 BRANCH-P PIC 9(4).
05 METER-P PIC 9(5).
05 UPDATED-P PIC 9(5).
05 ACT-RECS-P PIC 9(5).
05 CUSTOMER-P PIC 9(5).
05 DATE-P PIC 9(6).
SD SORT-FILE.
* RECORD CONTAINS 100 CHARACTERS.
01 SORT-REC.
05 PARENT-P PIC 9(4).
05 BRANCH-P PIC 9(4).
05 METER-P PIC 9(5).
05 UPDATED-P PIC 9(5).
05 ACT-RECS-P PIC 9(5).
05 CUSTOMER-P PIC 9(5).
05 DATE-P PIC 9(6).
* 05 FILLER PIC X(64).
WORKING-STORAGE SECTION.
01 CRT12-REPORT-FILE-NME PIC X(9).
01 PRNT-LABEL-WS PIC X(9).
01 REC-COUNT-WS PIC 99999 VALUE ZERO.
01 LIN-CNT-WS PIC 9(4) VALUE 9999.
01 DATE-HOLD-WS.
05 YR-HOLD-WS PIC 99.
05 MO-HOLD-WS PIC 99.
05 DY-HOLD-WS PIC 99.
01 DATE-MASK-WS.
05 MO-WS PIC 99.
05 FILLER PIC X VALUE '/'.
05 DY-WS PIC 99.
05 FILLER PIC X VALUE '/'.
05 YR-WS PIC 99.
01 FILE-NAME PICTURE X(120) DISPLAY-7
VALUE IS 'DSK:SHARED.FIL'.
01 FILE-PASSWORD PICTURE X(5) DISPLAY-7.
01 NUMBER-OF-PAGES PICTURE S9(10) COMPUTATIONAL VALUE IS 2.
01 THE-ERROR PICTURE S9(10) COMPUTATIONAL VALUE IS 0.
01 USER-PRIORITY PICTURE S9(10) COMPUTATIONAL VALUE IS 0.
01 MY-JOB-NUMBER PIC S9(10) COMP.
01 MY-TERMINAL-NUMBER PIC S9(10) COMP.
01 HEADING1-WS.
05 HD1-WS PIC X(12) VALUE ' PARENT'.
05 HD2-WS PIC X(12) VALUE ' BRANCH'.
05 HD3-WS PIC X(12) VALUE ' METER'.
05 HD4-WS PIC X(12) VALUE ' # OF TIMES'.
05 HD5-WS PIC X(12) VALUE ' NUMBER OF'.
05 HD6-WS PIC X(12) VALUE ' CUSTOMER'.
05 HD7-WS PIC X(8) VALUE ' DATE'.
01 HEADING2-WS.
05 HD8-WS PIC X(12) VALUE 'POST OFFICE'.
05 HD9-WS PIC X(12) VALUE 'POST OFFICE'.
05 HD10-WS PIC X(12) VALUE ' NUMBER'.
05 HD11-WS PIC X(12) VALUE ' UPDATED'.
05 HD12-WS PIC X(12) VALUE 'ACTIVITY REC'.
05 HD13-WS PIC X(12) VALUE ' NUMBER'.
05 HD14-WS PIC X(8) VALUE SPACES.
01 COMMUNICATION-RECORD. COPY COMREC.
PROCEDURE DIVISION.
STRT.
MOVE ZERO TO CR-TRANSACTION-SUBTYPE.
DISPLAY ' PROGRAM HAS TWO FUNCTIONS:'.
DISPLAY ' 01 = NORMAL POSTAL REPORT'.
DISPLAY ' 02 = SORT 20,000 TEST RECORDS'
DISPLAY ' AND LIST FIRST AND LAST FIFTY RECORDS'.
DISPLAY 'ENTER CODE (01 OR 02)? >' WITH NO ADVANCING.
ACCEPT CR-TRANSACTION-NUMBER.
IF CR-TRANSACTION-NUMBER = 01 GO TO CALL-ROUTINES-DBMS.
IF CR-TRANSACTION-NUMBER = 02 GO TO TEST-SORT-ROUTINE.
DISPLAY ' WRONG CODE - TRY AGAIN...'.
GO TO STRT.
CALL-ROUTINES-DBMS.
MOVE 'POSTALRPT' TO PRNT-LABEL-WS.
DISPLAY 'PLEASE ENTER THE NAME OF THE POSTAL PRINT FILE'.
DISPLAY ' DEFAULT IS POSTAL.FIL'.
DISPLAY 'FILE? >' WITH NO ADVANCING.
ACCEPT CRT12-REPORT-FILE-NAME.
IF CRT12-REPORT-FILE-NAME = SPACES
MOVE 'POSTALFIL' TO CRT12-REPORT-FILE-NAME.
MOVE CRT12-REPORT-FILE-NAME TO CRT12-REPORT-FILE-NME.
PRINT-OPTIONS-SWITCH.
DISPLAY 'OPTIONS - 12 -- ACCESS DATA BASE'.
DISPLAY ' - 15 -- ACCESS POSTAL FILE ONLY'.
DISPLAY 'TYPE? >' WITH NO ADVANCING.
ACCEPT CR-TRANSACTION-NUMBER.
IF CR-TRANSACTION-NUMBER = 15
GO TO SORT-POSTAL-FILE.
IF CR-TRANSACTION-NUMBER NOT = 12
DISPLAY ' WRONG TYPE CODE (12 OR 15 ONLY) '
DISPLAY ' PLEASE TRY AGAIN...'
GO TO PRINT-OPTIONS-SWITCH.
MOVE 1 TO USER-PRIORITY.
MOVE 'REPORT' TO CR-user-application.
DISPLAY 'Your Identification (8 chars):' WITH NO ADVANCING.
ACCEPT CR-user-identity.
MOVE MY-JOB-NUMBER TO CR-user-job-number.
MOVE MY-TERMINAL-NUMBER TO CR-user-terminal-number.
CALL PBDBMS USING COMMUNICATION-RECORD.
MOVE 98 TO CR-TRANSACTION-NUMBER.
CALL DBOPEN USING COMMUNICATION-RECORD.
IF CR-RETURN-CODE > ZERO
DISPLAY '[COULD NOT OPEN DATA BASE]'
GO TO STOP-RUN
ELSE
NEXT SENTENCE.
MOVE 12 TO CR-TRANSACTION-NUMBER.
MOVE 0 TO CR-transaction-subtype.
CALL-LOOP-DBTRAN.
CALL DBTRAN USING COMMUNICATION-RECORD.
IF CR-return-code > 0
* THEN
DISPLAY '[Could not get data base report data]'
DISPLAY CR-RETURN-CODE
GO TO CLOSE-DBMS-X
ELSE
NEXT SENTENCE.
IF CR-TRANSACTION-SUBTYPE NOT = 4
GO TO CALL-LOOP-DBTRAN.
CLOSE-DBMS-X.
MOVE 99 TO CR-transaction-number.
CALL DBCLOS USING COMMUNICATION-RECORD.
GO TO SORT-POSTAL-FILE.
STOP-RUN.
STOP RUN.
SORT-POSTAL-FILE.
SORT SORT-FILE ON
ASCENDING KEY PARENT-P OF SORT-REC
DESCENDING KEY BRANCH-P OF SORT-REC
ASCENDING KEY METER-P OF SORT-REC
ASCENDING KEY CUSTOMER-P OF SORT-REC
INPUT PROCEDURE IS GET-THEM
OUTPUT PROCEDURE IS TYPE-THEM.
END-IT.
STOP RUN.
GET-THEM SECTION.
GET-START.
OPEN INPUT IN-FILE.
RELEASE-LOOP.
READ IN-FILE; AT END GO TO GET-THEM-EXIT.
MOVE CORRESPONDING POSTAL-REC TO SORT-REC.
RELEASE SORT-REC.
GO TO RELEASE-LOOP.
GET-THEM-EXIT.
CLOSE IN-FILE.
END-OF-GET-SECTION.
EXIT.
TYPE-THEM SECTION.
OPEN-PRINT-FILE.
OPEN OUTPUT PRINT-FILE.
MOVE SPACES TO PRINT-REC.
MOVE ZEROS TO POSTAL-REC.
RETURN-LOOP.
RETURN SORT-FILE AT END GO TO END-OF-TYPE.
CHECK-HOF.
IF LIN-CNT-WS > 55
PERFORM HEADING-ROUTINE THRU HEADINGS-EXIT.
IF PARENT-P IN POSTAL-REC NOT = PARENT-P
IN SORT-REC
MOVE SPACES TO PRINT-REC
PERFORM PRINT-A-LINE.
MOVE CORRESPONDING SORT-REC TO PRINT-REC.
CHECK-EQ-FIELDS.
IF PARENT-P IN POSTAL-REC = PARENT-P
IN SORT-REC
MOVE ZEROS TO PARENT-P IN PRINT-REC.
IF BRANCH-P IN POSTAL-REC = BRANCH-P
IN SORT-REC
MOVE ZEROS TO BRANCH-P IN PRINT-REC.
IF METER-P IN POSTAL-REC = METER-P
IN SORT-REC
MOVE ZEROS TO METER-P IN PRINT-REC.
IF CUSTOMER-P IN POSTAL-REC = CUSTOMER-P
IN SORT-REC
MOVE ZEROS TO CUSTOMER-P IN PRINT-REC.
DATE-MASKING.
MOVE DATE-P IN SORT-REC TO DATE-HOLD-WS.
MOVE MO-HOLD-WS TO MO-WS.
MOVE DY-HOLD-WS TO DY-WS.
MOVE YR-HOLD-WS TO YR-WS.
MOVE DATE-MASK-WS TO DATE-P IN PRINT-REC.
IF DATE-HOLD-WS = ZEROS
MOVE SPACES TO DATE-P IN PRINT-REC.
WRITE-PRINT-LINE.
PERFORM PRINT-A-LINE.
RETURN-TO-SORT-READ.
MOVE CORRESPONDING SORT-REC TO POSTAL-REC.
GO TO RETURN-LOOP.
HEADING-ROUTINE.
MOVE ZERO TO LIN-CNT-WS.
MOVE SPACES TO PRINT-REC.
ADVANCE-HOF.
WRITE PRINT-REC BEFORE ADVANCING TOP-OF-FORM.
HEADINGS-1-2.
MOVE HEADING1-WS TO PRINT-REC.
PERFORM PRINT-A-LINE.
MOVE HEADING2-WS TO PRINT-REC.
PERFORM PRINT-A-LINE 3 TIMES.
HEADINGS-EXIT.
EXIT.
PRINT-A-LINE.
WRITE PRINT-REC.
MOVE SPACES TO PRINT-REC.
ADD 1 TO LIN-CNT-WS.
END-OF-TYPE.
CLOSE PRINT-FILE.
PRINTING-EXIT.
EXIT.
TEST-SORT-ROUTINE SECTION.
SORT SORT-FILE
DESCENDING KEY PARENT-P IN SORT-REC
DESCENDING KEY BRANCH-P IN SORT-REC
INPUT PROCEDURE IS PBINPT-GET
OUTPUT PROCEDURE IS PBINPT-PRINT.
TSR-END.
GO TO END-IT.
PBINPT-GET SECTION.
OPEN INPUT PBINPT-FILE.
PBINPT-READ.
READ PBINPT-FILE AT END GO TO PBINPT-CLOSE.
MOVE PBINPT-REC TO SORT-REC.
RELEASE SORT-REC.
GO TO PBINPT-READ.
PBINPT-CLOSE.
CLOSE PBINPT-FILE.
PBINPT-IP-EXIT.
EXIT.
PBINPT-PRINT SECTION.
MOVE 'PBSORTRPT' TO PRNT-LABEL-WS.
OPEN OUTPUT PRINT-FILE.
MOVE SPACES TO PRINT-REC.
MOVE ZEROS TO LIN-CNT-WS.
PBINPT-RELEASE.
RETURN SORT-FILE AT END GO TO PBINPT-END.
PBINPT-LOOP.
IF LIN-CNT-WS > 50
WRITE PRINT-REC BEFORE ADVANCING TOP-OF-FORM
MOVE ZEROS TO LIN-CNT-WS.
IF REC-COUNT-WS > 50 AND < 19951
GO TO PBINPT-ADD.
PBINPT-MOVE.
MOVE SORT-REC TO PRINT-REC.
PERFORM PRINT-A-LINE.
PBINPT-ADD.
ADD 1 TO REC-COUNT-WS.
PBINPT-RETURN.
GO TO PBINPT-RELEASE.
PBINPT-END.
CLOSE PRINT-FILE.
PBINPT-EOJ.
EXIT.
END-ROUTINE SECTION.
EOJ-EXIT.
EXIT.