Chapter 16: Reports - Report Writer

This chapter describes Report Writer structures, requirements, and presents mock-ups.


Sample Structure

-KYWD-  12-*----20---*----30---*----40---*----50
 IO     Input/Output statements
   .
 FD     Input FD clause
   .
 01     Input record description
 FD     Output FD clause
   .
 01     Output record description
 RED    reportfilename
        CODE clause
        CONTROL clause
        WRITE ROUTINE clause
        PAGE LIMIT nn LINE
            FIRST DETAIL linenumber
            LAST DETAIL linenumber
            FOOTING linenumber.
 MOCK mockupreportname
 01   TYPE IS REPORT HEADING /*FOR REPORT HEADER
      MOCKUP LINES clause
      OVERPRINT clause
      SOURCE clause or VALUE clause
 01   TYPE PAGE HEADING        /*FOR PAGE HEADER
      MOCKUP LINES clause
      SOURCE clause or VALUE clause
 01   TYPE CONTROL HEADING  /*FOR CONTROL HEADER
      MOCKUP LINES clause
      SOURCE clause or VALUE clause
 01   TYPE DETAIL             /*FOR DETAIL LINES
      MOCKUP LINES clause
      SOURCE clause or VALUE clause
      REFERENCE clause
 01   TYPE CONTROL FOOTING   /*FOR CONTROL BREAK
      MOCKUP clause
      SOURCE clause or VALUE clause
      SUM clause
 NTRY
   .
      INITIATE statement
   .
      GENERATE statement
   .
      TERMINATE statement

Requirements

Input-Output Section

Use the IO keyword to code a FILE-CONTROL paragraph with SELECT and ASSIGN clauses.

File-Section

Use the FD keyword and statement to identify input and up to 15 report files.

Report Section

Code the following in the order specified for each report specified in the FD statement:

 

Procedure Division

Use the NTRY (or ENTR) or PROC keyword to code Procedure Division statements that:

 


Mock-Ups

Use the Report Mock-Up Painter to paint batch report mock-ups. The Report Mock-Up Painter provides full ISPF editing capabilities.

 


Structures

Keyword

-KYWD-  12-*----20---*----30---*----40---*----50---
 01    [dataname] TYPE [IS] reportgroup
        Report Writer statements

CODE

CODE literal

CONTROL

CONTROL [IS] [FINAL] dataname
CONTROLS [ARE] [FINAL] dataname1 ... datanameN

FD Keyword

-KYWD-  12-*----20---*----30---*----40---*----50-
 FD     reportfilename
        [filedescriptionstatement]
        REPORT IS|REPORTS ARE reptname1 [... reptname15]

GENERATE

GENERATE dataname|reportname

INITIATE

INITIATE reportname1 [, reportname2] ...

IO Keyword

Format 1:

-KYWD-  12-*----20---*----30---*----40---*----50---*----60
 IO     COBOLselectstatement
        IOstatement

Format 2:

-KYWD-  12-*----20---*----30---*----40---*----50---*----60
 IO         filename ASSIGN [TO] COBOLdataname
                    "literal"
                    EXTERNAL externalfile
        ORGANIZATION IS RECORD SEQUENTIAL

Iterative Expression

Format 1, numerically suffixed data items:

item-#number[/limit[/increment]]

Format 2, 1-dimensional array:

arrayitem (#number[/limit1[/increment1]])    
                                          One subscript range

Format 3, 2-dimensional array:

arrayitem (#number[/limit1[/increment1]],
                                        First subscript range
           #number2[/limit2[/increment2]])
                                       Second subscript range

Format 4, 3-dimensional array:

arrayitem (#number[/limit1[/increment1]],    
                                        First subscript range
           #number2[/limit2[/increment2]],   
                                       Second subscript range
           #number3[/limit3[/increment3]])   
                                        Third subscript range

MOCK Keyword

-KYWD-  12-*----20---*----30---*----40---*----50-
 MOCK   mockupname

MOCKUP LINES

MOCKUP|M LINE|LINES linenumber1 [THRU linenumberN]

OVERPRINT

OVERPRINT|O WHEN 'characterstring' AT COLUMN integer

PAGE LIMIT

PAGE LIMIT IS|ARE number [LINE|LINES]
    [FIRST DETAIL linenumber]
    [LAST DETAIL linenumber]
    [FOOTING linenumber] [.]

RED Keyword

-KYWD-  12-*----20---*----30---*----40---*----50-
 RED    reportname

REFERENCE

R[EFERENCE] [IS] dataname PIC[TURE] [IS] picclause
    [DATA-NAME [IS] sumcounter]

SOURCE

SOURCE [IS] dataname [iterativeexpression] [PIC picclause]
    [BLANK [WHEN] ZERO]
    [CHANGE INDICATE|GROUP INDICATE]
    [JUSTIFIED|JUST [RIGHT]
    [DATA-NAME [IS] sumcounter]

SUM

SUM|+ [IS] dataname1[ iterativeexpression|dataname1] ...
    [UPON detailgroup[ detailgroup] ...]
    [RESET [ON] [FINAL] sumcounter]
    [DATA-NAME [IS] sumcounter]
    [PICTURE|PIC [IS] picclause]

SUPPRESS

SUPPRESS PRINTING

TERMINATE

TERMINATE reportname1 [, reportname2] ...

TYPE

Format 1, page header:

TYPE [IS] PAGE HEADING|PH
 
    [LINE [NUMBER IS] number     ]  [.]
                      PLUS number

Format 2, page footer:

TYPE [IS] PAGE FOOTING|PF
 
    [LINE [NUMBER IS] number]
 
    [NEXT GROUP [IS] number     ]  [.]
                     PLUS number

Format 3, report header:

TYPE [IS] REPORT HEADING|RH
 
    [LINE [NUMBER IS] number     ]
                      PLUS number
 
                     number
    [NEXT GROUP [IS] PLUS number]  [.]
                     NEXT PAGE 

Format 4, report footer:

TYPE [IS] REPORT FOOTING|RF
                      number]
 
    [LINE [NUMBER IS] PLUS number]  [.]
                      NEXT PAGE

Format 5, control headers and footers:

TYPE [IS] CONTROL HEADING|CH [FINAL] controldataname
          CONTROL FOOTING|CF
 
                      number
    [LINE [NUMBER IS] PLUS number]
                      NEXT PAGE
 
                     number
    [NEXT GROUP [IS] PLUS number]  [.]
                     NEXT PAGE

Format 6, detail lines:

detaildataname TYPE [IS] DE[TAIL]
 
                      number
    [LINE [NUMBER IS] PLUS number]
                      NEXT PAGE
 
                     number
    [NEXT GROUP [IS] PLUS number]  [.]
                     NEXT PAGE

USE

USE BEFORE REPORTING identifier

VALUE

VALUE "characterstring" [PIC picclause]
    [DATA-NAME [IS] sumcounter]

WRITE ROUTINE

WRITE ROUTINE [IS] paragraphname

 


Copyright © 2002 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.