HP 3000 Manuals

Data Division in the Report Writer Module (cont.) [ 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 (cont.) 

Presentation Rules Tables (cont.) 

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

          Table 10-6.  Page Footing 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     |  Absolute  |     1      |     2      |     3a     |     4a     |     5a     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|     AR     |  Relative  |     1      |     2      |     3a     |     4b     |     5b     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|     AR     |            |     1      |     2      |     3a     |            |     5c     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------
|            |            |            |            |            |            |            |
|            |            |            |            |     3b     |            |     5d     |
|            |            |            |            |            |            |            |
--------------------------------------------------------------------------------------------

*     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 footing report group can not be defined.  (See the
      section "The TYPE Clause" .)

The page footing presentation rules are as follows:

   1.  Upper limit rule.

       The first line number on which the page footing report group can
       be presented is the line number obtained by adding one to the
       value of integer-5 of the FOOTING phrase of the PAGE clause.

   2.  Lower limit rule.

       The last line number on which the page footing 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 page footing report group is
              presented on the line specified by the integer of its LINE
              NUMBER clause.

          b.  The page footing report group is not presented.

   4.  Next group rules.

          a.  The NEXT GROUP integer must be greater than the line number
              on which the final print line of the page footing report
              group is presented.  In addition, the NEXT GROUP integer
              must not be greater than the line number specified by
              integer-1 of the PAGE clause.

          b.  The sum of the NEXT GROUP integer and the line number on
              which the final print line of the page footing report group
              is presented must not be greater than the line number
              specified by integer-1 of the PAGE clause.

   5.  Final LINE-COUNTER setting rules.

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

          b.  After the page footing 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 PAGE FOOTING
              report group was presented into LINE-COUNTER as the final
              LINE-COUNTER setting.

          c.  After the PAGE FOOTING report group is presented the final
              LINE-COUNTER setting is the line number on which the final
              print line of the PAGE FOOTING report group was presented.

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

Report Footing Presentation Rules.   

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

   1.  Upper limit rules.

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

              Otherwise the first line number on which the report footing
              report group can be presented is the line number obtained
              by adding one and the value of integer-5 of the PAGE
              clause.

          b.  The first line number on which the report footing 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 report footing 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 footing report group is
              presented on the line specified by the integer of its LINE
              NUMBER clause.

          b.  If a page footing report group has been presented on the
              page to which the report is currently positioned, then the
              sum of the final LINE-COUNTER setting established by the
              page footing report group and the integer of the first LINE
              NUMBER clause of the report footing report group defines
              the line number on which the first print line of the report
              footing report group is presented.  Otherwise the sum of
              the integer of the first LINE NUMBER clause of the report
              footing report group, and the line number specified by the
              value of integer-5 of the FOOTING phrase of the PAGE clause
              defines the line number on which the first print line of
              the report footing report group is presented.

          c.  The NEXT PAGE phrase in the first absolute LINE NUMBER
              clause directs that the report footing report group is
              presented on a page on which no other report group has been
              presented.  The first print line of the report footing
              report group is presented on the line number specified by
              the integer of its LINE NUMBER clause.

          d.  If LINE IS NEXT PAGE is the only LINE clause in this report
              group, the first line of the report heading report group is
              presented on line HEADING integer-2.

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

          f.  The report footing 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 report footing report group is
              presented.

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

          Table 10-7.  Report Footing Presentation Rules 

[]
* 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 LINE NUMBER Clause" The COLUMN NUMBER Clause Function The COLUMN NUMBER clause identifies a printable item and specifies the position of the item on a print line. General Format COLUMN NUMBER IS integer-1 Syntax Rules 1. The COLUMN NUMBER clause can be specified only at the elementary level within a report group. The COLUMN NUMBER clause, if present, must appear in or be subordinate to an entry that contains a LINE NUMBER clause. 2. Within a given print line, the printable items should be defined in ascending column number order such that each printable item defined occupies a unique sequence of contiguous character positions. ________________________________________________________________________ |(OSVS) | |No restrictions on the sequence of COLUMN NUMBER clauses are | |enforced. | ________________________________________________________________________ General Rules 1. The COLUMN NUMBER clause indicates that the object of a SOURCE clause or the object of a VALUE clause or the sum counter defined by a SUM clause is to be presented on the print line. The absence of a COLUMN NUMBER clause indicates that the entry is not to be presented on a print line. 2. Integer-1 specifies the column number of the leftmost character position of the printable item. 3. The RWCS supplies space characters for all positions of a print line that are not occupied by printable items. 4. The leftmost position of the print line is considered to be column number 1. The DATA-NAME Clause Function A data-name specifies the name of the data item being described. General Format data-name-1 Syntax Rule In the report section data-name-1 need not appear in a data description entry. General Rule In the Report Section, data-name-1 must be given in the following cases: a. When data-name-1 represents a report group to be referred to by a GENERATE or a USE statement in the procedure division. b. When reference is to be made to the sum counter in the procedure division or report section. c. When a DETAIL report group is referenced in the UPON phrase of the SUM clause. d. When data-name-1 is required to provide sum counter qualification. The GROUP INDICATE Clause Function The GROUP INDICATE clause specifies that the associated printable item is presented only on the first occurrence of its report group after a control break or page advance. General Format GROUP INDICATE Syntax Rule The GROUP INDICATE clause must be specified only in a DETAIL report group entry that defines a printable item. General Rules 1. If a GROUP INDICATE clause is specified, it causes the SOURCE or VALUE clause to be ignored and spaces supplied, except: a. On the first presentation of the DETAIL report group in the report, or: b. On the first presentation of the DETAIL report group after every page advance, or: c. On the first presentation of the DETAIL report group after every control group. 2. If the report description entry specifies neither a PAGE clause nor a CONTROL clause, then a GROUP INDICATE printable item is presented the first time its DETAIL is presented after the INITIATE statement is executed. Thereafter spaces are supplied for indicated items with SOURCE or VALUE clauses. Level-Number Function The level-number indicates the position of a data item within the hierarchical structure of a report group. General Format level-number Syntax Rules 1. A level-number is required as the first element in each data description entry. 2. Data description entries subordinate to an RD entry must have level-numbers 01 through 49 only. General Rules 1. The level-number 01 identifies the first entry in a report group. 2. Multiple level 01 entries subordinate to a report description entry having the level indicator RD do not represent implicit redefinitions of the same area. The LINE NUMBER Clause Function The LINE NUMBER clause specifies vertical positioning information for its report group. General Format
[]
Syntax Rules 1. Integer-1 and integer-2 must not exceed three significant digits in length. Neither integer-1 nor integer-2 can be specified in such a way as to cause any line of a report group to be presented outside the vertical subdivision of the page designated for that report group type, as defined by the PAGE clause. (See the section "The PAGE Clause" earlier in this chapter.) Integer-2 can be zero. 2. Within a given report group description entry, an entry that contains a LINE NUMBER clause must not contain a subordinate entry that also contains a LINE NUMBER clause. 3. Within a given report group description entry, all absolute LINE NUMBER clauses must precede all relative LINE NUMBER clauses. 4. Within a given report group description entry, successive absolute LINE NUMBER clauses must specify integers that are in ascending order. The integers need not be consecutive. 5. If the PAGE clause is omitted from a given report description entry, only relative LINE NUMBER clauses can be specified in any report group description entry within that report. 6. Within a given report group description entry a NEXT PAGE phrase can appear only once and, if present, must be in the first LINE NUMBER clause in that report group description entry. 7. A LINE NUMBER clause with the NEXT PAGE phrase can appear only in the description of body groups and in a REPORT FOOTING report group. 8. Every entry that defines a printable item (see the section "The COLUMN NUMBER Clause" earlier in this chapter) must either contain a LINE NUMBER clause, or be subordinate to an entry that contains a LINE NUMBER clause. 9. The first LINE NUMBER clause specified within a PAGE FOOTING report group must be an absolute LINE NUMBER clause. General Rules 1. A LINE NUMBER clause must be specified to establish each print line of a report group. 2. The RWCS affects the vertical positioning specified by a LINE NUMBER clause, before presenting the print line established by that LINE NUMBER clause. 3. Integer-1 specifies an absolute line number. An absolute line number specifies the line number on which the print line is presented. 4. Integer-2 specifies a relative line number. If a relative LINE NUMBER clause is not the first LINE NUMBER clause in the report group description entry, then the line number on which its print line is presented is determined by calculating the sum of the line number on which the previous print line of the report group was presented and integer-2 of the relative LINE NUMBER clause. If integer-2 is zero, the line will be printed on the same line as the previous print line. If a relative LINE NUMBER clause is the first LINE NUMBER clause in the report group description entry, then the line number on which its print line is presented is determined by specified rules. (See the section "Presentation Rules Tables" earlier in this chapter.) 5. The NEXT PAGE phrase specifies that the report group is to be presented beginning on the indicated line number on a new page. (See the section "Presentation Rules Tables" earlier in this chapter.) You need not specify integer-1 for the NEXT PAGE phrase. The NEXT GROUP Clause Function The NEXT GROUP clause specifies information for vertical positioning of a page following the presentation of the last line of a report group. General Format
[]
Syntax Rules 1. A report group entry must not contain a NEXT GROUP clause unless the description of that report group contains at least one LINE NUMBER clause. 2. Integer-1 and integer-2 must not exceed three significant digits in length. 3. If the PAGE clause is omitted from the report description entry only a relative NEXT GROUP clause can be specified in any report group description entry within that report. 4. The NEXT PAGE phrase of the NEXT GROUP clause must not be specified in a PAGE FOOTING report group. 5. The NEXT GROUP clause must not be specified in a REPORT FOOTING report group or in a PAGE HEADING report group. General Rules 1. Any positioning of the page specified by the NEXT GROUP clause takes place after the presentation of the report group in which the clause appears. (See the section "Presentation Rules Tables" earlier in this chapter.) 2. The RWCS uses the vertical positioning information supplied by the NEXT GROUP clause along with information from the TYPE and PAGE clauses, and the value in LINE-COUNTER, to determine a new value for LINE-COUNTER. (See the section "Presentation Rules Tables" earlier in this chapter.) 3. The NEXT GROUP clause is ignored by the RWCS when it is specified on a CONTROL FOOTING report group that is at a level other than the highest level at which a control break is detected. 4. The NEXT GROUP clause of a body group refers to the next body group to be presented, and therefore can affect the location at which the next body group is presented. The NEXT GROUP clause of a REPORT HEADING report group can affect the location at which the PAGE HEADING report group is presented. The NEXT GROUP clause of a PAGE FOOTING report group can affect the location at which the REPORT FOOTING report group is presented. (See the section "Presentation Rules Tables" earlier in this chapter.) The SIGN Clause Function The SIGN clause specifies the position and the mode of representation of the operational sign when it is necessary to describe these properties explicitly. General Format
[]
Syntax Rules 1. The SIGN clause can be specified only for a numeric data description entry whose PICTURE contains the character "S". 2. The numeric data description entries to which the SIGN clause applies must be described, implicitly or explicitly, as USAGE IS DISPLAY. 3. When the SIGN clause is included in a report group description entry, the SEPARATE CHARACTER phrase must be specified. General Rules 1. The optional SIGN clause, if present, specifies the position and the mode of representation of the operational sign for the numeric data description entry to which it applies. The SIGN clause applies only to numeric data description entries whose PICTURE contains the character "S"; The "S" indicates the presence of, but neither the representation nor, necessarily, the position of the operational sign. 2. A numeric data description entry whose PICTURE contains the character "S", but to which no optional SIGN clause applies, has an operational sign, but neither the representation nor, necessarily, the position of the operational sign is specified by the character "S". In this (default) case, General Rule 3 does not apply to such signed numeric data items. The representation of the default operational sign is defined in the section Selection Of Character Representation And Radix in the chapter COBOL Concepts. 3. Since a SIGN clause in a report group description entry must specify the SEPARATE CHARACTER phrase, then: a. The operational sign will be presumed to be the leading (or, respectively, trailing) character position of the elementary numeric data item; this character position is not a digit position. b. The letter "S" in a PICTURE character-string is counted in determining the size of the item (in terms of standard data format characters). c. The operational signs for positive and negative are the standard data format characters "+" , and "-", respectively. 4. Every numeric data description entry whose PICTURE contains the character "S" is a signed numeric data description entry. If a SIGN clause applies to such an entry and conversion is necessary for purposes of computation or comparisons, conversion takes place automatically. The SOURCE Clause Function The SOURCE clause identifies the sending data item that is moved to an associated printable item defined within a report group description entry. General Format SOURCE IS identifier-1 Syntax Rules 1. Identifier-1 can be defined in any section of the data division. If identifier-1 is a report section item it must be a: a. PAGE-COUNTER, or: b. LINE-COUNTER, or: c. Sum counter that is part of the report within which the SOURCE clause appears. 2. Identifier-1 specifies the sending data item of the implicit MOVE statement that the RWCS executes to move the content of the data item referenced by identifier-1 to the printable item. Identifier-1 must be defined such that it conforms to the rules for sending items in the MOVE statement. (See the section The MOVE Statement in the chapter The Nucleus.) General Rule The RWCS formats the print lines of a report group just prior to presenting the report group. (See the section "The TYPE Clause" earlier in this chapter.) It is at this time that the implicit MOVE statements specified by SOURCE clauses are executed by the RWCS. The SUM Clause Function The SUM clause establishes a sum counter and names the data items to be summed. General Format
[]
Syntax Rules 1. The data item that is the subject of the report group description entry in which the SUM clause appears must not be defined as alphabetic. Identifier-1 must reference a numeric data item. If identifier-1 is defined in the report section, identifier-1 must reference a sum counter. If the UPON phrase is omitted, any identifiers in the associated SUM clause which are themselves sum counters must be defined either in the same report group that contains this SUM clause or in a report group which is at a lower level in the control hierarchy of this report. If the UPON phrase is specified, any identifiers in the associated SUM clause must not be sum counters. 2. Data-name-1 must be the name of a DETAIL report group described in the same report as the CONTROL FOOTING report group in which the SUM clause appears. Data-name-1 can be qualified by a report-name. 3. A SUM clause can appear only in the description of a CONTROL FOOTING report group. 4. Data-name-2 must be one of the data-names specified on the CONTROL clause for this report. Data-name-2 must not be a lower level control than the associated control for the report group in which the RESET phrase appears. FINAL, if specified in the RESET phrase, must also appear in the CONTROL clause for this report. ________________________________________________________________________ |This rule is not enforced. (OSVS) | ________________________________________________________________________ 5. The highest permissible qualifier of a sum counter is the report-name. General Rules 1. The SUM clause establishes a sum counter. The sum counter is a numeric data item with an optional sign. At object time, the RWCS adds into the sum counter the value in each data item referenced by identifier-1. This addition is consistent with the rules for arithmetic statements. (See the sections Arithmetic Statements and Overlapping Operands in the chapter The Nucleus.) 2. The size of the sum counter is equal to the number of receiving character positions specified by the PICTURE clause that accompanies the SUM clause in the description of the elementary item. 3. Only one sum counter exists for an elementary report entry regardless of the number of SUM clauses specified in the elementary report entry. 4. If the elementary report entry for a printable item contains a SUM clause, the sum counter serves as a source data item. The RWCS moves the data contained in the sum counter, according to the rules of the MOVE statement, to the printable item for presentation. 5. If a data-name appears as the subject of an elementary report entry that contains a SUM clause, the data-name is the name of the sum counter; the data-name is not the name of the printable item that the entry can also define. 6. It is permissible for procedure division statements to alter the contents of sum counters. 7. Addition of the values of the data items referenced by identifiers into sum counters is performed by the report writer control system during the execution of GENERATE and TERMINATE statements. There are three categories of sum counter incrementing called subtotalling, crossfooting, and rolling forward. Subtotalling is accomplished only during execution of GENERATE statements and after any control break processing but before processing of the DETAIL report group. (See the section "The GENERATE Statement" later in this chapter.) Crossfooting and rolling forward are accomplished during the processing of CONTROL FOOTING report groups. (See the section "The TYPE Clause" later in this chapter.) 8. The UPON phrase provides the capability to accomplish selective subtotalling for the DETAIL report groups named in the phrase. 9. The RWCS adds each individual addend into the sum counter at a time that depends upon the characteristics of the addend. a. When the addend is a sum counter defined in the same CONTROL FOOTING report group, then the accumulation of that addend into the sum counter is termed crossfooting. Crossfooting occurs when a control break takes place and at the time the CONTROL FOOTING report group is processed. Crossfooting is performed according to the sequence in which sum counters are defined within the CONTROL FOOTING report group. That is, all crossfooting into the first sum counter defined in the CONTROL FOOTING report group is completed, and then all crossfooting into the second sum counter defined in the CONTROL FOOTING report group is completed. When one of the addends is the sum counter defined by the data description entry in which that SUM clause appears, the initial value of that sum counter at the time of summation is used in the summing operation. b. When the addend is a sum counter defined in a lower level CONTROL FOOTING report group, then the accumulation of that addend into the sum counter is termed rolling forward. A sum counter in a lower level CONTROL FOOTING report group is rolled forward when a control break occurs and at the time that the lower level CONTROL FOOTING report group is processed. c. When the addend is not a sum counter the accumulation into a sum counter of such an addend is called subtotalling. If the SUM clause contains the UPON phrase, the addends are subtotalled when a GENERATE statement for the designated DETAIL report group is executed. If the SUM clause does not contain the UPON phrase, the addends which are not sum counters are subtotalled when any GENERATE data-name statement is executed for the report in which the SUM clause appears. 10. If two or more of the identifiers specify the same addend, then the addend is added into the sum counter as many times as the addend is referenced in the SUM clause. It is permissible for two or more of the data-names to specify the same DETAIL report group. When a GENERATE data-name statement for such a DETAIL report group is given, the incrementing occurs repeatedly, as many times as data-name appears in the UPON phrase. 11. The subtotalling that occurs when a GENERATE report-name statement is executed is discussed in the appropriate paragraph. (See the section "The GENERATE Statement" later in this chapter.) 12. In the absence of an explicit RESET phrase, the report writer control system will set a sum counter to zero at the time that the report writer control system is processing the CONTROL FOOTING report group within which the sum counter is defined. If an explicit RESET phrase is specified, then the report writercontrol system will set the sum counter to zero at the time that the report writer control system is processing the designated level of the control hierarchy. (See the section "The TYPE Clause" later in this chapter.) Sum counters are initially set to zero by the report writer control system during the execution of the INITIATE statement for the report containing the sum counter. The TYPE Clause Function The TYPE clause specifies the particular type of report group that is described by this entry and indicates the time at which the report group is to be processed by the RWCS. General Format
[]
Syntax Rules 1. RH is an abbreviation for REPORT HEADING. PH is an abbreviation for PAGE HEADING. CH is an abbreviation for CONTROL HEADING. DE is an abbreviation for DETAIL. CF is an abbreviation for CONTROL FOOTING. PF is an abbreviation for PAGE FOOTING. RF is an abbreviation for REPORT FOOTING. 2. REPORT HEADING, PAGE HEADING, CONTROL HEADING FINAL, CONTROL FOOTING FINAL, PAGE FOOTING, and REPORT FOOTING report groups can each appear no more than once in the description of a report. 3. PAGE HEADING and PAGE FOOTING report groups can be specified only if a PAGE clause is specified in the corresponding report description entry. 4. Data-name-1, data-name-2, and FINAL, if present, must be specified in the CONTROL clause of the corresponding report description entry. ________________________________________________________________________ |This rule is not enforced with regard to FINAL. (OSVS) | ________________________________________________________________________ At most, one CONTROL HEADING report group and one CONTROL FOOTING report group can be specified for each data-name or FINAL in the CONTROL clause of the report description entry. However, neither a CONTROL HEADING report group nor a CONTROL FOOTING report group is required for a data-name or FINAL specified in the CONTROL clause of the report description entry. 5. In CONTROL FOOTING, PAGE HEADING, PAGE FOOTING, AND REPORT FOOTING report groups, SOURCE clauses and USE statements must not reference any of the following: a. Group data items containing a control data item. b. Data items subordinate to a control data item. c. A redefinition or renaming of any part of a control data item. In PAGE HEADING and PAGE FOOTING report groups, SOURCE clauses and USE statements must not reference control data-names. 6. When a GENERATE report-name statement is specified in the Procedure Division, the corresponding report description entry must include no more than one DETAIL report group. If no GENERATE data-name statements are specified for such a report, a DETAIL report group is not required. 7. The description of a report must include at least one body group. General Rules 1. DETAIL report groups are processed by the RWCS as a direct result of GENERATE statements. If a report group is other than TYPE DETAIL its processing is an automatic RWCS function. 2. The REPORT HEADING phrase specifies a report group that is processed by the RWCS only once, per report, as the first report group of that report. The REPORT HEADING report group is processed during the execution of the chronologically first GENERATE statement for that report. 3. The PAGE HEADING phrase specifies a report group that is processed by the RWCS as the first report group on each page of that report except under the following conditions: a. A PAGE HEADING report group is not processed on a page that is to contain only a REPORT HEADING report group or only a REPORT FOOTING report group. b. A PAGE HEADING report group is processed as the second report group on a page when it is preceded by a REPORT HEADING report group that is not to be presented on a page by itself. (See the section "Presentation Rules Tables" earlier in this chapter.) 4. The CONTROL HEADING phrase specifies a report group that is processed by the RWCS at the beginning of a control group for a designated control data-name or, in the case of FINAL, is processed during the execution of the chronologically first GENERATE statement for that report. During the execution of any GENERATE statement at which the RWCS detects a control break, any CONTROL HEADING report groups associated with the highest control level of the break and lower levels are processed. 5. The DETAIL phrase specifies a report group that is processed by the RWCS when a corresponding GENERATE statement is executed. 6. The CONTROL FOOTING phrase specifies a report group that is processed by the RWCS at the end of a control group for a designated control data-name. In the case of FINAL, the CONTROL FOOTING report group is processed only once per report as the last body group of that report. During the execution of any GENERATE statement in which the RWCS detects a control break, any CONTROL FOOTING report group associated with the highest level of the control break or more minor levels is presented. All CONTROL FOOTING report groups are presented during the execution of the TERMINATE statement if there has been at least one GENERATE statement executed for the report. (See the section "The TERMINATE Statement" later in this chapter.) 7. The PAGE FOOTING phrase specifies a report group that is processed by the RWCS as the last report group on each page except under the following conditions: a. A PAGE FOOTING report group is not processed on a page that is to contain only a REPORT HEADING report group or only a REPORT FOOTING report group. b. A PAGE FOOTING report group is processed as the second to last report group on a page when it is followed by a REPORT FOOTING report group that is not to be processed on a page by itself. (See the section "Presentation Rules Tables" earlier in this chapter.) 8. The REPORT FOOTING phrase specifies a report group that is processed by the RWCS only once per report and as the last report group of that report. The REPORT FOOTING report group is processed during the execution of a corresponding TERMINATE statement, if there has been at least one GENERATE statement executed for the report. (See the section "The TERMINATE Statement" later in this chapter.) 9. The sequence of steps that the RWCS executes when it processes a REPORT HEADING, PAGE HEADING, CONTROL HEADING, PAGE FOOTING, or REPORT FOOTING report group is described below. a. If there is a USE BEFORE REPORTING procedure that references the data-name of the report group, the USE procedure is executed. b. If a SUPPRESS statement has been executed or if the report group is not printable, there is no further processing to be done for the report group. c. If a SUPPRESS statement has not been executed and the report group is printable, the RWCS formats the print lines and presents the report group according to the presentation rules for that type of report group. (See the section "Presentation Rules Tables" earlier in this chapter.) 10. The sequence of steps that the RWCS executes when it processes a CONTROL FOOTING report group is described below. The GENERATE rules specify that when a control break occurs, the RWCS produces the CONTROL FOOTING report groups beginning at the minor level, and proceeding upwards, through the level at which the highest control break was sensed. In this regard, it should be noted that even though no CONTROL FOOTING report group has been defined for a given control data-name, the RWCS will still have to execute the step described in rule 10f. below if a RESET phrase within the report description specifies that control data-name. a. Sum counters are crossfooted; that is, all sum counters defined in this report group that are operands of SUM clauses in the same report group are added to their sum counters. (See the section "The SUM Clause" earlier in this chapter.) b. Sum counters are rolled forward; that is, all sum counters defined in the report group that are operands of SUM clauses in higher level CONTROL FOOTING report groups are added to the higher level sum counters. (See the section "The SUM Clause" earlier in this chapter.) c. If there is a USE BEFORE REPORTING procedure that references the data-name of the report group the USE procedure is executed. d. If a SUPPRESS statement has been executed or if the report group is not printable, the RWCS next executes the step described in rule 10e. below. e. If a SUPPRESS statement has not been executed and the report group is printable, the RWCS formats the print lines and presents the report group according to the presentation rules of CONTROL FOOTING report groups. f. Then the RWCS resets those sum counters that are to be reset when the RWCS processes this level in the control hierarchy. (See the section "The SUM Clause" earlier in this chapter.) 11. The DETAIL report group processing that the RWCS system executes in response to a GENERATE data-name statement is described in rules 11a. through 11e. below. When the description of a report includes exactly one DETAIL report group, the detail-related processing that the RWCS executes in response to a GENERATE report-name statement is described in rules 11a. through 11e. below. These steps are performed as though a GENERATE data-name statement were being executed. When the description of a report includes no DETAIL report groups, the detail-related processing that the RWCS executes in response to a GENERATE report-name statement is described in rule 11a. below. This step is performed as though the description of the report included exactly one DETAIL report group, and a GENERATE data-name statement were being executed. a. The RWCS performs any subtotalling that has been designated for the DETAIL report group. (See the section "The SUM Clause" earlier in this chapter.) b. If there is a USE BEFORE REPORTING procedure that refers to the data-name of the report group, the USE procedure is executed. c. If a SUPPRESS statement has been executed or if the report group is not printable there is no further processing done for the report group. d. If the DETAIL report group is being processed as a consequence of a GENERATE report-name statement, there is no further processing done for the report group. e. If neither 11c. nor 11d. above applies, the RWCS formats the print lines and presents the report group according to the presentation rules for DETAIL report groups. (See the section "Presentation Rules Tables" earlier in this chapter.) 12. When the RWCS is processing a CONTROL HEADING, CONTROL FOOTING, or DETAIL report group, as described in General Rules 9, 10, and 11, the RWCS can have to interrupt the processing of that body group after determining that the body group is to be presented, and execute a page advance ( and process PAGE FOOTING and PAGE HEADING report groups) before actually presenting the body group. 13. During control break processing, the values of control data items that the RWCS used to detect a given control break are referred to as prior values. a. During control break processing of a CONTROL FOOTING report group, any references to control data items in a USE procedure or SOURCE clause associated with that CONTROL FOOTING report group are supplied with prior values. b. When a TERMINATE statement is executed, the RWCS makes the prior control data item values available to SOURCE clause or USE procedure references in CONTROL FOOTING and REPORT FOOTING report groups as though a control break had been detected in the highest control data-name. c. All other data item references within report groups and their USE procedures access the current values that are contained within the data items at the time the report group is processed. The USAGE Clause Function The USAGE clause specifies the format of a data item in the computer storage. General Format
[]
Syntax Rules 1. The USAGE clause can be written in any data description entry. 2. If the USAGE clause is written in the data description entry for a group item, it can also be written in the data description entry for a subordinate elementary item or group item. 3. The USAGE clause for a report group item can specify only USAGE IS DISPLAY. General Rules 1. If the USAGE clause is written at a group level, it applies to each elementary item in the group. 2. The USAGE clause specifies the manner in which a data item is represented in the storage of a computer. It does not affect the use of the data item, although the specifications for some statements in the procedure division can restrict the USAGE clause of the operands referred to. The USAGE clause can affect the radix or type of character representation of the item. 3. The USAGE IS DISPLAY clause indicates that the format of the data is a standard data format. 4. If the USAGE clause is not specified for an elementary item, or for any group to which the item belongs, the usage is implicitly DISPLAY. The VALUE Clause Function The VALUE clause defines the value of Report Section printable items. General Format VALUE IS literal-1 Syntax Rules 1. A signed numeric literal must have associated with it a signed numeric PICTURE character-string. 2. A numeric literal in a VALUE clause of an item must have a value which is within the range of values indicated by the PICTURE clause, and must not have a value which would require truncation of nonzero digits. A nonnumeric literal in a VALUE clause of an item must not exceed the size indicated by the PICTURE clause. General Rules 1. The VALUE clause must not conflict with other clauses in the data description of the item or in the data description within the hierarchy of the item. The following rules apply: a. If the category of the item is numeric, literal-1 in the VALUE clause must be numeric. b. If the category of the item is alphabetic, alphanumeric, alphanumeric edited, or numeric edited, literal-1 in the VALUE clause must be a nonnumeric literal. The literal is aligned in the data item as if the data item had been described as alphanumeric (See the section Standard Alignment Rules in the chapter COBOL Concepts). Editing characters in the PICTURE clause are included in determining the size of the data item but have no effect on initialization of the data item (see the section The PICTURE Clause in the chapter The Nucleus). Therefore, the value for an edited item must be specified in an edited form. c. Initialization is not affected by any BLANK WHEN ZERO or JUSTIFIED clause that can be specified. 2. In the report section, if the elementary report entry containing the VALUE clause does not contain a GROUP INDICATE clause, then the printable item will assume the specified value each time its report group is printed. However, when the GROUP INDICATE clause is also present, the specified value will be presented only when certain object item conditions exist (see the section The GROUP INDICATE Clause in the chapter Segmentation).


MPE/iX 5.0 Documentation