Using data items and group items
Related data items can be parts of a hierarchical data structure. A data item that does not have subordinate data items is called an elementary item. A data item that is composed of one or more subordinate data items is called a group item.
About this task
A record can be either an elementary item or a group item. A group item can be either an alphanumeric group item or a national group item.
For example, Customer-Record
below
is an alphanumeric group item that is composed
of two subordinate alphanumeric group items (Customer-Name
and Part-Order
),
each of which contains elementary data items. These
groups items implicitly have USAGE DISPLAY
. You
can refer to an entire group item or to parts of a group item in MOVE
statements
in the PROCEDURE DIVISION
as shown below:
Data Division.
File Section.
FD Customer-File
Record Contains 45 Characters.
01 Customer-Record.
05 Customer-Name.
10 Last-Name Pic x(17).
10 Filler Pic x.
10 Initials Pic xx.
05 Part-Order.
10 Part-Name Pic x(15).
10 Part-Color Pic x(10).
Working-Storage Section.
01 Orig-Customer-Name.
05 Surname Pic x(17).
05 Initials Pic x(3).
01 Inventory-Part-Name Pic x(15).
. . .
Procedure Division.
Move Customer-Name to Orig-Customer-Name
Move Part-Name to Inventory-Part-Name
. . .
You could
instead define Customer-Record
as a national group
item that is composed of two subordinate national group items by changing
the declarations in the DATA DIVISION
as shown below.
National group items behave in the same way as elementary category
national data items in most operations. The GROUP-USAGE NATIONAL
clause
indicates that a group item and any group items subordinate to it
are national groups. Subordinate elementary items in a national group
must be explicitly or implicitly described as USAGE NATIONAL
.
Data Division.
File Section.
FD Customer-File
Record Contains 90 Characters.
01 Customer-Record Group-Usage National.
05 Customer-Name.
10 Last-Name Pic n(17).
10 Filler Pic n.
10 Initials Pic nn.
05 Part-Order.
10 Part-Name Pic n(15).
10 Part-Color Pic n(10).
Working-Storage Section.
01 Orig-Customer-Name Group-Usage National.
05 Surname Pic n(17).
05 Initials Pic n(3).
01 Inventory-Part-Name Pic n(15) Usage National.
. . .
Procedure Division.
Move Customer-Name to Orig-Customer-Name
Move Part-Name to Inventory-Part-Name
. . .
In the example above, the group items could instead specify
the USAGE NATIONAL
clause at the group level. A USAGE
clause
at the group level applies to each elementary data item in a group
(and thus serves as a convenient shorthand notation). However, a group
that specifies the USAGE NATIONAL
clause is not a
national group despite the representation of the elementary items
within the group. Groups that specify the USAGE
clause
are alphanumeric groups and behave in many operations, such as moves
and compares, like elementary data items of USAGE DISPLAY
(except
that no editing or conversion of data occurs).
FILE SECTION entries
Storage of character data
Classes and categories of group items (COBOL for Linux on x86 Language Reference)
PICTURE clause (COBOL for Linux on x86 Language Reference)
MOVE statement (COBOL for Linux on x86 Language Reference)
USAGE clause (COBOL for Linux on x86 Language Reference)