バージョン 4.2.5
 —  プログラミングガイド  —

初期値(および RESET ステートメント)

このドキュメントでは、ユーザー定義変数のデフォルトの初期値、ユーザー定義変数への初期値の割り当て方法、およびフィールド値をデフォルトの初期値または DEFINE DATA ステートメントで定義した初期値に戻すための RESET ステートメントの使用方法について説明します。

このドキュメントでは、次のトピックについて説明します。


ユーザー定義変数/配列のデフォルトの初期値

フィールドに初期値を指定しない場合、そのフォーマットに応じたデフォルトの初期値でフィールドは初期化されます。

フォーマット デフォルトの初期値
B、F、I、N、P 0
A、U blank
L F(ALSE)
D D' '
T T'00:00:00'
C (AD=D)
オブジェクトハンドル NULL-HANDLE

Top of page

ユーザー定義変数/配列への初期値の割り当て

DEFINE DATA ステートメントでは、ユーザー定義変数に初期値を割り当てることができます。 初期値が英数字の場合、アポストロフィで囲む必要があります。

変更可能な初期値の割り当て

変更可能な初期値を変数/配列に割り当てる場合、DEFINE DATA ステートメントの変数定義の後に、キーワード INIT とともに山カッコ(< と >)で囲んだ初期値を指定します。 割り当てられた値は、変数/配列が参照されるたびに使用されます。 割り当てられた値は、プログラムの実行中に変更できます。

例:

DEFINE DATA LOCAL 
1 #FIELDA (N3) INIT <100> 
1 #FIELDB (A20) INIT <'ABC'> 
END-DEFINE 
...

変更不可能な初期値の割り当て

変数/配列を名前付き定数として扱う場合、DEFINE DATA ステートメントの変数定義の後に、キーワード CONSTANT とともに山カッコ(< と >)で囲んだ初期値を指定します。 割り当てられた定数値は、変数/配列が参照されるたびに使用されます。 割り当てられた値は、プログラムの実行中には変更できません。

例:

DEFINE DATA LOCAL 
1 #FIELDA (N3) CONST <100> 
1 #FIELDB (A20) CONST <'ABC'> 
END-DEFINE 
...

初期値としての Natural システム変数の割り当て

フィールドの初期値として、Natural システム変数の値を指定することもできます。

例:

以下の例では、システム変数 *DATX が初期値を指定するために使用されています。

DEFINE DATA LOCAL 
1 #MYDATE (D) INIT <*DATX> 
END-DEFINE 
...

英数字変数の初期値としての文字列の割り当て

初期値として、特定の 1 文字または文字列で、変数全体または変数の一部を埋めることができます(英数字変数にのみ有効)。

Top of page

ユーザー定義変数の初期値へのリセット

RESET ステートメントは、フィールドの値をリセットするために使用します。 以下の 2 つのオプションを使用できます。

注意:

  1. DEFINE DATA ステートメントで CONSTANT 節を指定して宣言したフィールドは、内容を変更できないので、RESET ステートメントで参照できません。
  2. レポーティングモードでは、プログラムに DEFINE DATA LOCAL ステートメントが含まれていなければ、RESET ステートメントを使用して変数を定義することもできます。

デフォルトの初期値へのリセット

RESETINITIAL なし)は、指定された各フィールドの内容をフォーマットに依存したデフォルトの初期値に設定します。

例:

DEFINE DATA LOCAL 
1 #FIELDA (N3)  INIT <100> 
1 #FIELDB (A20) INIT <'ABC'> 
1 #FIELDC (I4)  INIT <5> 
END-DEFINE 
... 
... 
RESET #FIELDA                    /* resets field value to default initial value 
... 

DEFINE DATA で定義した初期値へのリセット

RESET INITIAL は、指定された各フィールドを DEFINE DATA ステートメントのフィールド定義に従った初期値に設定します。

DEFINE DATA ステートメントで INIT 節を指定せずに宣言したフィールドに対して、RESET INITIALRESETINITIAL なし)と同じ効果を持ちます。

例:

DEFINE DATA LOCAL 
1 #FIELDA (N3)  INIT <100> 
1 #FIELDB (A20) INIT <'ABC'> 
1 #FIELDC (I4)  INIT <5> 
END-DEFINE 
... 
RESET INITIAL #FIELDA #FIELDB #FIELDC /* resets field values to initial values as defined in DEFINE DATA
...

Top of page