Compaq COBOL AAQ2G1FTK User Manual

Page 318

Advertising
background image

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

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)

10–18 Producing Printed Reports

Advertising