モジュールのレッスン (1/2)
グループ項目とレコード
COBOL では、基本変数を グループ項目 または レコード と呼ばれる階層構造にグループ化できます。これにより、関連データのセットを単一のエンティティ (コピーまたは表示など) として、または個別のフィールドとして扱うことができます。
レベル番号と階層関係
レコードを定義するには、DATA DIVISION で レベル番号 を使用します。
- レベル
01: メイン レコード (グループ名) を定義します。サイズは内部フィールドの合計によって決定されるため、独自のPICTURE句はありません。 - 下位レベル (
05、10、15など): 上位レベルのグループに属する下位フィールドを識別します。これらは、基本変数 (PIC句を含む) または他のグループ項目 (サブレコード) にすることができます。
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 ステートメントとグループ項目
個々の基本フィールドに値を割り当てることができます。
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.または、1 回の操作でレコード全体を別の互換性のあるレコードにコピーすることもできます。
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.自分で試してみてください
レベル 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 回の試行後に解決策が利用可能になります
値 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 回の試行後に解決策が利用可能になります