HP 3000 Manuals

Data Division in the Report Writer Module [ COBOL/HP-UX Language Reference for the Series 700 and 800 ] MPE/iX 5.0 Documentation


COBOL/HP-UX Language Reference for the Series 700 and 800

Data Division in the Report Writer Module 

The File Description Entry 

Function 

The file description entry furnishes information concerning the physical
structure, identification, and record names pertaining to a given file.
________________________________________________________________________
|(ANS85)                                                               |
|It determines the internal or external attributes of a file connector,|
|of the associated data records, and of the associated data items.  The|
|file description entry also determines whether a file-name is a local |
|name or a global name.                                                |
________________________________________________________________________

            

General Format 

	       Click here to view figure.
            

Syntax Rules 

   1.  The level indicator FD identifies the beginning of the file
       description entry for a report file and must precede the file-name
       of the report file.

   2.  The clauses which follow file-name-1 can appear in any order.

   3.  File-name-1 can only reference a sequential file.

   4.  No record description entries can follow the file description
       entry for a report file.
________________________________________________________________________
|Record description entries are permitted.  (OSVS) (MF)                |
________________________________________________________________________

            

   5.  The subject of a file description entry that specifies a REPORT
       clause can be referenced in the procedure division only by the USE
       statement, the CLOSE statement, or the OPEN statement with the
       OUTPUT or EXTEND phrase.

General Rules 

   1.  With the exception of the REPORT clause, all clauses within the
       file description entry for a report file are presented within the
       sequential I-O module.

   2.  Details on the REPORT clause are presented below.

The REPORT Clause 

Function 

The REPORT clause specifies the names of reports that comprise a report
file.

General Format 

	       Click here to view figure.
            

Syntax Rules 

   1.  Each report-name specified in a REPORT clause must be the subject
       of a RD entry in the report section of the same program.  The
       order of appearance of the report-names is not significant.

   2.  A report-name must appear in only one REPORT clause.

   3.  The subject of a file description entry that specifies a REPORT
       clause can be referenced in the procedure division only by the USE
       statement, the CLOSE statement, or the OPEN statement with the
       OUTPUT or EXTEND phrase.

General Rules 

   1.  The presence of more than one report-name in a REPORT clause
       indicates that the file contains more than one report.

   2.  After execution of an INITIATE statement and before the execution
       of a TERMINATE statement for the same report file, the report file
       is under the control of the RWCS. While a report file is under the
       control of the RWCS, no input-output statement can be executed
       which references that report file.
________________________________________________________________________
|(ANS85)                                                               |
|                                                                      |
|                                                                      |
|                                                                      |
|3.  If the associated file connector is an external file connector,   |
|    every file description entry in the run unit which is associated  |
|    with that file connector must describe it as a report file.       |
|                                                                      |
________________________________________________________________________

            

Report Section 

The Report Section is located in the Data Division of a source program.
The Report Section describes the reports to be written onto report files.
The description of each report must begin with a RD entry and be followed
by one or more report group description entries.

General Format 

     REPORT SECTION.
            [report-description-entry {report-group-description-entry}...]...

Report Description Entry.   

In addition to naming the report, the RD entry defines the format of each
page of the report by specifying the vertical 
boundaries of the region within which each type of report group can be
printed.  The RD entry also specifies the control data items.  When the
report is produced, changes in the values of the control data items cause
the detail information of the report to be processed in groups called
control groups.

Each report named in the REPORT clause of a file description entry in the
file section must be the subject of a RD entry in the report section.
Furthermore, each report in the report section must be named in one and
only one file description entry.

Report Group Description Entry.   

The report groups that will comprise the report are 
described following the RD entry.  The description of each report group
begins with a report group description entry; that is an entry that has a
01 level-number and a TYPE clause.  Subordinate to the report group
description entry, there can appear group and elementary entries that
further describe the characteristics of the report group.

The Report Description Entry 

Function 

The RD entry names a report, specifies any identifying characters to be
appended to each print line in the report and describes the physical
structure and organization of that report.
________________________________________________________________________
|[REV BEG](ANS85)                                                      |
|It also determines whether a report-name is a local name or a global  |
|name.[REV END]                                                        |
________________________________________________________________________

            

General Format 

	       Click here to view figure.
            

Syntax Rules 

   1.  Report-name-1 must appear in one and only one REPORT clause.

   2.  The order of appearance of the clauses following report-name-1 is
       immaterial.

   3.  Report-name-1 is the highest permissible qualifier that can be
       specified for LINE-COUNTER, PAGE-COUNTER, and all data-names
       defined within the report section.

General Rules 

   1.  The CODE clause, the CONTROL clause, and the PAGE clause are
       presented in alphabetical order below.
________________________________________________________________________
|[REV BEG](ANS85)                                                      |
|                                                                      |
|                                                                      |
|                                                                      |
|2.  If the RD entry contains the GLOBAL clause, the special registers |
|    LINE-COUNTER and PAGE-COUNTER are global names.                   |
|                                                                      |
|[REV END]                                                             |
________________________________________________________________________

            

PAGE-COUNTER Rules 

   1.  PAGE-COUNTER is the reserved word used to reference a special
       register that is automatically created for each report specified
       in the report section.  (See "Special Register PAGE-COUNTER"  
       earlier in this chapter.) 

   2.  In the report section, a reference to PAGE-COUNTER can appear only
       in a SOURCE clause.  In the procedure division, PAGE-COUNTER can
       be used in any context in which a data item with an integer value
       can appear.

   3.  If more than one PAGE-COUNTER exists in a program, PAGE-COUNTER
       must be qualified by a report-name whenever it is referenced in
       the Procedure Division.

       In the report section an unqualified reference to PAGE-COUNTER is
       qualified implicitly by the name of the report in whose RD entry
       the reference is made.  Whenever the PAGE-COUNTER of a different
       report is referenced, PAGE-COUNTER must be explicitly qualified by
       the report-name associated with the different report.

   4.  Execution of the INITIATE statement causes the RWCS to set the
       PAGE-COUNTER of the referenced report to one.

   5.  PAGE-COUNTER is automatically incremented by one each time the
       RWCS executes a page advance.

   6.  PAGE-COUNTER can be altered by Procedure Division statements.

LINE-COUNTER Rules 

   1.  LINE-COUNTER is the reserved word used to reference a special
       register that is automatically created for each report specified
       in the Report Section.  (See the section "Special Register
       LINE-COUNTER"  earlier in this chapter.) 

   2.  In the report section a reference to LINE-COUNTER can appear only
       in a SOURCE clause.  In the Procedure Division, LINE-COUNTER can
       be used in any context in which a data item with an integral value
       can appear.  However, only the RWCS can change the content of
       LINE-COUNTER.

   3.  If more than one LINE-COUNTER exists in a program, LINE-COUNTER
       must be qualified by a report-name whenever it is referenced in
       the Procedure Division.

       In the Report Section an unqualified reference to LINE-COUNTER is
       qualified implicitly by the name of the report in whose
       description entry the reference is made.  Whenever the
       LINE-COUNTER of a different report is referenced, LINE-COUNTER
       must be explicitly qualified by the report-name associated with
       the different report.

   4.  Execution of an INITIATE statement causes the RWCS to set the
       LINE-COUNTER of the referenced report to zero.  The RWCS also
       automatically resets LINE-COUNTER to zero each time it executes a
       page advance.

   5.  The value of LINE-COUNTER is not affected by the processing of
       nonprintable report groups nor by the processing of a printable
       report group whose printing is suppressed by means of the SUPPRESS
       statement.

   6.  At the time each print line is presented, the value of
       LINE-COUNTER represents the line number on which the print line is
       presented.  The value of LINE-COUNTER after the presentation of a
       report group is governed by the presentation rules for the report
       group.  (See the section "Presentation Rules Tables"  later in
       this chapter.)

The CODE Clause 

Function 

The CODE clause specifies a two-character literal that identifies each
print line as belonging to a specific report.

General Format 

	       Click here to view figure.
            

Syntax Rules 

   1.  Literal-1 must be a two-character nonnumeric literal.
________________________________________________________________________
|(OSVS)                                                                |
|Literal-1 must be replaced by a mnemonic specified in the             |
|special-names paragraph.                                              |
________________________________________________________________________

            

   2.  If the CODE clause is specified for any report in a file, it must
       be specified for all reports in that file.

General Rules 

   1.  When the CODE clause is specified, literal-1 is automatically
       placed in the first two character positions of each report writer
       logical record.

   2.  The positions occupied by literal-1 are not included in the
       description of the print line, but are included in the logical
       record size.

The CONTROL Clause 

Function 

The CONTROL clause establishes the levels of the control hierarchy for
the report.

General Format 

	       Click here to view figure.
            

Syntax Rules 

   1.  Data-name-1 must not be defined in the Report Section.
       Data-name-1 can be qualified.

   2.  Each recurrence of data-name-1 must identify a different data
       item.

   3.  Data-name-1 must not have subordinate to it a variable occurrence
       data item.

General Rules 

   1.  Data-name-1 and the word FINAL specify the 
       levels of the control hierarchy.  FINAL, if specified, is the
       highest control, data-name-1 is the major control, the next
       recurrence of data-name-1 is an intermediate control, and so on.
       The last recurrence of data-name-1 is the minor control.

   2.  The execution of the chronologically first GENERATE statement for
       a given report causes the RWCS to save the values of all control
       data items associated with that report.  On subsequent executions
       of all GENERATE statements for that report, control data items are
       tested by the RWCS for a change of value.  A change of value in
       any control data item causes a control break to occur.  This
       control break is associated with the highest level for which a
       change of value is noted.  (See the section "The GENERATE
       Statement"  later in this chapter.)

   3.  The RWCS tests for a control break by comparing the content of
       each control data item with the prior content of each control data
       item that was saved when the previous GENERATE statement for the
       same report was executed.  T he RWCS applies the inequality
       relation test as follows:

          a.  If the control data item is a numeric data item, the
              relation test is for the comparison of two numeric
              operands.

          b.  If the control data item is an index data item, the
              relation test is for the comparison of two index data
              items.

          c.  If the control data item is a data item other than as
              described in 3a.  and 3b.  above, the relation test is for
              the comparison of two nonnumeric operands.

       The inequality relation test is further explained in the
       appropriate paragraph.  See the section Relation Condition in the
       chapter The Nucleus.)

   4.  FINAL is used when the most inclusive control group in the report
       is not associated with a control data-name.

The PAGE Clause 

Function 

The PAGE clause defines the length of a page and the vertical
subdivisions within which report groups are presented. 

General Format 

	       Click here to view figure.
            

Syntax Rules 

   1.  The HEADING, FIRST DETAIL, LAST DETAIL, and FOOTING 
       phrases can be written in any order.

   2.  Integer-1 must not exceed three significant digits in length.

   3.  Integer-2 must be greater than or equal to one.

   4.  Integer-3 must be greater than or equal to integer-2.

   5.  Integer-4 must be greater than or equal to integer-3.

   6.  Integer-5 must be greater than or equal to integer-4.

   7.  Integer-1 must be greater than or equal to integer-5.

   8.  The following rules indicate the vertical subdivision of the page
       in which each type of report group can appear when the PAGE clause
       is specified.  (See the section "Page Regions"  later in this
       chapter.)

          a.  A report heading report group that is to be presented on a
              page by itself, if defined, must be defined such that it
              can be presented in the vertical subdivision of the page
              that extends from the line number specified by integer-2 to
              the line number specified by integer-1, inclusive.

              A report heading report group that is not to be presented
              on a page by itself, if defined, must be defined such that
              it can be presented in the vertical subdivision of the page
              that extends from the line number specified by integer-2 to
              the line number specified by integer-3 minus 1, inclusive.

          b.  A page heading report group, if defined, must be defined
              such that it can be presented in the vertical subdivision
              of the page that extends from the line number specified by
              integer-2 to the line number specified by integer-3 minus
              1, inclusive.

          c.  A control heading or detail report group, if defined, must
              be defined such that it can be presented in the vertical
              subdivision of the page that extends from the line number
              specified by integer-3 to the line number specified by
              integer-4, inclusive.

          d.  A control footing report group, if defined, must be defined
              such that it can be presented in the vertical subdivision
              of the page that extends from the line number specified by
              integer-3 to the line number specified by integer-5,
              inclusive.

          e.  A page footing report group, if defined, must be defined
              such that it can be presented in the vertical subdivision
              of the page that extends from the line number specified by
              integer-5 plus 1 to the line number specified by integer-1,
              inclusive.

          f.  A report footing report group that is to be presented on a
              page by itself, if defined, must be defined such that it
              can be presented in the vertical subdivision of the page
              that extends from the line number specified by integer-2 to
              the line number specified by integer-1, inclusive.

              A report footing report group that is not to be presented
              on a page by itself, if defined, must be defined such that
              it can be presented in the vertical subdivision of the page
              that extends from the line number specified by integer-5
              plus 1 to the line number specified by integer-1,
              inclusive.

   9.  All report groups must be described such that they can be
       presented on one page.  The RWCS never splits a multi-line report
       group across page boundaries.

General Rules 

   1.  The vertical format of a report page is established using the
       integer values specified in the PAGE clause.

          a.  Integer-1 defines the size of a report page by specifying
              the number of lines available on each page.

          b.  HEADING integer-2 defines the first line number on which a
              report heading or page heading report group can be
              presented.

          c.  FIRST DETAIL integer-3 defines the first line number on
              which a body group can be presented.  Report heading and
              page heading report groups cannot be presented on or beyond
              the line number specified by integer-3.

          d.  LAST DETAIL integer-4 defines the last line number on which
              a control heading or detail report group can be presented.

          e.  FOOTING integer-5 defines the last line number on which a
              control footing report group can be presented.  Page
              footing and report footing report groups must follow the
              line number specified by integer-5.

   2.  If the PAGE clause is specified the following implicit values are
       assumed for any omitted phrases:

          a.  If the HEADING phrase is omitted, a value of one is assumed
              for integer-2.

          b.  If the FIRST DETAIL phrase is omitted, a value equal to
              integer-2 is given to integer-3.

          c.  If the LAST DETAIL and the FOOTING phrases are both
              omitted, the value of integer-1 is given to both integer-4
              and integer-5.

          d.  If the FOOTING phrase is specified and the LAST DETAIL
              phrase is omitted, the value of integer-5 is given to
              integer-4.

          e.  If the LAST DETAIL phrase is specified and the FOOTING
              phrase is omitted, the value of integer-4 is given to
              integer-5.

   3.  If the PAGE clause is omitted, the report consists of a single
       page of indefinite length.

   4.  The presentation rules for each type of report group are specified
       in the appropriate paragraph.  (See the section "Presentation
       Rules Tables"  later in this chapter.)

Page Regions 

Page regions that are established by the PAGE clause are described in the
table below.

          Table 10-1.  Page Regions 

------------------------------------------------------------------------------
|                                    |                   |                   |
| Report Groups that can be          | First line no.    | Last line no.  of |
| presented in the Region            | of the Region     | the Region        |
|                                    |                   |                   |
------------------------------------------------------------------------------
|                                    |                   |                   |
| Report heading described with NEXT | integer-2         | integer-1         |
| GROUP NEXT PAGE                    |                   |                   |
|                                    |                   |                   |
| Report footing described with LINE |                   |                   |
| integer-1 NEXT PAGE                |                   |                   |
|                                    |                   |                   |
------------------------------------------------------------------------------
|                                    |                   |                   |
| Report heading not described with  | integer-2         | integer-3         |
| NEXT GROUP NEXT PAGE               |                   | minus 1           |
|                                    |                   |                   |
| Page heading                       |                   |                   |
|                                    |                   |                   |
------------------------------------------------------------------------------
|                                    |                   |                   |
| Control footing                    | integer-3         | integer-4         |
|                                    |                   |                   |
| Detail                             |                   |                   |
|                                    |                   |                   |
------------------------------------------------------------------------------
|                                    |                   |                   |
| Control footing                    | integer-3         | integer-5         |
|                                    |                   |                   |
------------------------------------------------------------------------------
|                                    |                   |                   |
| Page footing                       | integer-5 plus 1  | integer-1         |
|                                    |                   |                   |
| Report footing not described with  |                   |                   |
| LINE integer-1 NEXT PAGE           |                   |                   |
|                                    |                   |                   |
------------------------------------------------------------------------------

The Report Group Description Entry 

Function 

The report group description entry specifies the characteristics of a
report group and of the individual items within a report group.

General Formats 

Format 1 

	       Click here to view figure.
            

Format 2 

	       Click here to view figure.
            

Format 3 

	       Click here to view figure.
            

Syntax Rules 

All Formats 

   1.  The report group description entry can appear only in the Report
       Section.

   2.  Except for the data-name clause, which when present must
       immediately follow the level-number, the clauses can be written in
       any sequence.

   3.  In Format 2 the level-number can be any integer from 02 to 48
       inclusive.  In Format 3 the level-number can be any integer from
       02 to 49 inclusive.

   4.  A description of a report group can consist of one, two, three or
       four hierarchic levels:

          a.  The first entry that describes a report group must be a
              Format 1 entry.

          b.  Both Format 2 and Format 3 entries can be immediately
              subordinate to a format 1 entry.

          c.  At least one Format 3 entry must be immediately subordinate
              to a Format 2 entry.

          d.  Format 3 entries must define elementary data items.

   5.  In a Format 1 entry, data-name-1 is required only when:

          a.  A detail report group is referenced by a GENERATE
              statement.

          b.  A detail report group is referenced by the UPON phrase of a
              SUM clause.

          c.  A report group is referenced in a USE BEFORE REPORTING
              sentence.

          d.  The name of a control footing report group is used to
              qualify a reference to a sum counter.

       If specified, data-name-1 can be referenced only by a GENERATE
       statement, the UPON phrase of a SUM clause, a USE BEFORE REPORTING
       sentence, or as a sum counter qualifier.

   6.  A Format 2 entry must contain at least one optional clause.

   7.  In a Format 2 entry, data-name-1 is optional.  If present it can
       be used only to qualify a sum counter reference.

   8.  In the Report Section, the USAGE clause is used only to declare
       the usage of printable items.

          a.  If the USAGE clause appears in a Format 3 entry, that entry
              must define a printable item.

          b.  If the USAGE clause appears in a Format 1 or Format 2
              entry, at least one subordinate entry must define a
              printable item.

   9.  An entry that contains a LINE NUMBER clause must not have a
       subordinate entry that also contains a LINE NUMBER clause.
________________________________________________________________________
|(OSVS)                                                                |
|However an entry containing the LINE NUMBER NEXT PAGE clause can have |
|a subordinate entry containing a LINE NUMBER clause but without the   |
|NEXT PAGE option.                                                     |
________________________________________________________________________

            

  10.  In Format 3:

          a.  A GROUP INDICATE clause can appear only in a type detail
              report group.

          b.  A SUM clause can appear only in a type control footing
              report group.

          c.  An entry that contains a COLUMN NUMBER clause but no LINE
              NUMBER clause must be subordinate to an entry that contains
              a LINE NUMBER clause.

          d.  Data-name-1 is optional but can be specified in any entry.
              Data-name-1 can be referenced only if the entry defines a
              sum counter.

          e.  An entry that contains a VALUE clause must also have a
              COLUMN NUMBER clause.

  11.  The following table shows all permissible clause combinations for
       a Format 3 entry.  The table is read from left to right along the
       selected row.

       An "M" indicates that the presence of the clause is mandatory.

       A "P" indicates that the presence of the clause is permitted, but
       not required.

       A blank indicates that the clause is not permitted.

          Table 10-2.  Permissible Clause Combinations in Format 3 Entries 

------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|  PIC  |   COLUMN   |  SOURCE   |  SUM  |  VALUE  |  JUST  |  BLANK   |   GROUP    |  USAGE   |  SIGN  |  LINE  |
|       |            |           |       |         |        |   WHEN   |  INDICATE  |          |        |        |
|       |            |           |       |         |        |   ZERO   |            |          |        |        |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|   M   |            |           |   M   |         |        |          |            |          |   P    |   P    |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|   M   |     M      |           |   M   |         |        |    P     |            |    P     |   P    |   P    |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|   M   |     M      |           |   M   |         |        |    P     |            |    P     |   P    |   P    |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|   M   |     P      |     M     |       |         |   P    |          |     P      |    P     |   P    |   P    |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|   M   |     P      |     M     |       |         |        |    P     |     P      |    P     |   P    |   P    |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------
|       |            |           |       |         |        |          |            |          |        |        |
|   M   |     M      |           |       |    M    |   P    |          |     P      |    P     |   P    |   P    |
|       |            |           |       |         |        |          |            |          |        |        |
------------------------------------------------------------------------------------------------------------------

General Rules 

   1.  Format 1 is the report group entry.  The report is defined by the
       contents of this entry and all of its subordinate entries.

   2.  The BLANK WHEN ZERO clause, the JUSTIFIED clause, and the PICTURE
       clause for the Report Writer module are the same as the BLANK WHEN
       ZERO clause, the JUSTIFIED clause, and the PICTURE clause in the
       nucleus.  See the chapter The Nucleus for specifications.  The
       other clauses of the report group description entry are presented
       in alphabetical order later in this chapter.

Presentation Rules Tables 

Description.   

The tables and rules on the following pages specify:

   1.  The permissible combinations of LINE NUMBER and NEXT GROUP clauses
       for each type of report group.

   2.  The requirements that are placed on the use of these clauses, and

   3.  The interpretation that the RWCS gives to these clauses.

Organization.   

There is an individual presentation rules table for each of the following
types of report groups:  report heading, page heading, page footing,
report footing.  In addition, detail report groups, control heading
report groups, or control footing report groups are treated jointly in
the body group presentation rules table.  (See the section "Body Group
Presentation Rules"  later in this chapter.)

Columns 1 and 2 of a presentation rules table list all of the permissible
combinations of LINE NUMBER and NEXT GROUP clauses for the designated
report group type.  Consequently, for the purpose of identifying the set
of presentation rules that apply to a particular combination of LINE
NUMBER and NEXT GROUP clauses, a presentation rules table is read from
left to right, along the selected row.

The applicable rules columns of a presentation rules table are
partitioned into two parts.  The first part specifies the rules that
apply if the report description contains a PAGE clause, and the second
part specifies the rules that apply if the PAGE clause is omitted.  The
purpose of the rules named in the applicable rules columns is discussed
below:

   1.  Upper limit rules and lower limit rules.

       These rules specify the vertical subdivisions of the page within
       which the specified report group can be represented.

       In the absence of a PAGE clause the printed report is not
       considered to be partitioned into vertical subdivisions.
       Consequently, within the tables no upper limit rule or lower limit
       rule is specified for a report description in which the PAGE
       clause is omitted.

   2.  Fit test rules.

       The fit test rules are applicable only to body groups, and hence
       fit test rules are specified only within the body group
       presentation rules table.  At object time the RWCS applies the fit
       test rules to determine whether the designated body group can be
       presented on the page to which the report is currently positioned.

       However, even for body groups there are no fit test rules when the
       PAGE clause is omitted from the report description entry.

   3.  First print line position rules.

       The first print line position rules specify where on the report
       medium the RWCS shall present the first print line of the given
       report group.

       The presentation rules tables do not specify where on the report
       medium the RWCS shall present the second and subsequent print
       lines (if any) of a report group.  Certain general rules determine
       where the second and subsequent print lines of a report group
       shall be presented.  Refer to the LINE NUMBER clause general rules
       for this information.

   4.  Next group rules.

       The next group rules relate to the proper use of the NEXT GROUP
       clause.

   5.  Final LINE-COUNTER setting rules.

       The terminal values that the RWCS places in LINE-COUNTER after
       presenting report groups are specified by the final LINE-COUNTER
       setting rules.

Line Number Clause Notation.   

Column 1 of the presentation rules table uses 
a shorthand notation to describe the sequence of LINE NUMBER clauses that
can appear in the description of a report group.  The meaning of the
abbreviations used in column 1 is as follows.

   1.  The letter "A" represents one or more absolute LINE NUMBER
       clauses, none of which has the NEXT PAGE phrase, that appear in
       consecutive order within the sequence of LINE NUMBER clauses in
       the report group description entry.

   2.  The letter "R" represents one or more relative LINE NUMBER clauses
       that appear in consecutive order within the sequence of LINE
       NUMBER clauses in the report group description entry.

   3.  The letters "NP" represent one or more absolute LINE NUMBER
       clauses that appear in consecutive order within the sequence of
       LINE NUMBER clauses in the report group description entry with the
       phrase NEXT PAGE appearing in the first and only in the first LINE
       NUMBER clause.
________________________________________________________________________
|(OSVS)                                                                |
|This entry can appear without a line number.                          |
________________________________________________________________________

            

When two abbreviations appear together, they refer to a sequence of LINE
NUMBER clauses that consists of the two specified consecutive sequences.
For example "A R" refers to a report group description entry within which
the "A" sequence (defined in rule 1 above) is immediately followed by the
"R" sequence (defined in rule 2 above).

Line Number Clause Sequence Substitutions.   

Where "A R" is shown to be a permissible sequence in the presentation
rules table, "A" is also permissible and the same presentation rules are
applicable.

Where "NP R" is shown to be a permissible sequence in the presentation
rules table, "NP" is also permissible and the same presentation rules are
applicable.

Saved Next Group Integer Description.   

Saved next group integer is a data item that is addressable only by the
RWCS. When an absolute NEXT GROUP clause specifies a vertical positioning
value which cannot be accommodated on the current page, the RWCS stores
that value in saved next group integer.  After page advance processing,
the RWCS positions the next body group using the value stored in saved
next group integer.

Report Heading Group Presentation Rules.   

Table 10-3 points to the appropriate presentation rules for all
permissible combinations of LINE NUMBER and NEXT GROUP clauses in a
report heading report group.  The report heading group presentation rules
are as follows:

   1.  Upper limit rule.

       The first line number on which the report heading report group can
       be presented is the line number specified by the HEADING phrase of
       the PAGE clause.

   2.  Lower limit rules.

          a.  The last line number on which the report heading report
              group can be presented is the line number that is obtained
              by subtracting 1 from the value of integer-3 of the FIRST
              DETAIL phrase of the PAGE clause.

          b.  The last line number on which the report heading report
              group can be presented is the line number specified by
              integer-1 of the PAGE clause.

   3.  First print line position rules.

          a.  The first print line of the report heading report group is
              presented on the line number specified by the integer of
              its LINE NUMBER clause.

          b.  The first print line of the report heading report group is
              presented on the line number obtained by adding the integer
              of the first LINE NUMBER clause and the value obtained by
              subtracting 1 from the value of integer-2 of the HEADING
              phrase of the PAGE clause.

          c.  The report heading report group is not presented.

          d.  The first print line of the report heading report group is
              presented on the line number obtained by adding the content
              of its LINE-COUNTER (in this case, zero) to the integer of
              the first LINE NUMBER clause.

   4.  Next group rules.

          a.  The NEXT GROUP integer must be greater than the line number
              on which the final print line of the report heading report
              group is presented.  In addition, the NEXT GROUP integer
              must be less than the line number specified by the value of
              integer-3 of the FIRST DETAIL phrase of the PAGE clause.

          b.  The sum of the NEXT GROUP integer and the line number on
              which the final print line of the report heading report
              group is presented must be less than the value of integer-3
              of the FIRST DETAIL phrase of the PAGE clause.

          c.  NEXT GROUP PAGE signifies that the report heading report
              group is to be presented entirely by itself on the first
              page of the report.  The RWCS processes no other report
              group while positioned to the first page of the report.

   5.  Final LINE-COUNTER setting rules.

          a.  After the report heading report group is presented, the
              RWCS places the NEXT GROUP integer into LINE-COUNTER as the
              final LINE-COUNTER setting.

          b.  After the report heading report group is presented, the
              RWCS places the sum of the NEXT GROUP integer and the line
              number on which the final print line of the report heading
              report group was presented into LINE-COUNTER as the final
              LINE-COUNTER setting.

          c.  After the report heading report group is presented, the
              RWCS places zero into LINE-COUNTER as the final
              LINE-COUNTER setting.

          d.  After the report heading report group is presented, the
              final LINE-COUNTER setting is the line number on which the
              final print line of the report heading report group was
              presented.

          e.  LINE-COUNTER is unaffected by the processing of a
              non-printable report group.

          Table 10-3.  Report Heading Group Presentation Rules 

	       Click here to view figure.
            

*     See the section "Line Number Clause Notation"  for a description
      of the abbreviations used in column 1.

**    A blank entry in column 1 or column 2 indicates that the named
      clause is totally absent from the report group description entry.

***   A blank entry in an applicable rules column indicates the absence
      of the named rule for the given combination of LINE NUMBER and NEXT
      GROUP clauses.

+     See the "The LINE NUMBER Clause" .

++    See "The NEXT GROUP Clause" .

Page Heading Group Presentation Rules.   

Table 10-4  below points to the appropriate presentation rules for all
permissible combinations of LINE NUMBER and NEXT GROUP clauses in a page
heading report group.

          Table 10-4.  Page Heading Group Presentation Rules 

--------------------------------------------------------------------------------------------
|                         |                                                                |
|                         |                       Appliable Rules***                       |
|                         |                                                                |
--------------------------------------------------------------------------------------------
|                         |                                                                |
|           **            |              If the PAGE clause is specified****               |
|                         |                                                                |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|  Sequence  |    NEXT    |   Upper    |   Lower    |   First    |    Next    |   Final    |
|  of LINE   |   GROUP    |   Limit    |   Limit    |   Print    |   Group    |   LINE-    |
|   NUMBER   |   clause   |            |            |    Line    |            |  COUNTER   |
|  clause*   |            |            |            |  Position  |            |  Setting   |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|     AR     |            |     1      |     2      |     3a     |            |     4a     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|     R      |            |     1      |     2      |     3b     |            |     4a     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|            |            |            |            |     3c     |            |     4b     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------

*     See the section "Line Number Clause Notation"  for a description
      of the abbreviations used in column 1.

**    A blank entry in column 1 or column 2 indicates that the named
      clause is totally absent from the report group description entry.

***   A blank entry in an applicable rules column indicates the absence
      of the named rule for the given combination of LINE NUMBER and NEXT
      GROUP clauses.

****  If the PAGE clause is omitted from the report description entry,
      then a page heading report group can not be defined.  (See the
      section "The TYPE Clause" .)

The page heading group presentation rules are as follows:

   1.  Upper limit rule.

       If a report heading report group has been presented on the page on
       which the page heading report group is to be presented, then the
       first line number on which the page heading report group can be
       presented is one greater than the final LINE-COUNTER setting
       established by the REPORT HEADING.

       Otherwise the first line number on which the page heading report
       group can be presented is the line number specified by the HEADING
       phrase of the PAGE clause.

   2.  Lower limit rule.

       The last line number on which the page heading report group can be
       presented is the line number that is obtained by subtracting one
       from the value of integer-3 of the FIRST DETAIL phrase of the PAGE
       clause.

   3.  First print line position rules.

          a.  The first print line of the page heading report group is
              presented on the line number specified by the integer of
              its LINE NUMBER clause.

          b.  If a report heading report group has been presented on the
              page on which the page heading report group is to be
              present, then the sum of the final LINE-COUNTER setting
              established by the report heading report group and the
              integer of the first LINE NUMBER clause of the page heading
              report group defines the line number on which the first
              print line of the page heading report group is presented.

              Otherwise the sum of the integer of the first LINE NUMBER
              clause of the page heading report group and the value
              obtained by subtracting one from the value of integer-2 of
              the HEADING phrase of the PAGE clause defines the line
              number on which the first print line of the page heading
              report group is presented.

          c.  The page heading report group is not presented.

   4.  Final LINE-COUNTER setting rules.

          a.  The final LINE-COUNTER setting is the line number on which
              the final print line of the page heading report group was
              presented.

          b.  LINE-COUNTER is unaffected by the processing of a
              nonprintable report group.

Body Group Presentation Rules.   

Table 10-5  below points to the appropriate presentation rules for all
permissible combinations of LINE NUMBER and NEXT GROUP clauses in control
heading, detail, and control footing report groups.  The body group
presentation rules are as follows:

   1.  Upper limit rule.  The first line number on which a body group can
       be presented is the line number specified by the FIRST DETAIL
       phrase of the PAGE clause.

   2.  Lower limit rules.

       The last line number on which a control heading report group or
       detail report group can be presented is the line number specified
       by the LAST DETAIL phrase of the PAGE clause.

       The last line number on which a control footing report group can
       be presented is the line number specified by the FOOTING phrase of
       the PAGE clause.

   3.  Fit test rules.

          a.  If the value in LINE-COUNTER is less than the integer of
              the first absolute LINE NUMBER clause, then the body group
              is presented on the page to which the report is currently
              positioned.

              If the value in LINE-COUNTER is not less than the integer
              of the first absolute LINE NUMBER clause, the RWCS executes
              page advance processing.  After the page heading report
              group (if defined) has been processed, the RWCS determines
              whether the saved next group integer location was set when
              the final body group was presented on the preceding page.
              (See final LINE-COUNTER setting rule 6a.)  If saved next
              group integer was not set, the body group shall be
              presented on the page to which the report is currently
              positioned.  If saved next group integer was set, the RWCS
              moves the saved next group integer into LINE-COUNTER,
              resets saved next group integer to zero, and reapplies fit
              test rule 3a.

          b.  If a body group has been presented on the page to which the
              report is currently positioned, the RWCS computes a trial
              sum in a work location.  The trial sum is computed by
              adding the content of LINE-COUNTER to the integers of all
              LINE NUMBER clauses of the report group.  If the trial sum
              is not greater than the body group's lower limit integer,
              then the report group is presented on the current page.  If
              the trial sum exceeds the body group's lower limit integer,
              then the RWCS executes page advance processing.  After the
              page heading report group (if defined) has been processed,
              the RWCS reapplies fit test rule 3b.

              If no body group has yet been presented on the page to
              which the report is currently positioned, the RWCS
              determines whether the saved next group integer location
              was set when the final body group was presented on the
              preceding page.  (See final LINE-COUNTER setting rule 6a.)

              If saved next group integer was not so set, the body group
              shall be presented on the page to which the report is
              currently positioned.

              If saved next group integer was so set, the RWCS moves the
              saved next group integer into LINE-COUNTER, resets saved
              next group integer to zero, and computes a trial sum in a
              work location.

              The trial sum is computed by adding the content of
              LINE-COUNTER to the integer one and the integers of all but
              the first LINE NUMBER clause of the body group.  If the
              trial sum is not greater than the body group's lower limit
              integer, then the body group is presented on the current
              page.  If the trial sum exceeds the body group's lower
              limit integer, the RWCS executes page advance processing.
              After the page heading report group (if defined) has been
              processed, the RWCS presents the body group on that page.

          Table 10-5.  Body Group Presentation Rules 

	       Click here to view figure.
            

*     See the section "Line Number Clause Notation"  for a description
      of the abbreviations used in column 1.

**    A blank entry in column 1 or column 2 indicates that the named
      clause is totally absent from the report group description entry.

***   A blank entry in an applicable rules column indicates the absence
      of the named rule for the given combination of LINE NUMBER and NEXT
      GROUP clauses.

+     See the section "The LINE NUMBER Clause" .

++    See the section "The NEXT GROUP Clause" .

      c.  If a body group has been presented on the page to which the
          report is currently positioned, the RWCS executes page advance
          processing.  After the page heading report group (if defined)
          has been processed, the RWCS reapplies fit test rule 3c.

          If no body group has yet been presented on the page to which
          the report is currently positioned, the RWCS determines whether
          the saved next group integer location was set when the final
          body group was presented on the preceding page.  (See final
          LINE-COUNTER setting rule 6a.)  If saved next group integer was
          not so set, the body group shall be presented on the page to
          which the report is currently positioned.  If saved next group
          integer was so set, the RWCS moves the saved next group integer
          into LINE-COUNTER and resets saved next group integer to zero.
          If then the value in LINE-COUNTER is less than the integer of
          the first absolute LINE NUMBER clause, the body group shall be
          presented on the page to which the report is currently
          positioned.  Otherwise the RWCS executes page advance
          processing.  After the page heading report group (if defined)
          has been processed, the RWCS presents the body group on that
          page.

4.    First print line position rules.

      a.  The first print line of the body group is presented on the line
          number specified by the integer of its LINE NUMBER clause.

      b.  If the value in LINE-COUNTER is equal to or greater than the
          line number specified by the FIRST DETAIL phrase of the PAGE
          clause, and if no body group has previously been presented on
          the page to which the report is currently positioned, then the
          first print line of the current body group is presented on the
          line immediately following the line indicated by the value
          contained on LINE-COUNTER.

          If the value in LINE-COUNTER is equal to or greater than the
          line number specified by the FIRST DETAIL phrase of the PAGE
          clause, and if a body group has previously been presented on
          the page to which the report is currently positioned, then the
          first print line of the current body group is presented on the
          line that is obtained by adding the content of LINE-COUNTER and
          the integer of the first LINE NUMBER clause of the current body
          group.

          If the value in LINE-COUNTER is less than the line number
          specified by the FIRST DETAIL phrase of the PAGE clause, then
          the first printer line of the body group is presented on the
          line specified by the FIRST DETAIL phrase.

      c.  The body group is not presented.

      d.  The sum of the content of LINE-COUNTER and the integer of the
          first LINE NUMBER clause defines the line number on which the
          first print line is presented.

5.    Next group rule.

      The integer of the absolute NEXT GROUP clause must specify a line
      number that is not less than that specified in the FIRST DETAIL
      phrase of the PAGE clause, and that is not greater than that
      specified in the FOOTING phrase of the PAGE clause.

6.    Final LINE-COUNTER setting rules.

      a.  If the body group that has just been presented is a control
          footing report group and if the control footing report group is
          not associated with the highest level at which the RWCS
          detected a control break, then the final LINE-COUNTER setting
          is the line number on which the final print line of the control
          footing report group was presented.

          For all other cases the RWCS makes a comparison of the line
          number on which the final print line of the body group was
          presented and the integer of the NEXT GROUP clause.  If the
          former is less than the latter, then the RWCS places the NEXT
          GROUP integer into LINE-COUNTER as the final LINE-COUNTER
          setting.  If the former is equal to or greater than the latter,
          then the RWCS places the line number specified by the FOOTING
          phrase of the PAGE clause into LINE-COUNTER as the final
          LINE-COUNTER setting; in addition the RWCS places the NEXT
          GROUP integer into the saved next group integer location.

      b.  If the body group that has just been presented is a control
          footing report group, and if the control footing report group
          is not associated with the highest level at which the RWCS
          detected a control break, then the final LINE-COUNTER setting
          is the line number on which the final print line of the control
          footing report group was presented.

          For all other cases the RWCS computes a trial sum in a work
          location.  The trial sum is computed by adding the integer of
          the NEXT GROUP clause to the line number on which the final
          print line of the body group was presented.  If the sum is less
          than the line number specified by the FOOTING phrase of the
          PAGE clause, then the RWCS places that sum into LINE-COUNTER as
          the final LINE-COUNTER setting.  If the sum is equal to or
          greater than the line number specified by the FOOTING phrase of
          the PAGE clause, then the RWCS places the line number specified
          by the FOOTING phrase of the PAGE clause into LINE-COUNTER as
          the final LINE-COUNTER setting.

      c.  If the body group that has just been presented is a control
          footing report group, and if the control footing report group
          is not associated with the highest level at which the RWCS
          detected a control break, then the final LINE-COUNTER setting
          is the line number on which the final print line of the control
          footing report group was presented.

          For all other cases the RWCS places the line number specified
          by the FOOTING phrase of the PAGE clause into LINE-COUNTER as
          the final LINE-COUNTER setting.

      d.  The final LINE-COUNTER setting is the line number on which the
          final print line of the body group was presented.

      e.  LINE-COUNTER is unaffected by the processing of a nonprintable
          body group.

      f.  If the body group that has just been presented is a control
          footing report group, and if the control footing report group
          is not associated with the highest level at which the RWCS
          detected a control break, then the final LINE-COUNTER setting
          is the line number on which the final print line of the control
          footing report group was presented.

          For all other cases the RWCS places the sum of the line number
          on which the final print line was presented and the NEXT GROUP
          integer into LINE-COUNTER as the final LINE-COUNTER setting.

Page Footing Presentation Rules.   



MPE/iX 5.0 Documentation