Writing QSAM files to a printer or spooled data set
COBOL provides language statements to control the size of a printed page and control the vertical positioning of records.
Controlling
the page size: Use the LINAGE
clause of the FD
entry
to control the size of your printed page: the number of lines in the
top and bottom margins and in the footing area of the page. When you
use the LINAGE
clause, COBOL handles the file as
if you had also requested the ADV
compiler option.
If
you use the LINAGE
clause in combination with WRITE
BEFORE
|AFTER ADVANCING
nn LINES
,
be careful about the values you set. With the ADVANCING
nn LINES
phrase,
COBOL first calculates the sum of LINAGE-COUNTER
plus nn.
Subsequent actions depend on the size of nn. The END-OF-PAGE
imperative
phrase is performed after the LINAGE-COUNTER
is increased.
Consequently, the LINAGE-COUNTER
could be pointing
to the next logical page instead of to the current footing area when
the END-OF-PAGE
phrase is performed.
AT
END-OF-PAGE
or NOT AT END-OF-PAGE
imperative
phrases are performed only if the write operation completes successfully.
If the write operation is unsuccessful, control is passed to the end
of the WRITE
statement, and all conditional phrases
are omitted.
Controlling
the vertical positioning of records: Use the WRITE ADVANCING
statement
to control the vertical positioning of each record you write on a
printed page.
BEFORE ADVANCING
prints the
record before the page is advanced. AFTER ADVANCING
prints
the record after the page is advanced.
Specify the number of
lines the page is advanced with an integer (or an identifier with
a mnemonic-name) following ADVANCING
.
If you omit the ADVANCING
phrase from a WRITE
statement,
the effect is as if you had coded:
AFTER ADVANCING 1 LINE