このドキュメントでは、ユーザー定義変数のデフォルトの初期値、ユーザー定義変数への初期値の割り当て方法、およびフィールド値をデフォルトの初期値または DEFINE
DATA
ステートメントで定義した初期値に戻すための RESET
ステートメントの使用方法について説明します。
このドキュメントでは、次のトピックについて説明します。
注意:
例えば、配列に初期値を割り当てる定義については、『ステートメント』ドキュメントの「例 2 - DEFINE DATA(配列の定義/初期化)」を参照してください。
フィールドに初期値を指定しない場合、そのフォーマットに応じたデフォルトの初期値でフィールドは初期化されます。
Format | デフォルトの初期値 |
---|---|
B、F、I、N、P | 0 |
A、U | blank |
L | F(ALSE) |
D | D' ' |
T | T'00:00:00' |
C | (AD=D )
|
オブジェクトハンドル | NULL-HANDLE |
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 システム変数の値を指定することもできます。
例:
以下の例では、システム変数 *DATX
が初期値を指定するために使用されています。
DEFINE DATA LOCAL 1 #MYDATE (D) INIT <*DATX> END-DEFINE ...
初期値として、特定の文字列を変数の全体または一部に挿入できます(Natural データフォーマット A または U の変数でのみ可能)。
フィールド全体を埋める場合FULL LENGTH
<character-string>
オプションを使用して、フィールド全体を特定の文字で埋めます。
以下の例では、フィールド全体をアスタリスク(*)で埋めています。
DEFINE DATA LOCAL 1 #FIELD (A25) INIT FULL LENGTH <'*'> END-DEFINE ...
フィールドの最初の n 文字を埋める場合LENGTH
n
<character-string>
オプションを使用して、フィールドの先頭 n
文字を特定の文字で埋めます。
以下の例では、フィールドの先頭 4 文字を感嘆符(!)で埋めています。
DEFINE DATA LOCAL 1 #FIELD (A25) INIT LENGTH 4 <'!'> END-DEFINE ...
RESET
ステートメントは、フィールドの値をリセットするために使用します。以下の 2 つのオプションを使用できます。
注意:
DEFINE DATA
ステートメントで CONSTANT
節を指定して宣言したフィールドは、内容を変更できないので、RESET
ステートメントで参照できません。
DEFINE DATA
LOCAL
ステートメントが含まれていなければ、RESET
ステートメントを使用して変数を定義することもできます。
RESET
(INITIAL
なし)は、指定された各フィールドの内容をフォーマットに依存したデフォルトの初期値に設定します。
例:
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 ...
RESET
INITIAL
は、指定された各フィールドを DEFINE
DATA
ステートメントのフィールド定義に従った初期値に設定します。
DEFINE DATA
ステートメントで INIT
節を指定せずに宣言したフィールドに対して、RESET INITIAL
は RESET
(INITIAL
なし)と同じ効果があります。
例:
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 ...