Producing Printed Reports
10.6 Programming a Linage-File Compaq COBOL Report
Example 10–4 (Cont.) Checking for End-of-Page on a 28-Line Logical Page
01 HEAD-5.
02 H5-LC
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
01 HEAD-6
01 DETAIL-LINE.
02 DET-LC
02 DL-DATE PIC X(9).
02 FILLER
02 DL-AMT
02 FILLER
02 DL-DESC PIC X(20).
01 TOTAL-LINE.
02 TOT-LC
02 FILLER
02 TL
01 TOTAL-PURCHASES
01 PAGE-NUMBER
01 HOLD-I-ACCOUNT-NUMBER PIC X(9)
01 END-OF-FILE
01 THESE-MANY
PROCEDURE DIVISION.
A000-BEGIN.
OPEN INPUT INPUT-FILE
DISPLAY " Enter date--DD-MMM-YY:".
ACCEPT H2-DATE.
PERFORM A100-READ-INPUT UNTIL END-OF-FILE = "Y".
A050-WRAP-UP.
CLOSE INPUT-FILE
DISPLAY "END-OF-JOB".
STOP RUN.
A100-READ-INPUT.
READ INPUT-FILE AT END MOVE "Y" TO END-OF-FILE
DISPLAY INPUT-RECORD.
IF END-OF-FILE NOT = "Y"
AND I-ACCOUNT-NUMBER NOT = HOLD-I-ACCOUNT-NUMBER
IF END-OF-FILE NOT = "Y"
AND I-ACCOUNT-NUMBER = HOLD-I-ACCOUNT-NUMBER
MOVE I-ACCOUNT-NUMBER TO HOLD-I-ACCOUNT-NUMBER.
A200-NEW-CUSTOMER.
IF HOLD-I-ACCOUNT-NUMBER = LOW-VALUES
ELSE
10–18 Producing Printed Reports
PIC 99.
PIC X(4) VALUE "Date".
PIC X(7) VALUE SPACES.
PIC X(6) VALUE "Amount".
PIC X(10) VALUE SPACES.
PIC X(11) VALUE "Description".
PIC X(61) VALUE ALL "-".
PIC 99.
PIC X
VALUE SPACE.
PIC $ZZZ,ZZZ.99-.
PIC X
VALUE SPACE.
PIC 99.
PIC X(25) VALUE "Total purchases to date: ".
PIC $ZZZ,ZZZ,ZZZ.99-.
PIC S9(9)V99.
PIC S9(9).
PIC X
PIC 99
OUTPUT REPORT-FILE.
REPORT-FILE.
PERFORM A400-PRINT-TOTALS
MOVE HIGH-VALUES TO I-ACCOUNT-NUMBER.
PERFORM A200-NEW-CUSTOMER.
PERFORM A300-PRINT-DETAIL-LINE.
PERFORM A600-SET-UP-HEADERS
PERFORM A500-PRINT-HEADERS
PERFORM A300-PRINT-DETAIL-LINE
PERFORM A400-PRINT-TOTALS
PERFORM A600-SET-UP-HEADERS
PERFORM A500-PRINT-HEADERS
PERFORM A300-PRINT-DETAIL-LINE.
VALUE IS LOW-VALUES.
VALUE IS "N".
VALUE IS 1.
(continued on next page)
Need help?
Do you have a question about the COBOL AAQ2G1FTK and is the answer not in the manual?