バージョン 6.3.3
 —  ステートメント  —

INPUT 構文 2 - 定義済みマップレイアウトの使用

この形式の INPUT ステートメントは、Natural マップエディタを使用して作成されたマップレイアウトを使用して入力処理を実行するために使用されます。

マップレイアウトは次の 2 つの方法で使用できます。

INPUT [WINDOW='window-name'] [WITH-TEXT-option]
  [MARK-option]
  [ALARM-option]
  [USING] MAP map-name [NO ERASE]

operand1

NO PARAMETER

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

構文図で使用されている記号については、「構文記号」を参照してください。


パラメータリストのない INPUT USING MAP

パラメータリストのない INPUT USING MAP を使用する場合は、次の要件を満たす必要があります。

Top of page

プログラムで定義されている INPUT フィールド

プログラムで処理するフィールドの名前(operand1)を指定することで、マップ内のフィールドの名前とは異なる名前をプログラムのフィールドの名前にすることができます。

プログラムのフィールドの順序はマップの順序と一致している必要があります。 マップエディタは、マップで指定されたフィールドを、フィールド名の英字順でソートすることに注意してください。 詳細については、Natural の『エディタ』ドキュメントのマップエディタの説明を参照してください。

プログラムエディタの行コマンド .I(mapname) を使用して、指定されたマップで定義されているフィールドから派生したパラメータリストとともに完全な INPUT USING MAP ステートメントを取得できます。

マップのレイアウトが変更された場合でも、マップを使用してプログラムを再カタログする必要はありません。 ただし、フィールド名、フィールド形式/長さ、またはマップ内の配列構造が変更された場合、またはマップでフィールドが追加または削除された場合は、プログラムを再カタログする必要があります。

プログラムで指定されたフィールドの形式と長さが、マップで指定されたフィールドと一致することを確認するために、実行時にチェックが行われます。 両方のレイアウトが一致しない場合は、エラーメッセージが生成されます。

Top of page

INPUT 構文 2 - 説明

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

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

構文要素の説明:

INPUT WINDOW='window-name' このオプションについては、INPUT ステートメントの「構文 1」で説明しています。
WITH TEXT/MARK/ALARM-options これらのオプションについては、INPUT ステートメントの「構文 1」で説明しています。「WITH TEXT オプション」、「MARK オプション」、「ALARM オプション」を参照してください。
USING MAP map-name

USING MAP は、マップエディタを使用して以前に Natural システムに格納されたマップ定義を呼び出します。

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

INPUT ステートメントを実行すると、NO ERASE オプションが指定されていない限り、対応するマップで画面の現在の内容が置き換えられます。このオプションを指定した場合は、マップが画面の現在の内容をオーバーレイします。

NO ERASE このオプションについては、INPUT ステートメントの「構文 1」で説明しています。
operand1
フィールド指定:

データベースフィールドまたはユーザー定義変数、あるいはその両方のリスト。 フィールドは、参照先のマップ内のフィールドと、数、順序、形式、長さ、およびオカレンス数(配列の場合)が一致している必要があります。そうでないとエラーが発生します。

データベースフィールドの内容が INPUT 処理の結果として変更される場合は、データエリアにある値のみが変更されます。 適切なデータベースステートメント UPDATE/STORE を使用して、データベースの内容を変更する必要があります。

Top of page

非スクリーンモードでの INPUT ステートメントの使用

セッションパラメータ IM を使用して、入力モードを変更できます。

フォームモード

フォームモード(プロファイル/セッションパラメータ IM=F)では、Natural は位置パラメータに従ってフィールドごとに端末にマップレイアウトの出力テキストをすべて表示します。 これにより、ユーザーはフィールドごとにデータを入力できます。 すべてのデータが入力されると、ハードコピーの出力が、画面に表示されるのと同じ形式で生成されます。

フォームモードでは、%R と入力すると、エラーの発生時にオペレータがフォーム全体を再入力できます。 入力は、INPUT ステートメントの最初の実行時に処理されます。

キーワード/デリミタモード

キーワード/デリミタモード(プロファイル/セッションパラメータ IM=D)では、キーワードまたは位置入力値を使用してデータを入力できます。

キーワード入力を使用すると、端末オペレータは、プロンプトテキストを使用して個々のフィールドのデータを入力できます。フォームモードでは、プロンプトテキストは、フィールドを識別するキーワードとして値の前に表示されます。 キーワードの後には、INPUT 割り当て文字(IA パラメータ)、その直後にデータが続く必要があります。 割り当て文字に続くスペースは、区切り文字(ID パラメータ)までデータとして取得されます。 区切り文字は、最後のデータ要素の後には不要です。 異なるフィールドのキーワードデータは、区切り文字で分割して任意の順序で入力できます。 INPUT ステートメントで定義されていないキーワードをオペレータが入力した場合は、エラーメッセージが返されます。 入力フィールドにデータを入力する必要はありません。 データが入力されていないフィールドは、英数字フィールドでは空白に、数値および 16 進数フィールドではゼロに設定されます。

位置値入力を使用する場合、端末オペレータは、現在定義されている INPUT 区切り文字(ID パラメータ)で区切られたすべての入力フィールドのデータのみ入力します。 入力するフィールドの順序は、INPUT ステートメントのフィールドの順序に対応します。

ユーザーは、デリミタ文字で区切った位置入力に値の数を入力し、値の前にキーワードを指定して選択したフィールドのキーワードモードに切り替えることにより、位置入力からキーワード入力に切り替えることができます。

キーワードがフィールドの位置指定に使用された場合、キーワードの値に続くキーワード以外の入力は、INPUT ステートメントで以前に選択されたフィールドに続くフィールドに割り当てられる位置入力として処理されます。

注意:
キーワードおよび対応する入力フィールドは、同じ論理行にある必要があります。 合計の長さが行サイズを超える場合は、行サイズ(LS パラメータ)を適宜調整して、キーワードとフィールドが 1 行に収まるようにします。

キーワード/デリミタモードで入力されたデータは、スクリーンモードの場合と同じように検証されます。 フィールドに対して定義されている文字数を超えて入力しようとした場合は、エラーメッセージが返されます。

バッファ(3270タイプ)端末またはワークステーションで、INPUT ステートメントをキーワード/デリミタモードで処理する場合は、1 つの INPUT ステートメントに割り当てるすべてのデータを 1 つの画面に入力する必要があります。 Enter は、INPUT ステートメントに対するすべてのデータが入力された場合にのみ使用します。

Top of page

Natural スタックデータの処理

Natural スタックに FETCHRUN、または STACK ステートメントを介して配置されたデータ要素は、実行時に検出された次の INPUT ステートメントで処理されます。

INPUT ステートメントは、前述したようにキーワード/デリミタモードのデータを処理します。

すべての入力フィールドを充填するためのデータ要素が使用可能でない場合は、フィールド形式に応じて空白/ゼロが充填されます。 存在する入力フィールドよりも多くのデータ要素が指定されている場合、残りのデータは無視されます。

フィールドにスタックからのデータが入力されている場合、フィールド属性はデータに適用されません。

Natural システム変数 *DATA を参照して、Natural スタックで現在使用可能なデータ要素の数を判断できます。

Top of page