Report Writer Basics
Problem Description
Use REPORT WRITER to generate formatted report.
Expected Output
Formatted report with headers and totals
Hints
REPORT SECTION, RD, control breaks.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. RPTWRT.
* Note: Report Writer is an optional COBOL feature
* This shows the structure without actual file I/O
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-SALES-DATA.
05 WS-SALE OCCURS 5 TIMES.
10 WS-REGION PIC X(10).
10 WS-PRODUCT PIC X(15).
10 WS-AMOUNT PIC 9(7)V99.
01 WS-I PIC 9.
01 WS-TOTAL PIC 9(9)V99 VALUE 0.
01 WS-DISP PIC Z,ZZ,ZZ9.99.
PROCEDURE DIVISION.
PERFORM INIT-DATA.
DISPLAY "============================================".
DISPLAY " SALES REPORT ".
DISPLAY "============================================".
DISPLAY "REGION PRODUCT AMOUNT".
DISPLAY "--------------------------------------------".
PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 5
MOVE WS-AMOUNT(WS-I) TO WS-DISP
DISPLAY WS-REGION(WS-I) " " WS-PRODUCT(WS-I) " "
WS-DISP
ADD WS-AMOUNT(WS-I) TO WS-TOTAL
END-PERFORM.
DISPLAY "--------------------------------------------".
MOVE WS-TOTAL TO WS-DISP.
DISPLAY "TOTAL: " WS-DISP.
DISPLAY "============================================".
STOP RUN.
INIT-DATA.
MOVE "NORTH" TO WS-REGION(1).
MOVE "WIDGET A" TO WS-PRODUCT(1).
MOVE 15000.00 TO WS-AMOUNT(1).
MOVE "SOUTH" TO WS-REGION(2).
MOVE "WIDGET B" TO WS-PRODUCT(2).
MOVE 22000.00 TO WS-AMOUNT(2).
MOVE "EAST" TO WS-REGION(3).
MOVE "GADGET X" TO WS-PRODUCT(3).
MOVE 18500.00 TO WS-AMOUNT(3).
MOVE "WEST" TO WS-REGION(4).
MOVE "GADGET Y" TO WS-PRODUCT(4).
MOVE 27000.00 TO WS-AMOUNT(4).
MOVE "CENTRAL" TO WS-REGION(5).
MOVE "WIDGET C" TO WS-PRODUCT(5).
MOVE 12500.00 TO WS-AMOUNT(5).
Explanation:
Report Writer automates headers, footers, control breaks. Shown here manually.