WRITERS in COBOL refers to the Report Writer functionality, which provides a powerful and flexible way to generate formatted reports. Report Writer automates many aspects of report generation including page formatting, headings, footings, and control breaks, making it easier to create professional-looking reports.
Report Writer syntax and usage patterns for different report generation scenarios.
123456789101112131415161718192021222324252627IDENTIFICATION DIVISION. PROGRAM-ID. REPORT-WRITER-EXAMPLE. DATA DIVISION. REPORT SECTION. RD SALES-REPORT PAGE LIMIT IS 60 LINES HEADING 1 FIRST DETAIL 5 LAST DETAIL 55 FOOTING 58. 01 PAGE-HEADING TYPE IS PAGE HEADING. 03 LINE 1. 05 COLUMN 20 VALUE "SALES REPORT". 05 COLUMN 60 VALUE "PAGE ". 05 COLUMN 66 PIC ZZZ9 SOURCE PAGE-COUNTER. 01 DETAIL-LINE TYPE IS DETAIL. 03 LINE PLUS 1. 05 COLUMN 5 PIC X(20) SOURCE CUSTOMER-NAME. 05 COLUMN 30 PIC ZZZ,ZZ9.99 SOURCE SALE-AMOUNT. PROCEDURE DIVISION. INITIATE SALES-REPORT GENERATE DETAIL-LINE TERMINATE SALES-REPORT STOP RUN.
Basic Report Writer structure with page heading and detail lines.
12345678910111213141516171819202122232425262728IDENTIFICATION DIVISION. PROGRAM-ID. REPORT-CONTROL-BREAKS. DATA DIVISION. REPORT SECTION. RD DEPARTMENT-REPORT CONTROL IS DEPT-NUMBER PAGE LIMIT IS 60 LINES. 01 DEPT-HEADING TYPE IS CONTROL HEADING DEPT-NUMBER. 03 LINE PLUS 1. 05 COLUMN 10 VALUE "DEPARTMENT: ". 05 COLUMN 22 PIC 9(3) SOURCE DEPT-NUMBER. 01 DETAIL-LINE TYPE IS DETAIL. 03 LINE PLUS 1. 05 COLUMN 5 PIC X(20) SOURCE EMPLOYEE-NAME. 05 COLUMN 30 PIC ZZZ,ZZ9.99 SOURCE SALARY. 01 DEPT-FOOTING TYPE IS CONTROL FOOTING DEPT-NUMBER. 03 LINE PLUS 1. 05 COLUMN 25 VALUE "DEPT TOTAL: ". 05 COLUMN 38 PIC ZZZ,ZZ9.99 SOURCE DEPT-TOTAL. PROCEDURE DIVISION. INITIATE DEPARTMENT-REPORT GENERATE DETAIL-LINE TERMINATE DEPARTMENT-REPORT STOP RUN.
Report Writer with control breaks for grouping data by department.
123456789101112131415161718192021222324252627282930313233343536373839404142IDENTIFICATION DIVISION. PROGRAM-ID. REPORT-MULTIPLE-GROUPS. DATA DIVISION. REPORT SECTION. RD COMPREHENSIVE-REPORT PAGE LIMIT IS 66 LINES HEADING 1 FIRST DETAIL 10 LAST DETAIL 60 FOOTING 63. 01 REPORT-HEADING TYPE IS REPORT HEADING. 03 LINE 1. 05 COLUMN 25 VALUE "COMPREHENSIVE SALES REPORT". 03 LINE 3. 05 COLUMN 10 VALUE "DATE: ". 05 COLUMN 16 PIC X(10) SOURCE CURRENT-DATE. 01 PAGE-HEADING TYPE IS PAGE HEADING. 03 LINE 1. 05 COLUMN 5 VALUE "CUSTOMER". 05 COLUMN 25 VALUE "PRODUCT". 05 COLUMN 45 VALUE "AMOUNT". 03 LINE 2. 05 COLUMN 1 VALUE ALL "-". 01 DETAIL-LINE TYPE IS DETAIL. 03 LINE PLUS 1. 05 COLUMN 5 PIC X(20) SOURCE CUSTOMER-NAME. 05 COLUMN 25 PIC X(15) SOURCE PRODUCT-NAME. 05 COLUMN 45 PIC ZZZ,ZZ9.99 SOURCE SALE-AMOUNT. 01 PAGE-FOOTING TYPE IS PAGE FOOTING. 03 LINE 63. 05 COLUMN 5 VALUE "PAGE ". 05 COLUMN 10 PIC ZZZ9 SOURCE PAGE-COUNTER. PROCEDURE DIVISION. INITIATE COMPREHENSIVE-REPORT GENERATE DETAIL-LINE TERMINATE COMPREHENSIVE-REPORT STOP RUN.
Report Writer with multiple report groups for comprehensive reporting.
Appears at the top of each page.
1201 PAGE-HEADING TYPE IS PAGE HEADING. 03 LINE 1 COLUMN 20 VALUE "REPORT TITLE".
Contains the main report data.
12301 DETAIL-LINE TYPE IS DETAIL. 03 LINE PLUS 1. 05 COLUMN 5 PIC X(20) SOURCE DATA-FIELD.
Appears at the start of a control group.
123401 CONTROL-HEADING TYPE IS CONTROL HEADING FIELD-NAME. 03 LINE PLUS 1. 05 COLUMN 10 VALUE "GROUP: ". 05 COLUMN 17 PIC 9(3) SOURCE FIELD-NAME.
Appears at the end of a control group.
123401 CONTROL-FOOTING TYPE IS CONTROL FOOTING FIELD-NAME. 03 LINE PLUS 1. 05 COLUMN 25 VALUE "TOTAL: ". 05 COLUMN 32 PIC ZZZ,ZZ9.99 SOURCE GROUP-TOTAL.
Report Type | Syntax | Use Case |
---|---|---|
Page Heading | TYPE IS PAGE HEADING | Page titles and headers |
Detail Line | TYPE IS DETAIL | Main report data |
Control Heading | TYPE IS CONTROL HEADING | Group headers |
Control Footing | TYPE IS CONTROL FOOTING | Group totals and summaries |
1. What is the primary purpose of WRITERS in COBOL?
2. Which section is used to define Report Writer reports?
3. What is a Report Group in Report Writer?
4. Which statement is used to generate Report Writer output?
5. What is the purpose of LINE and COLUMN clauses in Report Writer?