This statement is permitted for file copying only. It serves to form groups by combining input records which have the same grouping criterion. The formation of groups results in implicit format editing. Both group header and group trailer lines can be formatted. User lines are lines containing text written by the user himself. This text can consist of input record fields, keywords and literals. The user lines are referred to as group header or group trailer lines, depending on whether they precede a group or follow it.
If several SET-GROUP-ATTRIBUTES statements of the same group level refer to the same link name, only the last statement specified is executed for this link name in the group level specified.
SET-GROUP-ATTRIBUTES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
OUTPUT-LINK-NAME =
Link names of the output files to which this statement is to refer.
OUTPUT-LINK-NAME = *STD
The statement references all output files specified up to now.
OUTPUT-LINK-NAME = list-poss(2000): <filename 1..8 without-gen>
If the statement is to reference only certain output files, the link names of these files must be specified.
GROUP-LEVEL = 1 / <integer 1..8>
Specifies the group level for which this SET-GROUP-ATTRIBUTES statement is valid. Up to 8 nested group levels are possible. Specifying group levels assigns priorities to the group criteria. A separate SET-GROUP-ATTRIBUTES statement must be specified for each group level. In the case of a group break on one level, groups with a lower GROUP-LEVEL are also subjected to a group break (1: highest level, 8: lowest level)
GROUP-CONTROL =
Specifies the grouping criterion.
GROUP-CONTROL = *ALL
The entire input file is interpreted as one group. This specification is only possible in the highest group level (GROUP-LEVEL=1).
GROUP-CONTROL = *FIELD(...)
A field in the input record is specified as the grouping criterion.
POSITION = <integer 1..32767>
Specifies the position where the comparison field begins, relative to the beginning of the input record.
LENGTH = 1 / <integer 1..256>
Specifies the length of the comparison field, limited by the record length of the input record.
GROUP-HEADER =
Defines user lines which form the group header. These lines are output before the first line of the corresponding group when there is a group break.
GROUP-HEADER = *NONE
No user lines are output.
GROUP-HEADER = *FIELD(...)
Transfers a field of the input record (input field) to a field in the user line (output field).
INPUT-POSITION = <integer 1..32768>
Specifies the position where the input field begins, relative to the beginning of the input record.
INPUT-LENGTH = 1 / <integer 1..204>
Specifies the length of the input field, limited by the record length of the input record.
INPUT-FORMAT = *CHARACTER / *ZONED-DECIMAL / *PACKED-DECIMAL
Format of the input field in the input record (see "Formats" ff).
The input record field which is to be edited using a mask must not be longer than 203 bytes for INPUT-FORMAT=*ZONED-DECIMAL and no longer than 102 bytes for INPUT-FORMAT=*PACKED-DECIMAL.
OUTPUT-POSITION = <integer 1..204>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the output field.
The table below shows the default values:
OUTPUT-FORMAT | INPUT-FORMAT | ||
CHARACTER | ZONED-DECIMAL | PACKED-DECIMAL | |
CHARACTER | INPUT-LENGTH | ||
HEXADECIMAL | 2 * INPUT-LENGTH | ||
BINARY | 8 * INPUT-LENGTH | ||
<c-string> (mask) | Mask length | Mask length | |
SIGNED-DECIMAL | INPUT-LENGTH + 1 | 2*INPUT-LENGTH | |
DECIMAL | INPUT-LENGTH + 1 | 2*INPUT-LENGTH | |
ZONED-DECIMAL | INPUT-LENGTH | 2*INPUT-LENGTH-1 |
OUTPUT-FORMAT = *STD / *CHARACTER / *HEXADECIMAL / *BINARY /<c-string 2..204 with-low> / *ZONED-DECIMAL / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the output field (see "Formats" ff).
Only the following combinations are permissible:
OUTPUT-FORMAT | INPUT-FORMAT | ||
CHARACTER | ZONED-DECIMAL | PACKED-DECIMAL | |
CHARACTER | + | ||
HEXADECIMAL | + | ||
BINARY | + | ||
<c-string> (mask) | + | + | |
SIGNED-DECIMAL | + | + | |
DECIMAL | + | + | |
ZONED-DECIMAL | + | + |
The table below shows the default values:
INPUT-FORMAT | OUTPUT-FORMAT |
CHARACTER | CHARACTER |
PACKED-DECIMAL | ZONED-DECIMAL |
ZONED-DECIMAL | ZONED-DECIMAL |
GROUP-HEADER = *RECORD-LENGTH(...)
LINK-NAME = <filename 1..8 without-gen>
Specifies the link name of the input/output file whose current record length is to be used in the user line.
OUTPUT-POSITION = <integer 1..203>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH =*STD / <integer 1..204>
Length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
ZONED-DECIMAL-LEFT | 8 characters |
ZONED-DECIMAL | 8 characters |
SIGNED-DECIMAL | 9 characters |
DECIMAL | 9 characters |
OUTPUT-FORMAT = *ZONED-DECIMAL-LEFT / <c-string 2..204 with-low> /*ZONED-DECIMAL / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the output field, (see "Formats" ff).
GROUP-HEADER = *BYTE-COUNTER(...)
LINK-NAME = <filename 1..8 without-gen>
Specifies the link name of the input/output file whose current byte counter is to be used in the user line.
OUTPUT-POSITION = <integer 1..203>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
ZONED-DECIMAL-LEFT | 10 characters |
ZONED-DECIMAL | 10 characters |
SIGNED-DECIMAL | 11 characters |
DECIMAL | 11 characters |
OUTPUT-FORMAT = *ZONED-DECIMAL-LEFT / <c-string 2..204 with-low> /*ZONED-DECIMAL / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER = *RECORD-COUNTER(...)
LINK-NAME = <filename 1..8 without-gen>
Specifies the link name of the input/output file whose current record counter value is to be used in the user line.
OUTPUT-POSITION = <integer 1..203>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
ZONED-DECIMAL-LEFT | 8 characters |
ZONED-DECIMAL | 8 characters |
SIGNED-DECIMAL | 9 characters |
DECIMAL | 9 characters |
OUTPUT-FORMAT = *ZONED-DECIMAL-LEFT / <c-string 2..204 with-low> /*ZONED-DECIMAL / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER = *PAGE-COUNTER(...)
LINK-NAME = <filename 1..8 without-gen>
Specifies the link name of the output file whose current page counter value is to be used in the user line.
OUTPUT-POSITION = <integer 1..203>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
ZONED-DECIMAL-LEFT | 6 characters |
ZONED-DECIMAL | 6 characters |
SIGNED-DECIMAL | 7 characters |
DECIMAL | 7 characters |
OUTPUT-FORMAT = *ZONED-DECIMAL-LEFT / <c-string 2..204 with-low> /*ZONED-DECIMAL / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER = *DATE(...)
Specifies the start date of the PERCON conversion step as an 8-digit string in the form yy-mm-dd.
OUTPUT-POSITION = <integer 1..197>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 8..204>
Specifies the length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
CHARACTER | 8 characters |
HEXADECIMAL | 16 characters |
BINARY | 64 characters |
OUTPUT-FORMAT = *CHARACTER / *HEXADECIMAL / *BINARY
Specifies the format of the output field (see "Formats" ff).
CENTURY = *NO / *YES
If CENTURY=*YES is specified, the date is output as a 10
digit character string, with the century specification in the format yyyy-mm-dd; this reduces the maximum value for OUTPUT-POSITION by 2 to 195 and the minimum value for OUTPUT-LENGTH is increased by 2 to 10.
GROUP-HEADER = *TIME(...)
Specifies the start time of the PERCON conversion step as an 8-digit string in the form hh:mm:ss.
OUTPUT-POSITION = <integer 1..197>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 8..204>
Specifies the length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
CHARACTER | 8 characters |
HEXADECIMAL | 16 characters |
BINARY | 64 characters |
OUTPUT-FORMAT = *CHARACTER / *HEXADECIMAL / *BINARY
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER =<c-string 1..204 with-low>(...)
OUTPUT-POSITION = <integer 1..204>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
CHARACTER | Length of the c-string |
HEXADECIMAL | 2 * Length of the c-string |
BINARY | 8 * Length of the c-string |
OUTPUT-FORMAT = *CHARACTER / *HEXADECIMAL / *BINARY
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER =<x-string 1..408>(...)
OUTPUT-POSITION = <integer 1..204>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the length of the output field.
The table below shows the default values:
OUTPUT-FORMAT | OUTPUT-LENGTH |
CHARACTER | 0,5 * Length of the x-string |
HEXADECIMAL | Length of the x-string |
BINARY | 4 * Length of the x-string |
OUTPUT-FORMAT = *CHARACTER / *HEXADECIMAL / *BINARY
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER =<long-integer -9223372036854775807..9223372036854775807>(...)
OUTPUT-POSITION = <integer 1..204>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the length of the output field. The default value is the minimum length required to fit the output number in the specified format.
OUTPUT-FORMAT = *ZONED-DECIMAL / <c-string 2..204 with-low> / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the output field (see "Formats" ff).
GROUP-HEADER = *NEW-PAGE
Causes a feed to the next page and output of the previously formatted user line. After execution, a further user line can be generated.
GROUP-HEADER = *SPACING(...)
Causes output of the previously formatted user line and a feed of from 1 to 15 lines. After execution of the operand, a further user line can be generated.
LINES = 1 / <integer 1..15>
Specifies the number of line feeds.
GROUP-HEADER = *MODULE(...)
NAME = <name 1..8>
Editing of a group header user line takes place in a user module. The name of the user module or the entry point in the user module must be specified. A user line which has been created but not yet printed is made available to the user routine (see “Interface for group processing”).
GROUP-TRAILER = *NONE / list-poss(2000): *FIELD(...) / *SUM-FIELD(...) / *GROUP-COUNTER(...) / *RECORD-LENGTH / *BYTE-COUNTER(...) / *RECORD-COUNTER(...) / *PAGE-COUNTER(...) / *DATE(...) / *TIME(...) /
<c-string 1..204 with-low>(...) / <x-string 1..408>(...) /
<long-integer -9223372036854775807..9223372036854775807>(...) / *NEW-PAGE / *SPACING(...) / *MODULE(...)
Defines user lines which form a group trailer. These lines are output after the last line of the corresponding group when there is a group break.
GROUP-TRAILER = *SUM-FIELD(...)
When GROUP-TRAILER = *FIELD, the FIELD information is taken from the last record of the group.
See GROUP-HEADER ("SET-GROUP-ATTRIBUTES" ff) for a description of the operands (except for SUM-FIELD(...) and GROUP-COUNTER(...).
GROUP-TRAILER = *SUM-FIELD(...)
The values in the numbers field of all records of the last groups processed are totaled. This sum is transferred to the SUM-FIELD of the user line.The SUM-FIELD must be sufficiently long. Several fields can be totaled.
INPUT-POSITION = <integer 1..32768>
Specifies the position of the numbers field, relative to the beginning of the input record.
INPUT-LENGTH = 1 / <integer 1..16>
Specifies the length of the numbers field.
INPUT-FORMAT = *ZONED-DECIMAL / *PACKED-DECIMAL
Specifies the format of the numbers field (see "Formats" ff).
OUTPUT-POSITION = <integer 1..204>
Specifies the position where the sum field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 1..204>
Specifies the length of the sum field.
The default value is the minimum length required for accommodating the number to be output in the format specified. When outputting with a mask, *STD is the mask length. The following values are used for *STD in the conversions listed below:
OUTPUT-FORMAT | INPUT-FORMAT | |
ZONED-DECIMAL | PACKED-DECIMAL | |
SIGNED-DECIMAL | INPUT-LENGTH + 1 | 2 * INPUT-LENGTH |
DECIMAL | INPUT-LENGTH + 1 | 2 * INPUT-LENGTH |
ZONED-DECIMAL | 2 * INPUT-LENGTH-1 |
In all other cases, INPUT-LENGTH is assumed.
OUTPUT-FORMAT = *ZONED-DECIMAL / <c-string 2..204 with-low> / *SIGNED-DECIMAL / *DECIMAL
Specifies the format of the sum field (see "Formats" ff).
GROUP-TRAILER = *GROUP-COUNTER(...)
Specifies counters per group. GROUP-COUNTER is available for group levels 1 to 8 of each output medium. Each counter is unambiguously defined by its file link name and by a group level.
LINK-NAME = <filename 1..8 without-gen>
Specifies the link name of the input/output file from which a group counter is to be used in the user line.
GROUP-LEVEL = <integer 1..8>
Specifies which group counter of the input/output file labelled LINK-NAME is to be used.
OUTPUT-POSITION = <integer 1..203>
Specifies the position where the output field begins, relative to the beginning of the user line.
OUTPUT-LENGTH = *STD / <integer 4..204>
Specifies the length of the output field. The standard (default) value is either 4 when OUTPUT-FORMAT = *ZONED-DECIMAL-LEFT or the mask length.
OUTPUT-FORMAT = C' ZZZ' / <c-string 2..204 with-low> / *ZONED-DECIMAL-LEFT
Specifies the format of the output field (see "Formats" ff).