[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP COBOL
Reference Manual


Previous Contents Index

Technical Notes

  • On OpenVMS, the LINAGE clause causes a file to be in print-file format. When a WRITE statement positions the file to the top of the next logical page, device positioning occurs by line spacing rather than by page ejection or form feed.
    The default DCL PRINT command causes the insertion of a form-feed character when a form nears the end of a page. Therefore, when the default PRINT command refers to a LINAGE file, unexpected page spacing can result.
    The /NOFEED compiler option to the PRINT command suppresses the insertion of form-feed characters and prints LINAGE files correctly. For example:


    $ PRINT/NOFEED full-file-name
    
  • The /NOVFC compiler option can be used on OpenVMS Alpha and I64 to produce a Stream_LF record-formatted print file. The default (/VFC) behavior is to produce a VFC record-formatted file. <>
  • HP COBOL on Tru64 UNIX systems writes LINAGE files with blank lines to simulate WRITE ADVANCING behavior. These blank lines would not be produced on an OpenVMS Alpha or I64 system. When you input a LINAGE file, you must compensate for the difference. For example, use an extra initial READ statement (on Tru64 UNIX systems) to skip over the leading blank line in the LINAGE file. <>

Additional References

Example

The following example specifies a logical page whose size is 26 lines:


FD  PRINT-FILE
    VALUE OF ID IS "REPORT1.LIS"
    LINAGE IS 16 LINES WITH FOOTING AT 13
      LINES AT TOP 4 LINES AT BOTTOM 6.

In this example, the first line to which the page can be positioned is the fifth line. The end-of-page condition occurs when a WRITE statement causes the LINAGE-COUNTER value to be in the range 13 to 16. The page overflow condition occurs when a WRITE statement causes the LINAGE-COUNTER value to exceed 16.

Figure 5-9 shows the logical page areas resulting from the example.

Figure 5-9 Logical Page Areas Resulting from a LINAGE Clause


5.3.32 LINE NUMBER (Alpha, I64)

Function

The LINE NUMBER clause specifies vertical positioning information for a report group, or specifies the vertical screen coordinate for a screen item.


line-num

is a nonnegative integer. line-num represents an absolute line number on a logical page and establishes a print line for a Report Writer report group.

line-num-plus

is a positive integer. line-num-plus represents a relative line number on a logical page and establishes a print line for a Report Writer report group.

identifier-1

is an elementary unsigned numeric integer data item. It cannot be subscripted.

integer-1

is an unsigned integer value.

Syntax Rules (Report Description)

  1. Neither line-num nor line-num-plus can exceed three significant digits.
    The PAGE clause defines the length of a logical page and the vertical subdivisions within which each report group is presented. Neither line-num nor line-num-plus may specify a line outside of the PAGE clause limits. See Section 5.3.36 clause for more information.
  2. Within a given Report Group Description, an entry containing a LINE NUMBER clause must not contain a subordinate entry that also contains a LINE NUMBER clause.
  3. Within a given Report Group Description, all absolute LINE NUMBER clauses must precede all relative LINE NUMBER clauses.
  4. Within a given Report Group Description, successive absolute LINE NUMBER clauses must specify integers in ascending order. The integers need not be consecutive.
  5. If a given Report Description (RD) does not contain a PAGE clause, the program may specify only relative LINE NUMBER clauses in any Report Group Description within that report.
  6. Within a given Report Group Description, a NEXT PAGE phrase may appear only once. If present, it must be the first LINE NUMBER clause in that Report Group Description.
  7. A LINE NUMBER clause with the NEXT PAGE phrase may appear only in the description of a CONTROL HEADING, DETAIL, CONTROL FOOTING, or REPORT FOOTING report group.
  8. Every entry defining a printable item must either contain a LINE NUMBER clause or be subordinate to an entry that contains a LINE NUMBER clause. See the COLUMN NUMBER clause for more information.
  9. The first LINE NUMBER clause in a PAGE FOOTING report group must define an absolute line-num value.
  10. line-num-plus may be zero. If line-num-plus is zero, the line will be printed on the same line as the previous print line (overprint); however, line-num-plus cannot be zero for the first print line of a report group.

Syntax Rules (Screen Description)

  1. The LINE clause can be specified only in an elementary screen description entry.
  2. identifier-1 cannot be subscripted.

General Rules (Report Description)

  1. To establish each print line for a report group, a program must specify the LINE NUMBER clause.
  2. Before presenting the print line, the Report Writer Control System (RWCS) causes line positioning as specified by a LINE NUMBER clause.
  3. The NEXT PAGE phrase defines the line number of a new page on which to present the report group.
  4. For a complete specification on how to determine the first print line for a report group, see Appendix D, Report Writer Presentation Rules and Tables. A partial summary of these rules follows:
    If a relative clause is not the first LINE NUMBER clause in a report group, then the line number on which its print line is presented is determined by the sum of the following:
    • The line number from the previous print line of the report group
    • line-num-plus of the relative LINE NUMBER clause

    If the first LINE NUMBER clause in the Report Group Description entry is relative and a PAGE clause is specified, the first print line for the report group is determined as follows. See the Section 5.3.36 clause for the definitions of page-size, heading-line, first-detail-line, last-detail-line, and footing-line.
    1. REPORT HEADING
      The RWCS presents this group on a line number whose value is the sum of line-num of the first LINE NUMBER clause and heading-line minus 1.
    2. PAGE HEADING
      If a REPORT HEADING report group has been presented on the page on which this report group is to appear, the RWCS presents the PAGE HEADING relative to the final LINE-COUNTER setting of the REPORT HEADING.
      If no REPORT HEADING has been presented on the page, the RWCS presents this report group on the line number whose value is the sum of line-num of the first LINE NUMBER clause and heading-line minus 1.
    3. DETAIL, CONTROL HEADING, or CONTROL FOOTING
      If the value in LINE-COUNTER is less than first-detail-line, the RWCS presents the report group on first-detail-line.
      If the value in LINE-COUNTER is greater than or equal to first-detail-line and if this is the first body group to print on the page, the RWCS presents the report group on the line corresponding to the value in LINE-COUNTER.
      If the value in LINE-COUNTER is greater than or equal to first-detail-line and if this is not the first body group to print on the page, the RWCS presents the report group on the line whose value is the sum of LINE-COUNTER and line-num of the first LINE NUMBER clause of the current CONTROL HEADING, DETAIL, or CONTROL FOOTING report group.
    4. PAGE FOOTING
      Not applicable. The first LINE NUMBER clause of a PAGE FOOTING report group must contain an absolute line number reference.
    5. REPORT FOOTING
      If a PAGE FOOTING report group has been presented on the current page, the RWCS presents the REPORT FOOTING report group on the line whose value is the sum of the current value in LINE-COUNTER and line-num of the first LINE NUMBER clause of the REPORT FOOTING report group.
      If no PAGE FOOTING report group has been presented on the current page, the RWCS presents the REPORT FOOTING report group on the line whose value is the sum of footing-line and line-num of the first LINE NUMBER clause of the REPORT FOOTING report group.

General Rules (Screen Description)

  1. The LINE clause, in conjunction with the COLUMN clause, establishes the starting position for a screen item. This position is an offset from the starting screen coordinates specified in the ACCEPT or DISPLAY statement. The LINE clause specifies the vertical coordinate.
  2. The LINE clause without the PLUS phrase specifies the absolute line number.
  3. The LINE clause with the PLUS phrase specifies a line number relative to that at which the preceding item ends, regardless of whether or not the ACCEPT or DISPLAY statement displays the preceding item on the screen.
  4. If the LINE clause is omitted, the following apply:
    • If no previous screen item is defined, LINE 1 is assumed.
    • If a previous screen item is defined, the ending line of that previous item is assumed.

Additional References


Previous Next Contents Index