FORMAT section in REPORT
Defines the formatting directives inside a report routine.
Syntax
FORMAT EVERY ROW FORMAT
control-block
[ report-statement
| report-only-fgl-statement
| sql-statement
]
[...]
[...]{
[ FIRST ] PAGE HEADER
| ON EVERY ROW
| BEFORE GROUP OF report-variable
| AFTER GROUP OF report-variable
| PAGE TRAILER
| ON LAST ROW
}- report-statement is any report-specific instruction.
- report-only-fgl-statement is any language instruction supported in the report routine.
- sql-statement is any SQL statement supported by the language.
- report-variable is the name of a variable declared in the DEFINE section.
Usage
A report definition must contain
a FORMAT section.
The FORMAT section
determines how the output from the report will look. It works with
the values that are passed to the REPORT program
block through the argument list or with global or module variables
in each record of the report. In a source file, the FORMAT section
begins with the FORMAT keyword and ends with the END
REPORT keywords.
The FORMAT section
is made up of the following control blocks:
If you use the FORMAT EVERY ROW, no other
statements or control blocks are valid. The EVERY ROW keywords
specify a default output format, including every input record that
is passed to the report.
Control blocks define the structure of a report by specifying one or more statements to be executed when specific parts of the report are processed.
If a report driver
includes START REPORT and FINISH REPORT statements,
but no data records are passed to the report, no control blocks are
executed. That is, unless the report executes an OUTPUT TO
REPORT statement that passes at least one input record to
the report; then neither the FIRST PAGE HEADER control
block nor any other control block is executed
Apart from BEFORE GROUP OF and AFTER GROUP OF, each control
block must appear only once.
More complex FORMAT sections
can contain control blocks like ON EVERY ROW or BEFORE
GROUP OF, which contain statements to execute while the report
is being processed. Control blocks can contain report execution statements
and other executable statements.
A control block may invoke most language statements, except those listed in prohibited statements.
The BEFORE/AFTER GROUP OF control
blocks can include aggregate functions to instruct the report engine
to automatically compute such values.
A report-statement is a statement specially designed for the report format section. It cannot be used in any other part of the program.
The sequence
in which the BEFORE GROUP OF and AFTER GROUP
OF control blocks are executed depends on the sort
list in the ORDER BY section, regardless
of the physical sequence in which these control blocks appear within
the FORMAT section.