Compaq COBOL
Reference Manual
5.3.40 REDEFINES
Function
The REDEFINES clause allows different data description entries to
describe the same storage area.
other-data-item
is a data-name. It identifies the data description entry that first
defines the storage area.
Note
Level-number, data-name, and FILLER are not part of the REDEFINES
clause. They are included in the general format only to clarify the
relative position of the clause.
|
Syntax Rules
- The subject of the REDEFINES clause is the data-name or FILLER in a
Format 1 data description entry.
- The REDEFINES clause must immediately follow its subject.
- The level-numbers of the subject of the REDEFINES clause and
other-data-item must be the same. However, they cannot be
either 66 or 88.
- The REDEFINES clause cannot be used in a level 01 entry in the File
Section.
- The data description entry for other-data-item cannot
contain an OCCURS clause. However, other-data-item can be
subordinate to an item whose data description entry contains an OCCURS
clause. In that case, the reference to other-data-item in the
REDEFINES clause cannot be subscripted or indexed.
- Neither the original definition nor the redefinition can contain a
variable occurrence data item.
- If other-data-item is either an external record or
anything other than a level 01 entry, the number of character positions
it contains must be greater than or equal to the number in the subject
of the REDEFINES clause. If other-data-item is a level 01
entry, and is not an external record, its description need not follow
this rule; that is, other-data-item can contain fewer
character positions than the subject of the REDEFINES clause.
- Other-data-item cannot be qualified even if it is not
unique. The reference to other-data-item is unique without
qualification because of the placement of the REDEFINES clause.
- A program can have multiple redefinitions of the same character
positions. However, they must all refer to other-data-item,
the data-name that originally defined the area.
- The redefining entries cannot contain VALUE clauses except in
condition-name entries.
- No entry with a level-number lower than that of
other-data-item can occur between the data description entry
for other-data-item and the redefinition.
- The entries redefining the storage area must immediately follow
those that originally defined it. There can be no intervening entries
that define additional storage areas.
General Rules
- Storage allocation starts at the location of
other-data-item. Storage allocation continues until it defines
the number of character positions in the data item referred to by the
subject of the REDEFINES clause.
- If more than one data description entry defines the same character
position, the program can refer to the character position using the
data-name associated with any of those data description entries.
Additional References
Example
This example shows the following:
- A sample program containing multiple redefinitions of the same area
- The results of the sample program statements
- The allowable subscripts and the contents for each data item in the
program
5.3.41 RENAMES
Function
The RENAMES clause groups elementary items in alternative or
overlapping ways.
new-name
is the data-name of the item being described. It identifies an
alternate grouping of one or more items in a record.
rename-start
is the data-name of the leftmost data item in the area. It can be
qualified.
rename-end
is the data-name of the rightmost data item in the area. It can be
qualified.
Note
Level-number 66 and new-name are not part of the RENAMES clause. They
are in the general format only to clarify the relationship.
|
Syntax Rules
- A logical record can have any number of RENAMES entries.
- All RENAMES entries referring to data items in a logical record
must immediately follow the last data description entry of the record
description entry.
- The program cannot qualify data-names with new-name.
- The program can qualify new-name only by the names of the
associated level 01, FD, or SD entries.
- The data description entries for rename-start and
rename-end:
- Cannot have an OCCURS clause
- Cannot be subordinate to an item whose data description entry has
an OCCURS clause
- rename-start and rename-end must be the names of
elementary items or groups of elementary items in the same logical
record. They cannot be the same data-name.
- A level 66 entry cannot rename another level 66 entry. Nor can it
rename a level 88, level 01, or level 77 entry.
- None of the items in the range, including rename-start and
rename-end, can be variable occurrence data items.
- The words THRU and THROUGH are equivalent.
- rename-end cannot be subordinate to rename-start.
The beginning of rename-end cannot be to the left of the
beginning of rename-start. The end of rename-end must
be to the right of the end of rename-start.
General Rules
- If rename-end is used, new-name includes all
elementary items:
- Starting with rename-start, if rename-start is an
elementary item or the first elementary item in rename-start,
or if rename-start is a group item
- Ending with rename-end, if rename-end is an
elementary item or the last elementary item in rename-end, or
if rename-end is a group item
- If rename-end is not used, all data attributes for
rename-start become data attributes for new-name. In
this case, you are renaming a single data item. If that item is a group
item, new-name is also treated as a group item. If that item
is an elementary item, new-name is also treated as an
elementary item.
Additional Reference
Section 5.3.4
Example
In the following example, the box RESULTS displays the values given
when using the RENAMES clause:
5.3.42 REPORT
Function
The REPORT clause in a file description entry (FD) specifies the Report
Description (RD) report names that comprise a report file.
Syntax Rules
- Each report-name in the REPORT clause must be the subject
of a Report Description entry (RD) in the Report Section of the same
program. report-name can appear in only one REPORT clause.
- report-names can appear in any order.
- The file-name in a file description entry for a Report File can be
referenced only by the OPEN statement with the OUTPUT or EXTEND phrase
or by the CLOSE statement.
General Rules
- More than one report-name in a REPORT clause indicates
that the file contains more than one report.
- After executing an INITIATE statement and before executing a
TERMINATE statement for the same report file, the report file is under
the control of the Report Writer Control System (RWCS). While a report
file is under control of the RWCS, no input/output statement may
reference that report file.
- If the associated file connector is an external file connector,
every file description entry in the run unit associated with that file
connector must describe it as a report file.
Technical Note
On OpenVMS, the DCL PRINT command inserts a form-feed character when a
form is within four lines from the bottom. This positions the report to
the top of the next logical page.
Report Writer files are written in print format. Line spacing positions
the report to the top of the next logical page.
Therefore, use the PRINT/NOFEED command to suppress the insertion of
form-feed characters and to print your Report Writer files correctly.
For example:
$ PRINT/NOFEED full-file-name <>
|
Additional References
5.3.43 REQUIRED (Alpha)
Function
The REQUIRED clause specifies that in the context of an ACCEPT
statement, the user must enter at least one character in the input or
update field.
Syntax Rule
The REQUIRED clause cannot be specified in the description of a literal
screen item.
General Rules
- If the REQUIRED clause is specified at group level, it applies to
each input and update screen item in that group.
- The REQUIRED clause takes effect during the execution of any ACCEPT
statement when the cursor enters the screen item. Until this clause is
satisfied, the operator cannot leave the field and normal terminator
keystrokes are rejected.
- To satisfy this clause, alphanumeric screen items must contain at
least one nonspace character, and numeric screen items must have a
nonzero value.
- For update fields, the REQUIRED clause can be satisfied by the
contents of the identifier or literal referenced in the FROM or USING
phrase of the PICTURE clause, as well as by operator-keyed data.
- The REQUIRED clause is not effective if a function key is used to
terminate the accept operation.
- The specification of the FULL and REQUIRED clauses together
requires that the field must always be filled entirely by the user.
- The REQUIRED clause is ignored for an output field.
Additional Reference
Section 6.8.1 statement in Chapter 6 <>
5.3.44 REVERSE-VIDEO (Alpha)
Function
The REVERSE-VIDEO clause specifies that the field is displayed with the
default or specified foreground and background colors exchanged.
Syntax Rule
The REVERSE-VIDEO clause can be specified only for elementary screen
items.
Additional Reference
5.3.45 SECURE (Alpha)
Function
The SECURE clause suppresses the display of input characters on the
screen.
Syntax Rule
The SECURE clause can only be specified for an input screen item.
General Rules
- If the SECURE clause is specified at group level, it applies to
each input screen item in that group.
- When the SECURE clause is used, characters introduced for the
input field do not appear on the screen, yet the cursor moves as usual.
Additional Reference
Section 6.8.1 statement in Chapter 6 <>
5.3.46 SIGN
Function
The SIGN clause specifies the operational sign's position and type of
representation.
For screen description entries, the SIGN clause specifies the position
of the sign character in the field. The sign character always occupies
a separate position in the field, regardless of whether or not you
specify SEPARATE.
Syntax Rules
Format 1
- The SIGN clause can be used only in a numeric data description
entry or screen description entry whose PICTURE contains the S symbol,
or for a group item containing such entries.
- The data items to which the SIGN clause applies must have display
usage.
- If a file description entry has a CODE-SET clause, all signed
numeric data description entries associated with the file description
entry must contain the SIGN IS SEPARATE clause.
General Rules
Both Formats
- The SIGN clause specifies the operational sign's position and type
of representation. It applies to a numeric data description entry or
screen description entry or to each numeric data description entry or
screen description entry subordinate to a group.
- The SIGN clause applies only to numeric data description entries or
screen description entries whose PICTURE clause contains the S symbol.
S indicates the presence of an operational sign. However, S does not
specify the sign's representation or, necessarily, its position.
- If you specify the SIGN clause for both a group item and a group
item subordinate to it, the SIGN clause for the subordinate group
overrides the group item SIGN clause.
- If you specify the SIGN clause for both a group item and an
elementary numeric item subordinate to it, the SIGN clause for the
elementary item overrides the group item SIGN clause.
- A numeric data description entry or screen description entry to
which no optional SIGN clause applies, but whose PICTURE contains an S
symbol, has an operational sign.
- The numeric data description entry is equivalent to an entry that
contains the SIGN IS TRAILING clause without the SEPARATE CHARACTER
phrase.
- The screen description entry is equivalent to an entry that
contains the SIGN IS TRAILING with the SEPARATE CHARACTER phrase.
- If you specify the SEPARATE CHARACTER phrase (or it is implied):
- The operational sign is the leading (or trailing) character of the
elementary numeric data item. The sign does not share this position
with a digit.
- The S symbol in the PICTURE counts toward data or screen item size.
That is, it represents a character position.
- The operational sign for positive is the plus sign (+).
- The operational sign for negative is the minus sign (-).
- Every numeric data item whose PICTURE contains the S symbol is a
signed numeric data item. If you specify the SIGN clause for such an
item, necessary conversions for computations or comparisons occur
automatically.
Format 1 (Data Description)
- If you do not specify the SEPARATE CHARACTER phrase:
- The operational sign is associated with the leading (or trailing)
digit position of the elementary numeric item. The sign shares this
character position with a digit.
- The S symbol in the PICTURE does not count toward the size of the
item. That is, it does not represent a character position.
- The character in the operational sign position represents both a
numeric digit and the item's algebraic sign. Table 5-11 shows the
characters representing positive and negative signs for all numeric
digits. Where more than one character appears, the first is the
character generated as the result of machine operations.
5.3.47 SOURCE
Function
The SOURCE clause identifies a data item to be sent to an associated
printable item defined within a Report Group Description entry.
source-id
names an elementary item in the Data Division.
Syntax Rules
- If source-id is a Report Section item it must be either:
- A PAGE-COUNTER
- A LINE-COUNTER
- A sum counter that is part of the report within which the SOURCE
clause appears
- The Report Writer Control System (RWCS) moves the contents of
source-id to the printable item. source-id
definitions must conform to the rules for sending items in the MOVE
statement.
General Rule
The RWCS executes implicit MOVE statements specified by the SOURCE
clauses when it formats the print lines (just before it presents them).
Additional References
5.3.48 SUM
Function
The SUM clause establishes a Report Writer sum counter and names the
data items to be summed.
sum-name
names a numeric data item with an optional sign in the Subschema, File,
Working-Storage, or Linkage Sections, or another sum counter in the
Report Section.
detail-report-group-name
names a DETAIL report group.
control-foot-name
must reference a control-name in the report's CONTROL clause.
Syntax Rules
- A SUM clause can appear only in the description of a CONTROL
FOOTING report group.
- If there is no UPON phrase, any sum-name in the SUM clause
that is itself a sum counter must be defined either in the same report
group that contains this SUM clause or in a report group at a lower
level in the control hierarchy of this report.
If there is an UPON
phrase, sum-name must not reference a sum counter.
- If the associated report file connector is an external file
connector and if sum-name references a numeric data item in
the Subschema, File, Working-Storage, or Linkage Sections, then
sum-name must reference the same external data item in all
programs in the run unit.
- detail-report-group-name must be a control-name
in a CONTROL clause and must be the name of a DETAIL report group
described in the same report as the CONTROL FOOTING report group in
which the SUM clause appears.
- detail-report-group-name may be qualified by a report-name.
- control-foot-name must not be at a lower control level
than the associated control level for the report group in which the
RESET phrase appears.
If FINAL appears in the RESET phrase, FINAL
must also appear in the CONTROL clause for this report.
- The highest permissible qualifier for sum-name is the
report-name.
General Rules
- The SUM clause establishes a sum counter. At run time, the Report
Writer Control System (RWCS) adds the value in each sum-name
to the sum counter. This addition is consistent with the rules for
arithmetic statements.
- The UPON phrase provides for selective subtotalling. Subtotalling
occurs each time the RWCS processes the DETAIL report group referenced
by detail-report-group-name.
- If there is a RESET phrase, the RWCS will set the sum counter to
zero when the RWCS is processing the designated level of control
hierarchy. If there is no RESET phrase, the RWCS will set the sum
counter in the CONTROL FOOTING report group to zero when the RWCS
processes that report group.
The RWCS initially sets sum counters
to zero during the execution of the INITIATE statement for the report
containing the sum counter.
- The size of the sum counter is equal to the number of receiving
character positions defined in the PICTURE clause that accompanies the
SUM clause in the description of the elementary item.
- Only one sum counter exists for an elementary report entry,
regardless of the number of SUM clauses specified in the elementary
report entry.
- If the elementary report entry for a printable item contains a SUM
clause, the sum counter serves as a source data item. On a control
break, the RWCS moves the data from the sum counter to the printable
item for presentation according to the rules of the MOVE statement.
- If a data-name appears as the subject of an elementary report entry
that contains a SUM clause, the data-name is the name of the sum
counter; the data-name is not the name of a printable item that the
entry may also define.
- Procedure Division statements can alter the contents of sum
counters.
- During the execution of GENERATE and TERMINATE statements, the RWCS
adds the values in sum-name to a sum counter.
- The RWCS adds each individual sum-name into the sum
counter when it processes the CONTROL FOOTING report group defining the
sum counter.
Technical Notes
- The three categories of sum counter accumulation are as follows:
- Subtotalling
- Crossfooting
- Rolling forward
Subtotalling occurs only during execution of GENERATE statements
and after any control break processing but before processing of the
DETAIL report group. Crossfooting and rolling forward occur during the
processing of CONTROL FOOTING report groups.
- Subtotalling accumulates numeric data fields (sum-names)
into a sum counter. sum-name must not reference a sum counter
when subtotalling. If the SUM clause contains the UPON phrase,
sum-names are subtotalled when a GENERATE statement executes
for a DETAIL report group. If there is no UPON phrase,
sum-names are subtotalled when any GENERATE data-name
statement is executed for the report in which the SUM clause appears.
- Crossfooting accumulates sum counters (sum-name) from the
same CONTROL FOOTING report group into another sum counter. It is a
horizontal sum of sums.
Crossfooting occurs when a control break
takes place and when the CONTROL FOOTING report group is processed.
Crossfooting is performed according to the sequence in which sum
counters are defined within the CONTROL FOOTING report group. That is,
all crossfooting into the first sum counter defined in the CONTROL
FOOTING report group is completed, and then all crossfooting into the
second sum counter defined in the CONTROL FOOTING report group is
completed. This procedure repeats until all crossfooting operations are
completed.
When one of the sum-names is the sum counter
defined by the Data Description entry in which that sum clause appears,
the initial value of that sum counter is used in the summing operation.
- Rolling forward accumulates sum counters (sum-name)
defined in lower level CONTROL FOOTING report groups into another sum
counter. It is a vertical sum of sums. A sum counter in a lower level
CONTROL FOOTING report group is rolled forward when a control break
occurs and at the time the lower level CONTROL FOOTING report group is
processed.
- If two or more sum-names specify the same sum counter,
then the sum counter is added as many times as the sum counter is
referenced in the SUM clause. It is permissible for two or more of the
sum-names to specify the same DETAIL report group. When a
GENERATE data-name statement for such a DETAIL report group is given,
the incrementing occurs repeatedly, as many times as the
sum-name appears in the UPON phrase.
Additional References