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.
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.