7.88.1 MESSAGE のパラメータ

BORDER

LOCATE

MIN_TIME

MSGDTA

MSGF

MSGID

MSGTXT

REPLY

TYPE

MSGTXT

最大80文字のメッセージ・テキストを指定できます。このテキストは、ユーザーに表示される現在または次の画面形式の22/24行目に表示されます。メッセージ・テキストを指定するときは、引用符で囲んでください。MSGTXTパラメータまたはMSGID/MSGFパラメータのいずれかを使用してください。両方は使用できません。

MSGID

ユーザーに表示される現在または次の画面の22/24行目に表示するメッセージとして標準のメッセージ識別子を指定できます。メッセージ識別子は7文字である必要があります。このパラメータは、MSGFパラメータと組み合わせて使用してください。

移植性に関する考慮事項

アプリケーションで特定のメッセージ識別子を受け取ることに依存する場合、以下の点に注意してください。
IBM iでは、RDMLXコンポーネントまたはファンクションとRDMLファンクション間でメッセージを経路設定する際に、元のメッセージ識別子が維持されませません。このようなメッセージは、メッセージ識別子DCM9899のテキスト・メッセージとして再発行されます。

 

MSGF

MSGIDパラメータで指定されたメッセージが記述されているメッセージ・ファイルを指定します。このパラメータは修飾名です。メッセージ・ファイル名を指定する必要があります。必要に応じて、メッセージ・ファイルが存在するライブラリを指定することもできます。ライブラリ名を指定しない場合は、ライブラリ*LIBLが使用されます。

MSGDTA

このパラメータは、必ずMSGIDおよびMSGFパラメータと組み合わせて使用してください。MSGIDパラメータに指定されたメッセージ内の"&n"代替変数を置き換えるために使用される1~20個の値を指定します。

このパラメータの値として、フィールド名、拡張可能なグループ式、英数字リテラル、または数値リテラルを指定できます。これらの値は、メッセージに定義されている代替変数のタイプ、長さ、および指定順序と一致している必要があります。

このパラメータで指定するフィールドのタイプが符号付き(ゾーンとも言う) 10進数の場合、メッセージ内でそれに対応する"&n"変数のタイプは*CHAR (文字)である必要があります。これは、負の値を処理するときに問題になる場合があります。この場合は、代わりにパック10進数形式を使用してください。

メッセージ内の"&n"変数のタイプが*DEC (パック10進数)の場合、このメッセージ内で指定されるフィールドのタイプもパック10進数である必要があります。

このパラメータで英数字リテラルを使用するときは、末尾ブランクが重要になる場合があることを覚えておいてください。例えば、メッセージが以下のように定義されているとします。

"&1 are out of stock ... reorder &2"
 

ここで、&1が(*CHAR 10)として、&2が(*DEC 7 0)として定義されている場合、以下のように指定すると、メッセージが正しく発行されません。

MSGDTA('BOLTS' #ORDQTY)
 

または、以下のように指定した場合も同様です。

MSGDTA('BOLTS     ' #ORDQTY)
 

LANSAに末尾ブランクを認識させるには、このパラメータを以下のように指定する必要があります。

MSGDTA('''BOLTS     ''' #ORDQTY)
 

拡張可能な式を使用する場合、拡張フィールド・リストが、パラメータで許容される代替変数の最大数を超えないようにしてください。

TYPE

発行するメッセージのタイプを指定します。

デフォルト値*INFOを指定した場合、ユーザーに表示される次の画面形式の22/24行目にメッセージが表示されます。このメッセージは、ユーザーが再度Enterキーを押すまで22/24行目に表示されたままになります。

*STATUSを指定した場合、メッセージは、現在の画面(その内容は問わない)の22/24行目に表示されます。現在の画面がLANSAシステムの一部とは限りません。状況メッセージは、次の画面形式がユーザーに表示されると画面から消えます。通常、「状況」メッセージは、何らかの拡張アクションが進行中のため待機する必要があることをユーザーに通知するために発行されます。詳細については、使用例のセクションを参照してください。

*WINDOWを指定した場合、メッセージは、メッセージ「ウィンドウ」としてユーザーに表示されます。このウィンドウは、現在の画面形式(その内容は問わない)の前面に表示され、画面の上部、中央、または下部に配置できます(LOCATEパラメータを参照してください)。ウィンドウが表示された場合、ユーザーは処理を再開するためにEnterキーを押す必要があります。処理が再開されると、画面は、メッセージ・ウィンドウの表示前の状態に戻ります。また、メッセージに対する応答をRDMLプログラムに戻すこともできます(REPLYパラメータを参照してください)。

*WINDOWBUZを指定した場合、メッセージは、メッセージ「ウィンドウ」としてユーザーに表示されます。このウィンドウの表示時に、ワークステーションでアラームが鳴ります(詳細については、TYPE(*WINDOW)を参照してください)。

移植性に関する考慮事項

Visual LANSAで使用すると、*WINDOWBUZは*WINDOWとして解釈され、ビルド警告が生成されます。

MIN_TIME

現在の画面の22/24行目に*STATUSメッセージを表示する最短時間を指定します。このパラメータは、ユーザーが内容を読めるよう状況メッセージの表示時間を延長するために使用します。このパラメータに値を指定しない場合、デフォルト値の0秒が使用されます(メッセージは画面に瞬間的に表示されます)。それ以外の場合は、必要な最短表示時間を秒単位で指定してください。このパラメータで指定する秒数の間、ユーザーのジョブが待機する(また、有益な作業を実行しない)ことに注意してください。

このパラメータは、他のファンクションが完了するまで待機する間、ファンクションを特定時間「中断」するために使用できます。

移植性に関する考慮事項

現在のリリースのVisual LANSAではサポートされていませんが、将来的なリリースでサポートされる予定です。Visual LANSAで使用すると、ビルド警告が生成されます。

REPLY

任意で、メッセージに対するユーザーの応答を受け取るフィールドを指定します。このパラメータは、TYPE(*WINDOW)パラメータを使用しているメッセージに対してのみ有効です。

デフォルト値*NONEを指定した場合、ユーザーはメッセージに応答できません。この場合、メッセージ・ウィンドウには、ユーザーに対するメッセージ・テキストのみが表示されます。

フィールド名を指定する場合、そのフィールドは、LANSAデータ・ディクショナリまたはファンクション内で定義されていなければなりません。フィールドとして、英数字または数値フィールドを使用できます。フィールドが20文字を超える英数字フィールドの場合、ユーザーが指定できるのは最初の20文字のみです。フィールドが数値フィールドの場合は、整数でなければなりません(すなわち、小数点以下の桁があってはなりません)。フィールド名を指定した場合、メッセージ・ウィンドウには、メッセージ・テキストと、メッセージに対する必要な応答をユーザーが入力するための、文字列"Reply?"で示される入力フィールドが表示されます。

BORDER

TYPE(*WINDOW)のメッセージに対して、メッセージ・ウィンドウを境界線で囲むかどうかを指定します。デフォルト値は*YESです。*YES以外にこのパラメータに指定できる値は*NOのみです。この場合、境界線は要求されません。

LOCATE

TYPE(*WINDOW)のメッセージに対して、メッセージ・ウィンドウを画面上のどこに配置するかを指定します。

デフォルト値*BOTTOMを指定した場合、ウィンドウは画面の下部に配置されます。

*BOTTOM以外に指定できる値は*TOPおよび*MIDDLEです。この場合、ウィンドウはそれぞれ画面の上部または中央に配置されます。