INITIALIZE ステートメントをそのグループ項目に適用することによって、グループ項目内のすべての従属データ項目の値を初期化することができます。 ただし、グループ内のすべての項目を初期化することが必要な場合を除き、グループ全体を初期化することは非効率的です。
以下の例は、プログラムが作成するトランザクション・レコードの各フィールドをスペースおよびゼロにリセットする方法を示しています。フィールドの値は、作成される各レコードで同一というわけではありません。(トランザクション・レコードは、英数字グループ項目 TRANSACTION-OUT として定義されています。)
01 TRANSACTION-OUT.
05 TRANSACTION-CODE PIC X.
05 PART-NUMBER PIC 9(6).
05 TRANSACTION-QUANTITY PIC 9(5).
05 PRICE-FIELDS.
10 UNIT-PRICE PIC 9(5)V9(2).
10 DISCOUNT PIC V9(2).
10 SALES-PRICE PIC 9(5)V9(2).
. . .
INITIALIZE TRANSACTION-OUT
| レコード | TRANSACTION-OUT (初期化前) | TRANSACTION-OUT (初期化後) |
|---|---|---|
| 1 | R001383000240000000000000000 | b0000000000000000000000000001 |
| 2 | R001390000480000000000000000 | b0000000000000000000000000001 |
| 3 | S001410000120000000000000000 | b0000000000000000000000000001 |
| 4 | C001383000000000425000000000 | b0000000000000000000000000001 |
| 5 | C002010000000000000100000000 | b0000000000000000000000000001 |
|
||
同様に国別グループ項目内のすべての従属データ項目の値は、そのグループ項目に INITIALIZE ステートメントを適用することにより、リセットできます。 以下の構造は、上記の構造と似ていますが、Unicode UTF-16 データを使用している点で異なります。
01 TRANSACTION-OUT GROUP-USAGE NATIONAL.
05 TRANSACTION-CODE PIC N.
05 PART-NUMBER PIC 9(6).
05 TRANSACTION-QUANTITY PIC 9(5).
05 PRICE-FIELDS.
10 UNIT-PRICE PIC 9(5)V9(2).
10 DISCOUNT PIC V9(2).
10 SALES-PRICE PIC 9(5)V9(2).
. . .
INITIALIZE TRANSACTION-OUT
トランザクション・レコードの直前の内容とは無関係に、上記の INITIALIZE ステートメントの実行後には次のようになります。
INITIALIZE ステートメントを使用して英数字または国別グループ・データ項目を初期化すると、そのデータ項目はグループ項目として、つまりグループ・セマンティクスで処理されます。 グループ内の基本データ項目は、上記の例に示されているように認識および処理されます。 INITIALIZE ステートメントの REPLACING 句をコーディングしない場合、次のようになります。
関連概念
国別グループ
関連参照
INITIALIZE ステートメント (Enterprise COBOL 言語解説書)