メインコンテンツにスキップ
モジュール 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 は 3 つの従属フィールドを含むグループ構造です。 WS-EMPLOYEE-RECORD を参照すると、レコードの 5 + 20 + 8 = 33 文字すべてを一度に読み書きすることになります。

MOVE ステートメントとグループ項目

個々の基本フィールドに値を割り当てることができます。

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

または、1 回の操作でレコード全体を別の互換性のあるレコードにコピーすることもできます。

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

自分で試してみてください

運動#cobol.m4.l1.e1
試行回数: 0読み込み中…

レベル 05 の 3 つのサブフィールド、WS-STUDENT-ID (5 桁の数値)、WS-STUDENT-NAME (15 文字の英数字)、および WS-STUDENT-GPA (1 桁の整数と 2 桁の小数を含む数値) を含む WS-STUDENT-RECORD という名前のグループ構造 01 を宣言します。

エディターを読み込み中…
ヒントを表示

構文: 01 WS-STUDENT-RECORD を使用します。 (ピリオドあり、PIC なし)、次の行にレベル 05 WS-STUDENT-ID PIC 9(5).、05 WS-STUDENT-NAME PIC X(15) が続きます。および 05 WS-STUDENT-GPA PIC 9(1)V99。

3 回の試行後に解決策が利用可能になります

運動#cobol.m4.l1.e2
試行回数: 0読み込み中…

値 10023 を WS-EMP-ID に移動し、テキスト「JOHN DOE」を WS-EMP-NAME に移動して手順部を完了し、最後に DISPLAY を使用してグループ構造 WS-EMPLOYEE-RECORD を表示します。

エディターを読み込み中…
ヒントを表示

MOVE 10023 TO WS-EMP-ID を使用します。そして「JOHN DOE」を WS-EMP-NAME に移動します。値を割り当てるには、DISPLAY WS-EMPLOYEE-RECORD を書き込みます。そして最後にストップラン。

3 回の試行後に解決策が利用可能になります