DEFINE DATA PARAMETER
の一般的な構文:
PARAMETER |
USING parameter-data-area |
|||||
parameter-data-definition |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
DEFINE DATA PARAMETER
ステートメントでは、Natural サブプログラム、外部サブルーチン、またはヘルプルーチンで、受信パラメータとして使用できるデータ要素を定義します。 これらのパラメータは、ステートメント自体の中で定義できます(下記の「パラメータデータ定義」を参照)。または、データエリアを参照するステートメントを使用して、プログラムの外にあるパラメータデータエリア(PDA)でパラメータを定義することもできます。
パラメータのデータ要素には、初期値または定数値を割り当てることはできず、またこれらのデータ要素では、編集マスク(EM)、ヘッダー(HD)、または出力モード(PM)を保持することはできません(「フィールド/変数の EM、HD、PM パラメータ」も参照)。
パラメータデータエリアとそれを参照するオブジェクトは、同じライブラリ(または STEPLIB)に含まれている必要があります。
USING parameter-data-area | サブプログラム、外部サブルーチン、またはダイアログでパラメータとして使用されるデータ要素を含む parameter-data-area の名前。 |
---|---|
parameter-data-definition | パラメータデータエリアを定義する代わりに、プログラムまたはサブルーチン内でパラメータデータを直接定義することもできます。下記の「パラメータデータ定義」を参照してください。 |
END-DEFINE | Natural 予約語 END-DEFINE を使用して、DEFINE DATA ステートメントを終了させる必要があります。
|
ダイレクトパラメータデータ定義には、次の構文が適用されます。
level | group-name [(array-definition)] | ||||||||||||||
redefinition | |||||||||||||||
(format-length[/array-definition]) | |||||||||||||||
variable-name | [BY VALUE [RESULT ]] [OPTIONAL ]
|
||||||||||||||
[(array-definition)] | DYNAMIC |
||||||||||||||
parameter-handle-definition [BY VALUE [RESULT ]] [OPTIONAL ]
|
構文要素の説明:
level |
レベル番号は 01~99 の範囲内の 1 桁または 2 桁の数字(先頭の 0 は任意)を使用し、フィールドグルーピングと合わせて使用します。 02 またはそれ以上のレベル番号が割り当てられたフィールドは、それより小さいレベル番号が割り当てられた直前のグループの一部であるとみなされます。 グループを定義すると、グループ名を使用して一連のフィールド(または 1 つのフィールドのみ)を参照できます。 特定のステートメント( グループには、他のグループを含めることができます。 グループにレベル番号をつけるときは、レベル番号を飛ばしてはなりません。 |
|
---|---|---|
group-name | グループの名前。 名前は、Natural 変数名の定義ルールに準拠していなければなりません。 次のセクションも参照してください。
|
|
array-definition | array-definition の場合、配列定義の次元の下限と上限を定義します。 「配列の次元の定義」および「パラメータデータエリア内の可変配列」を参照してください。 | |
redefinition |
redefinition を使用して、グループまたは単一のフィールド/変数(スカラまたは配列)を再定義できます。 「再定義」を参照してください。 注意: |
|
variable-name | 変数に割り当てられる名前。 Natural 変数名のルールが適用されます。 ユーザー定義変数の命名規則については、『Natural の使用』ドキュメントの「ユーザー定義変数の命名規則」を参照してください。 | |
format-length | フィールドのフォーマットおよび長さ。 ユーザー定義変数のフォーマットおよび長さの定義については、『プログラミングガイド』の「ユーザー定義変数のフォーマットおよび長さ」を参照してください。 | |
A、U、または B | データタイプ:ダイナミック変数用の英数字(A)、Unicode(U)、またはバイナリ(B)。 | |
DYNAMIC | パラメータは DYNAMIC として定義できます。 ダイナミック変数の処理の詳細については、「ダイナミック変数およびフィールドについて」を参照してください。
|
|
コールモード:
参照による呼び出し、値による呼び出し、値による呼び出しと結果のいずれを使用するかに応じて、適切な転送メカニズムが適用されます。 詳細については、 |
||
(BY VALUE を省略) |
参照による呼び出し:
参照による呼び出しは、 |
|
BY VALUE |
値による呼び出し:
|
|
BY VALUE の例: | ||
* Program DEFINE DATA LOCAL 1 #FIELDA (P5) ... END-DEFINE ... CALLNAT 'SUBR01' #FIELDA ... |
* Subroutine SUBR01 DEFINE DATA PARAMETER 1 #FIELDB (P9) BY VALUE END-DEFINE ... |
|
BY VALUE RESULT |
値による呼び出しと結果:
|
|
OPTIONAL |
呼び出し側のオブジェクトでは、スキップされるパラメータが、表記
|
|
parameter-handle-definition | 下記の「パラメータハンドルの定義」を参照してください。 |
parameter-handle-definition の構文:
handle-name [(array-definition)] HANDLE OF OBJECT |
構文要素の説明:
handle-name | ハンドルに割り当てる名前です。ユーザー定義変数の命名規則が適用されます。『Natural の使用』ドキュメントの「ユーザー定義変数の命名規則」を参照してください。 |
---|---|
HANDLE OF OBJECT | 『プログラミングガイド』の「NaturalX」セクションで説明されているように、NaturalX と一緒に使用します。 |
array-definition | array-definition の場合、配列定義の次元の下限と上限を定義します。 「配列の次元の定義」を参照してください。 |