The expanded print service provides a means for exit routines to
write data to both the terminal and the IPCS print data set, IPCSPRNT. The
expanded print service differs from the standard print service, in
that it requires a parameter list PPR2 (mapped by BLSUPPR2) to be
passed that
describes which new print functions are to be used. The expanded
print service provides the following functions:
- Conditional headings
- Expanded print service saves a predetermined heading and writes
it only if some future action occurs that calls the service to print
data.
If the expanded print service is called to define a conditional
heading when a conditional heading is already in place, the previous
conditional heading is written out. 250 characters is the maximum
size of a conditional header.
A flag in the PPR2 allows the
user to request the cancelation of a conditional header.
For
this call, the expanded print service sets a return code of 0 to indicate
that the header was canceled and a return code of 4 to indicate that
the conditional header was already written out. This allows the program
establishing the conditional header to know whether any data was written
following the conditional header.
A token field (PPR2TOKN)
is provided to allow the user to identify a specific
conditional header for cancelation.
If the PPR2TOKN field does
not match the token saved at the time the conditional header was saved,
the conditional header is not canceled. If the PPR2TOKN field is
all blanks, any conditional header is canceled.
- Indentation
- The expanded print service uses the ADPLSCOL field to determine
the number
of spaces to indent the output. This function allows a service to
generate output that appears in multiple reports at varying indentation
levels without requiring any extra coding.
- Print buffer
- The user must specify the address of a print buffer that contains
the data to be printed. The expanded print service requires the length
of the print buffer. Specifying the address of a print buffer removes
the burden of formatting and requesting multiple prints for data that
is considered one logical line. The user of the expanded print service
can specify the address of the print buffer in the print service parameter
list.
- Truncation avoidance
- The expanded print service uses the recommended line width to
break up the data, in the print buffer, into sections that fit within
the recommended line width. As part of this function, the caller
can specify the indentation level to be applied to all overflow lines.
This allows generation of reports with consistent indentation.
- Controlled truncation
- The user can request truncating the line being printed at the
recommended line width. This truncation occurs after all requested
indentation has been applied to the output buffer.
- Message support
- The user can specify that the print buffer contains a message.
When
this occurs, the message identifier is assumed to occupy all positions
in the print buffer, up to the first blank. The expanded print service
examines the user profile table (UPT) and either removes the message
identifier (PROFILE NOMSGID) or leaves
the identifier in the message (PROFILE MSGID). All truncation and
indentation rules apply to messages.
- New line support
- The expanded print service recognizes the EBCDIC new line character
(X'15') when requested by setting the new line flag on in
the PPR2. The new line character causes the preceding data to be
printed and the following data to be started on a new line.
- Terminal only support
- When OPTIONS(TERM) is specified on the BLSUPPR2 expansion, the print request is
only sent to the terminal.
- Print Line Width
- When print line width is specified, the print request uses the
current print data set line width as the criteria for where to split
a line of text. This action allows old formatter exit routines to
preserve their old output format while using the new expanded print
service.