バージョン 6.3.3
 —  パラメータリファレンス  —

HE - ヘルプルーチン

このセッションパラメータでは、フィールドにヘルプルーチンまたはヘルプマップを割り当てます。

可能な設定   下記の「HE パラメータの構文」を参照してください。
デフォルト設定 なし  
セッション内の指定 適用可能なステートメント: INPUT
適用可能なコマンド: なし

ヘルプルーチンは Natural プログラムエディタで作成し、ヘルプマップは Natural マップエディタで作成できます。

その後、ヘルプルーチンまたはヘルプマップは、次のいずれかの方法を使用して、INPUT ステートメントまたはマップの処理中に呼び出すことができます。

以下では次のトピックについて説明します。


HE パラメータの構文

このパラメータの構文は次のとおりです。

HE=オペランド1

,

オペランド2

...20
=
nX

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand1 C S         A                         不可 不可
operand2 C S A       A U N P I F B D T L C G O 不可 不可

構文の説明:

operand1

operand1 は、呼び出すヘルプルーチンまたはヘルプマップの名前です。 名前には、1~8 文字の英数字定数またはユーザー定義変数を使用できます。 変数を使用する場合、事前にこれを定義しておく必要があります。 名前にはアンパサンド(&)を含めることができます。この文字は実行時に Natural システム変数 *LANGUAGE の現在の値で置き換えられます。 この機能により、複数言語のヘルプルーチンまたはヘルプマップを使用できるようになります。

operand2

ヘルプルーチンまたはヘルプマップに渡される 1~20 のパラメータ(operand2)を指定できます。 これらのパラメータは、定数として指定することも、パラメータ値を含むユーザー定義変数として指定することもできます。

=

等号(=)は、オブジェクト名またはフィールド名をヘルプルーチンまたはヘルプマップに渡すために使用します。

  • ステートメントレベルで HE= 指定に等号を入力した場合、実行対象のオブジェクト(システム変数 *PROGRAM に含まれる)の名前がヘルプルーチンまたはヘルプマップに渡されます。 例 3 では、渡されるオブジェクト名は PROGRAM1 です。

  • フィールドレベルで HE= 指定に等号を入力した場合、フィールドの名前がヘルプルーチンまたはヘルプマップに渡されます。 例 3 では、渡されるフィールド名は #PARM1 です。

等号をパラメータとして使用する場合、ヘルプルーチンまたはヘルプマップ内の対応するパラメータをフォーマット/長さ A65 で指定する必要があります。

nX 表記 nX は、省略する(つまり、値が渡されない)パラメータを指定するために使用できます。 呼び出されたヘルプルーチンの DEFINE DATA PARAMETER ステートメント内の対応する受け取り側パラメータは、OPTIONAL として定義する必要があります。

注意:

  1. オペランドは、INPUT 区切り文字(セッションパラメータ ID で指定)またはコンマで区切る必要があります。 ただし、セッションパラメータ DC でコンマを小数点文字として定義している場合は、この目的でコンマを使用することはできません。
  2. パラメータ指定がある場合、ヘルプルーチンは DEFINE DATA PARAMETER ステートメントで始める必要があります。このステートメントでは、パラメータと同じフォーマットと長さのフィールドを定義します。
  3. ヘルプルーチンが指定されたフィールドの値をヘルプルーチン内で参照できます。 その場合、元のフィールドと同じフォーマットと長さのフィールドを DEFINE DATA PARAMETER ステートメントで指定します。 DEFINE DATA PARAMETER ステートメント内で定義されたフィールドのブロックで、このフィールドは必ずパラメータ(存在する場合)の後に定義する必要があります。
  4. ヘルプルーチンが指定されたフィールドが配列要素である場合、そのインデックスをヘルプルーチンで参照できます。 その場合、DEFINE DATA PARAMETER ステートメントの最後にインデックスパラメータをフォーマット/長さ I2 で指定します。 配列の次元に応じて、最大 3 つのインデックスパラメータを指定できます。

Top of page

ヘルプルーチンの実行

フィールドに疑問符(?)を入力するか、ヘルプキー(SET KEY ステートメントで定義)を押すか、または REINPUT USING HELP ステートメントを使用することでヘルプルーチンまたはヘルプマップを要求した場合、フィールドに入力した他のすべてのデータは、ヘルプ要求がすべて処理されるまでプログラム変数には割り当てられません。

注意:
1 つの INPUT ステートメントでは 1 つのヘルプ要求のみが可能です。つまり、ヘルプが複数のフィールドで要求された場合(例えば、複数のフィールドに疑問符を入力)、最初のヘルプ要求のみが実行されます。

Top of page

例 1:

/* MAIN PROGRAM 
DEFINE DATA
1 #A(A20/1:3) 
END-DEFINE 
... 
SET KEY PF1=HELP 
... 
INPUT #A (2) (HE='HELPA',=) 
... 
END

例 2:

/* HELP-ROUTINE 'HELPA' 
DEFINE DATA PARAMETER 
1 #VARNAME  (A65) 
1 #PARM1    (A20) 
1 #VARINDEX (I2) 
END-DEFINE 
   ...

例 3:

* Program 'PROGRAM1' 
*
DEFINE DATA LOCAL                       
1 #PARM1 (A65) INIT <'valueparm1'>      
END-DEFINE                              
SET KEY PF1 = HELP                      
FORMAT KD=ON                            
*                                       
INPUT (AD=M HE='HELP1',=)               
  'Enter ? for name of executed object:'
  / #PARM1                              
*                                       
INPUT (AD=M)                            
  'Enter ? for field name:'             
  / #PARM1 (HE='HELP1',=)
*               
END                                     

サンプルヘルプルーチン HELP1 内のパラメータデータエリア:

* Helproutine 'HELP1' 
*
DEFINE DATA PARAMETER 
1 #FLD1 (A65) 
END-DEFINE 
   ...

Top of page