DEFINE FUNCTION function-name |
[return-data-definition] |
[function-data-definition] |
statement... |
END-FUNCTION |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント: DEFINE
PROTOTYPE
DEFINE FUNCTION
ステートメントは、タイプが関数の Natural オブジェクトとして格納される関数を定義するために使用します。ファンクションオブジェクトには 1 つのみ DEFINE FUNCTION
ステートメントを含めることができます。
DEFINE FUNCTION
ステートメントは、ファンクション名、パラメータ、ローカル変数およびアプリケーション独立変数、関数の結果、および操作ロジックを形成するステートメントを定義します。これらのステートメントは、関数の呼び出し時に実行されます。
詳細については、『プログラミングガイド』の次のセクションを参照してください。
Natural ファンクションオブジェクトタイプ
構文要素 | 説明 |
---|---|
function-name |
関数名:
1 つのライブラリに同じファンクション名を 2 回使用することはできません。 |
return-data-definition |
戻りデータ定義節:
この節の詳細については、下記の「戻りデータ定義」を参照してください。 |
function-data-definition |
ファンクションデータ定義節:
この節の詳細については、下記の「ファンクションデータ定義」を参照してください。 |
statement... |
実行するステートメント:
関数の呼び出し時に実行される操作セクションを定義します。ファンクションロジックを形成します。 |
END-FUNCTION |
DEFINE FUNCTION ステートメントの終了:
|
RETURNS [variable-name]
|
(format-length[/array-definition]) | [BY VALUE ]
|
|||||||
[(array-definition)] HANDLE OF |
|||||||||
( | A |
[/array-definition]) | DYNAMIC |
||||||
U |
|||||||||
B |
return-data-definition
節は、フォーマット/長さ、および関数によって返される結果値の配列構造(該当する場合)を定義します。
構文要素の説明:
構文要素 | 説明 |
---|---|
variable-name |
戻り値名:
オプションで、ファンクションコーディング内のリターンフィールドにアクセスするために使用する名前を指定できます。このような名前を指定しない場合は、ファンクション名が代わりに使用されます。 |
format-length |
フォーマット/長さの定義:
結果フィールドのフォーマットおよび長さ。 ユーザー定義変数のフォーマットおよび長さの定義については、『プログラミングガイド』の「ユーザー定義変数のフォーマットおよび長さ」を参照してください。 |
array-definition |
配列の次元の定義:
詳細については、 |
HANDLE OF dialog-element-type |
ダイアログエレメントタイプ:
ダイアログエレメントのタイプ。設定可能値は、 |
HANDLE OF OBJECT |
オブジェクトのハンドル:
NaturalX とともに使用します。 詳細については、『プログラミングガイド』の「NaturalX」を参照してください。 |
A 、U または B |
データタイプ:
ダイナミック結果用の英数字(A)、Unicode(U)、またはバイナリ(B)。 |
DYNAMIC |
ダイナミック変数:
関数の結果は ダイナミック変数の処理の詳細については、『プログラミングガイド』の「ダイナミック変数およびフィールドについて」を参照してください。 |
BY VALUE |
BY VALUE オプション:
"受信側"フィールドのフォーマット/長さは、
データ転送の互換性については、『プログラミングガイド』の「演算割り当てのルール」および「データ転送」に記載されている規則が適用されます。
|
DEFINE
DATA |
||||||||||
PARAMETER |
||||||||||
LOCAL |
USING |
|||||||||
local-data-definition | ||||||||||
[INDEPENDENT aiv-data-definition ]
|
||||||||||
END-DEFINE |
function-data-definition
節は、ファンクションコール時に提供されるパラメータと、ローカル変数やアプリケーション独立変数など、関数によって使用されるデータフィールドを定義します。グローバルデータエリア(GDA)はファンクション定義内では参照できません。
構文要素の説明:
構文要素 | 説明 |
---|---|
PARAMETER USING
parameter-data-area |
PDA 名:
ファンクションコールでパラメータとして使用されるデータ要素を含むパラメータデータエリア(PDA)の名前を指定します。
|
PARAMETER
parameter-data-definition |
パラメータデータ定義:
パラメータデータエリアを定義する代わりに、ファンクションコール内でパラメータデータを直接定義することもできます。
|
LOCAL USING
local-data-area |
LDA 名:
参照するローカルデータエリア(LDA)の名前を指定します。
|
LOCAL USING
parameter-data-area |
PDA 名:
パラメータデータエリア(PDA)の名前を指定します。 注意:
|
LOCAL
local-data-definition |
ローカルデータ定義:
ステートメント内で、つまり LDA または PDA を使用せずに、要素またはフィールドを定義する方法については、 |
INDEPENDENT
aiv-data-definition |
AIV データ定義:
は、1 つまたは複数のアプリケーション独立変数(AIV)の定義に使用できます。
|
END-DEFINE |
節の終了:
|
** Example 'DFUEX1': DEFINE FUNCTION ************************************************************************ DEFINE FUNCTION F#FIRST-CHAR RETURNS #RESULT (A1) DEFINE DATA PARAMETER 1 #PARM (A10) END-DEFINE /* #RESULT := #PARM /* First character as return value. END-FUNCTION * END
関数 F#FIRST-CHAR
は、ライブラリ SYSEXSYN
のサンプルプログラム DPTEX2
で使用されています。DEFINE PROTOTYPE
ステートメントの説明の「例」を参照してください。
** Example 'DFUEX2': DEFINE FUNCTION ************************************************************************ DEFINE FUNCTION F#FACTOR RETURNS (I2/1:3) DEFINE DATA PARAMETER 1 #VALUE (I2) END-DEFINE /* F#FACTOR(1) := #VALUE * 1 F#FACTOR(2) := #VALUE * 2 F#FACTOR(3) := #VALUE * 3 /* END-FUNCTION * END
関数 F#FACTOR
は、ライブラリ SYSEXSYN
のサンプルプログラム DPTEX1
で使用されています。DEFINE PROTOTYPE
ステートメントの説明の「例」を参照してください。