使用数据项和组项

相关数据项可以是分层数据结构的一部分。 没有下级数据项的数据项称为 基本项。 由一个或多个下级数据项组成的数据项称为 组项

关于此任务

记录可以是基本项或组项。 组项可以是 字母数字组项国家组项

例如, Customer-Record 在下面的代码中,是一个字母数字组项,它由两个下级字母数字组项组成(Customer-NamePart-Order),每个部分都包含基本数据项。 这些组项隐式具有 USAGE DISPLAY 如以下代码所示,您可以在 PROCEDURE DIVISIONMOVE 语句中引用整个组项或组项的部分内容:


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
    . . .

您可以将 Customer-Record 定义为由两个下级国家组项组成的国家组项,方法是更改 DATA DIVISION 中的声明,如下代码所示。 国家组项的行为方式与大多数操作中的基本类别国家数据项的行为方式相同。 GROUP-USAGE NATIONAL 子句指示组项及其从属的任何组项都是国家组。 必须显式或隐式地将国家组中的下级基本项描述为 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
    . . .

在之前的示例中,分组项可以在分组级别指定 USAGE NATIONAL 子句。 组级别的 USAGE 子句适用于组中的每个基本数据项 (因此充当方便的速记符号)。 然而,一个指定 USAGE NATIONAL 尽管该组内有基本项目的代表,但该条款并不是一个国家组。 指定 USAGE 子句的组是字母数字组,在许多操作中(如移动和比较)的行为与 USAGE DISPLAY 的基本数据项相同(但无法编辑或转换数据)。

相关参考
文件部分条目
字符数据的存储
组项的类别和种类COBOL for Linux on x86 语言参考
PICTURE 子句COBOL for Linux on x86
MOVE 语句COBOL for Linux on x86 语言参考
USAGE 子句COBOL for Linux on x86 语言参考