跳转到主要内容
模块 4 · 第 1 课(共 2)课程中的7/10~12 min
模块课程(1/2)

组项目和记录

在 COBOL 中,基本变量可以组合在一起形成称为“组项”或“记录”的分层结构。这允许您将一组相关数据视为单个实体(例如,复制或显示它们)或单个字段。

级别编号和层级关系

要定义记录,请在 DATA DIVISION 中使用 级别编号:

  • 级别 01:定义主记录(组名称)。它没有自己的 PICTURE 子句,因为它的大小由其内部字段的总和决定。
  • 从属级别(05、10、15 等):标识属于较高级别组的从属字段。它们可以是基本变量(带有 PIC 子句),也可以是其他组项(子记录)。
COBOL
01 WS-EMPLOYEE-RECORD.
    05 WS-EMP-ID       PIC 9(5).
    05 WS-EMP-NAME     PIC X(20).
    05 WS-EMP-SALARY   PIC 9(6)V99.

在此示例中,WS-EMPLOYEE-RECORD 是一个包含三个从属字段的组结构。如果我们引用 WS-EMPLOYEE-RECORD,我们会一次读取或写入记录的所有 5 + 20 + 8 = 33 个字符。

MOVE 语句和组项目

我们可以为各个基本字段赋值:

COBOL
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.

或者我们可以通过一次操作将整个记录复制到另一个兼容的记录中:

COBOL
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.

自己尝试一下

锻炼#cobol.m4.l1.e1
尝试:0加载中...

声明一个名为 WS-STUDENT-RECORD 的组结构 01,其中包含 05 级的三个子字段:WS-STUDENT-ID(5 位数字)、WS-STUDENT-NAME(15 个字符的字母数字)和 WS-STUDENT-GPA(1 位整数和 2 位小数的数字)。

正在加载编辑器...
显示提示

使用语法:01 WS-STUDENT-RECORD。 (有句点,没有 PIC),接下来的行是级别 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15)。和 05 WS-学生-GPA PIC 9(1)V99。

3 次尝试后可用的解决方案

锻炼#cobol.m4.l1.e2
尝试:0加载中...

通过将值 10023 移入 WS-EMP-ID、将文本“JOHN DOE”移入 WS-EMP-NAME 来完成 PROCEDURE DIVISION,最后使用 DISPLAY 显示组结构 WS-EMPLOYEE-RECORD。

正在加载编辑器...
显示提示

使用 MOVE 10023 到 WS-EMP-ID。并将“JOHN DOE”移至 WS-EMP-NAME。分配值,然后写入 DISPLAY WS-EMPLOYEE-RECORD。最后停止运行。

3 次尝试后可用的解决方案