The LINAGE clause allows the user to specify the depth of a logical page in terms of number of lines. The user can also specify
the size of the top and bottom margins on the logical page, and the line number, within the page body, at which the footing
area begins.
It can be specified only for files with sequential organization.
General Format
Syntax Rules
- Data-name-1, data-name-2, data-name-3 and data-name-4 must reference elementary unsigned integer data items.
- The value of integer-1 must be greater than zero.
- The value of integer-2 must not be greater than integer-1.
- The value of integer-3 and integer-4 can be zero.
General Rules
- The LINAGE clause allows the user to specify the size of a logical page in terms of number of lines. The logical page size
is the sum of the values referenced by each phrase except the FOOTING phrase. If the FOOTING phrase is not specified, the
values for these functions are zero and no end-of-page condition independent of the page overflow condition exists.
There is not necessarily any relationship between the size of the logical page and the size of a physical page.
- The value of integer-1 or the data item referenced by data-name-1 specifies the number of lines that can be written and/or
spaced on the logical page. The value must be greater than zero. That part of the logical page in which these lines can be
written and/or spaced is called the page body.
- The value of integer-2 or the data item referenced by data-name-2 specifies the line number within the page body at which
the footing area begins. The value must be greater than zero and not greater than the value of integer-1 or the data item
referenced by data-name-1.
The footing area comprises the area of the logical page between the line represented by the value of integer-2 of the data
item referenced by data-name-2, and the line represented by the value of integer-1 or the data item referenced by data-name-1,
inclusive.
- The value of integer-3 or the data item referenced by data-name-3 specifies the number of lines that comprise the top margin
on the logical page. The value can be zero.
The value of integer-4 or the data item referenced by data-name-4 specifies the number of lines that comprise the bottom margin
on the logical page. The value can be zero.
- The value of integer-1, integer-3, and integer-4, if specified, will be used at the time the file is opened by the execution
of an OPEN statement with the OUTPUT phrase, to specify the number of lines that comprise each of the indicated sections of
a logical page. The value of integer-2, if specified, will be used at that time to define the footing area. These values are
used for all logical pages written for the file during a given execution of the runtime element.
- The values of the data items referenced by data-name-1, data-name-3, and data-name-4, if specified at the time an open statement
with the OUTPUT phrase is executed for the file, will be used to specify the number of lines that are to comprise each of
the indicated sections for the first logical page.
The value of the data item referenced by data-name-2, if specified, will be used at the time an OPEN statement with the OUTPUT
phrase is executed for the file to define the footing area for the first logical page.
- A LINAGE-COUNTER special register is generated by the presence of a LINAGE clause. The value in the LINAGE-COUNTER special
register at any one time represents the line number at which the device is positioned within the current page body. The rules
governing the LINAGE-COUNTER special register are as follows:
- A separate LINAGE-COUNTER special register is supplied for each file described in the File Section whose file description
entry contains a LINAGE clause.
- The LINAGE-COUNTER special register can be referenced, but cannot be modified, by Procedure Division statements. Since more
than one LINAGE-COUNTER special register can exist in a source element, the user must qualify LINAGE-COUNTER by file-name
when necessary.
- Each logical page is contiguous to the next with no additional spacing provided.
- The values of the data items, at the time a WRITE statement with the ADVANCING PAGE phrase is executed or page overflow condition
occurs (see the topic The WRITE Statement), will be used to specify the number of lines that are to comprise each of the indicated sections for the next logical page.
- The value of the data item referenced by data-name-2, if specified, will be used at the time a WRITE statement with the ADVANCING
PAGE phrase is executed or a page overflow condition occurs, to define the footing area for the next logical page.
- The LINAGE-COUNTER special register is automatically modified, according to the following rules, during the execution of a
WRITE statement to an associated file:
- When the ADVANCING PAGE phrase of the WRITE statement is specified, the LINAGE-COUNTER special register is automatically reset
to one.
- When the ADVANCING identifier-2 or integer phrase of the WRITE statement is specified, the LINAGE-COUNTER special register
is incremented by integer or the value of the data item referenced by identifier-2.
- When the ADVANCING phrase of the WRITE statement is not specified, the LINAGE-COUNTER special register is incremented by the
value one. (See the topic The WRITE Statement.)
- The value of the LINAGE-COUNTER special register is automatically reset to one when the device is repositioned to the first
line that can be written on for each of the succeeding logical pages. (See the topic The WRITE Statement.)
- The value of the LINAGE-COUNTER special register is automatically set to one when an OPEN statement is executed for the associated
file.