  | 
		
HP COBOL Reference Manual
 
 
D.7 Body Group Presentation Rules
Figure D-3 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.
 
Figure D-3 Body Group Presentation Rules
  
 
Body Group Presentation Rules 
 
 
  - Upper-limit rule: 
 The first line number on which a body group
  can be presented is the first-detail-line value in the FIRST DETAIL
  phrase of the PAGE clause.
   - Lower-limit rules: 
 The last line number on which a CONTROL
  HEADING report group or DETAIL report group can be presented is the
  last-detail-line value in 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-line value in the
  FOOTING phrase of the PAGE clause.
   - Fit test rules:
  
    - If the value in LINE-COUNTER is less than the integer of the first
    absolute LINE NUMBER clause, then the body group will appear on the
    page on 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 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 will be
    presented on the page on 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
      
 - Reapplies fit test rule 3a
    
  
     - If a body group has been presented on the page on which the report
    is positioned, the RWCS computes a trial sum in a work location. The
    trial sum is computed by adding:
    
      - The contents of LINE-COUNTER
      
 - 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 on 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 set, the body group
      appears on the page on 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
      
 - Computes a trial sum in a work location
    
  
       The trial sum is computed by adding:
    
      - The contents of LINE-COUNTER
      
 - The integer 1
      
 - 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, then 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.
     - If a body group has been presented on the page on 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 on 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 set, the body group will be presented on the page on which the
    report is currently positioned. If saved-next-group-integer was set,
    the RWCS moves saved-next-group-integer into LINE-COUNTER and resets
    saved-next-group-integer to zero.  If the value in LINE-COUNTER is
    less than the integer of the first absolute LINE NUMBER clause, the
    RWCS presents the body group on the page on 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.
    
   - First print line position rules:
  
    - The first print line of the body group appears on the line number
    specified by the integer of its LINE NUMBER clause.
    
 - The RWCS presents the first print line of the current body group on
    the line immediately following the line indicated by the value
    contained in LINE-COUNTER if these two conditions are true:
    
      - The value in LINE-COUNTER is equal to or greater than the line
      number specified by the first-detail-line value in the FIRST DETAIL
      phrase of the PAGE clause.
      
 - No body group has previously been presented on the page on which
      the report is currently positioned.
    
  
       The RWCS presents the first print line of the current body group on
      the line that is obtained by adding the contents of LINE-COUNTER and
      the integer of the first LINE NUMBER clause of the current body group
      if these two conditions are true:
    
      - The value in LINE-COUNTER is equal to or greater than the line
      number specified by the first-detail-line value in the FIRST DETAIL
      phrase of the PAGE clause.
      
 - A body group has previously been presented on the page to which the
      report is currently positioned.
    
  
       If the value in LINE-COUNTER is less than the line number specified
      by the first-detail-line value in the FIRST DETAIL phrase of the PAGE
      clause, then the RWCS presents the first print line of the body group
      on the line specified by the FIRST DETAIL phrase.
     - The body group is not presented.
    
 - The line number on which the RWCS presents the first print line is
    the sum of the contents of:
    
      - LINE-COUNTER
      
 - The integer of the first LINE NUMBER clause
    
  
    
   - Next group rule: 
 The integer of the absolute NEXT GROUP clause
  (next-group-line-num) must specify a line number that is: (a) not less
  than that specified in the FIRST DETAIL phrase of the PAGE clause, and
  (b) not greater than that specified in the FOOTING phrase of the PAGE
  clause.
   - Final LINE-COUNTER setting rules:
  
    - 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. 
 If
    the line number on which the final print line of the body group was
    presented is less than the integer of the NEXT GROUP clause, then the
    RWCS places the NEXT GROUP integer into LINE-COUNTER as the final
    LINE-COUNTER setting. If the line number on which the final print line
    of the body group was presented is equal to or greater than the integer
    of the NEXT GROUP 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. In addition, the RWCS places the NEXT
    GROUP integer into the saved-next-group-integer location.
     - 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
      
 - 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-line value in 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-line value in the FOOTING phrase of the PAGE
      clause, then the RWCS places that line number into LINE-COUNTER as the
      final LINE-COUNTER setting.
     - The final LINE-COUNTER setting is the line number on which the
    final print line of the CONTROL FOOTING report group was presented if:
    
      - The body group that has just been presented is a CONTROL FOOTING
      report group.
      
 - The CONTROL FOOTING report group is not associated with the highest
      level at which the RWCS detected a control break.
    
  
       For all other cases the RWCS places the line number specified by
      the footing-line value in the FOOTING phrase of the PAGE clause into
      LINE-COUNTER as the final LINE-COUNTER setting.
     - The final LINE-COUNTER setting is the line number on which the
    final print line of the body group was presented.
    
 - LINE-COUNTER is unaffected by the processing of a nonprintable body
    group.
    
 - The final LINE-COUNTER setting is the line number on which the RWCS
    presents the final print line of the CONTROL FOOTING report group if:
    
      - The body group that has just been presented is a CONTROL FOOTING
      report group.
      
 - The CONTROL FOOTING report group is not associated with the highest
      level at which the RWCS detected a control break.
    
  
       For all other cases the RWCS uses the sum of these two items as the
      final LINE-COUNTER setting:
    
      - The line number on which the final print line was presented
      
 - The NEXT GROUP integer
    
  
    
  
  
  
		 |