Compaq AAQ2G1FTK Marine Radio User Manual


 
Producing Printed Reports
10.6 Programming a Linage-File Compaq COBOL Report
Example 104 (Cont.) Checking for End-of-Page on a 28-Line Logical Page
01 HEAD-5.
02 H5-LC PIC 99.
02 FILLER PIC X(4) VALUE "Date".
02 FILLER PIC X(7) VALUE SPACES.
02 FILLER PIC X(6) VALUE "Amount".
02 FILLER PIC X(10) VALUE SPACES.
02 FILLER PIC X(11) VALUE "Description".
01 HEAD-6 PIC X(61) VALUE ALL "-".
01 DETAIL-LINE.
02 DET-LC PIC 99.
02 DL-DATE PIC X(9).
02 FILLER PIC X VALUE SPACE.
02 DL-AMT PIC $ZZZ,ZZZ.99-.
02 FILLER PIC X VALUE SPACE.
02 DL-DESC PIC X(20).
01 TOTAL-LINE.
02 TOT-LC PIC 99.
02 FILLER PIC X(25) VALUE "Total purchases to date: ".
02 TL PIC $ZZZ,ZZZ,ZZZ.99-.
01 TOTAL-PURCHASES PIC S9(9)V99.
01 PAGE-NUMBER PIC S9(9).
01 HOLD-I-ACCOUNT-NUMBER PIC X(9) VALUE IS LOW-VALUES.
01 END-OF-FILE PIC X VALUE IS "N".
01 THESE-MANY PIC 99 VALUE IS 1.
PROCEDURE DIVISION.
A000-BEGIN.
OPEN INPUT INPUT-FILE
OUTPUT REPORT-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
REPORT-FILE.
DISPLAY "END-OF-JOB".
STOP RUN.
A100-READ-INPUT.
READ INPUT-FILE AT END MOVE "Y" TO END-OF-FILE
PERFORM A400-PRINT-TOTALS
MOVE HIGH-VALUES TO I-ACCOUNT-NUMBER.
DISPLAY INPUT-RECORD.
IF END-OF-FILE NOT = "Y"
AND I-ACCOUNT-NUMBER NOT = HOLD-I-ACCOUNT-NUMBER
PERFORM A200-NEW-CUSTOMER.
IF END-OF-FILE NOT = "Y"
AND I-ACCOUNT-NUMBER = HOLD-I-ACCOUNT-NUMBER
PERFORM A300-PRINT-DETAIL-LINE.
MOVE I-ACCOUNT-NUMBER TO HOLD-I-ACCOUNT-NUMBER.
A200-NEW-CUSTOMER.
IF HOLD-I-ACCOUNT-NUMBER = LOW-VALUES
PERFORM A600-SET-UP-HEADERS
PERFORM A500-PRINT-HEADERS
PERFORM A300-PRINT-DETAIL-LINE
ELSE
PERFORM A400-PRINT-TOTALS
PERFORM A600-SET-UP-HEADERS
PERFORM A500-PRINT-HEADERS
PERFORM A300-PRINT-DETAIL-LINE.
(continued on next page)
1018 Producing Printed Reports