指定した行番号の 5250 メッセージ・テキストを取得し、オプションでフレームワーク・メッセージとして転送します。
構文
var bMoreRecords = GET_FORM_MESSAGE([iRow,] [sMoreIndicator,][bRoute])
パラメータ
iRow | 任意。 メッセージ行番号を指定する整数。デフォルトは最後の行です。 |
sMoreIndicator | 任意。 さらにメッセージがあるかどうかを示すためにアプリケーションで使用される文字列。デフォルトは "+" です。 |
bRoute | 任意。 メッセージをフレームワークのメッセージ ・エリアにルーティングするかどうかを指定するブール値。TRUE の場合、画面のメッセージのテキストは削除されます。デフォルトは TRUE です。 |
戻り値
ブール値。次のいずれかの値を返します。
TRUE | メッセージ行に表示されたエレメントでさらにインジケータが見つかりました。 |
FALSE | メッセージ行に表示されたエレメントでさらにインジケータは見つかりませんでした。 |
備考
さらに、RAMP は取得した最後のメッセージを格納する vLastMessage というプロパティを現在のフォーム・オブジェクトに設定します。このプロパティをスクリプトで使用するには、以下のようにします。
var sLastMsg = this.vLastMessage;
このポインターの使用は現在のスクリプト内のみで有効です。
例
GET_FORM_MESSAGE(22); /* Extract messages and hide the message line */
if (this.vLastMessage != "") ALERT_MESSAGE("ERROR:" + this.vLastMessage);
GET_FORM_MESSAGE(22, "More");
以下のサンプルは、到着スクリプトで GET_FORM_MESSAGES を使用して、すべての 5250 メッセージをフレームワークに転送しています。
この GET_FORM_MESSAGE は、5250 画面で表示されているテキストを指定した行で取得します。
5250 画面でさらにメッセージがあることが示された場合は、結果として TRUE を返します。その他のメッセージを読み取るためには、メッセージを表示する必要があります。これは、メッセージを表示している行にカーソルを設定し、PageDown キーを 5250 画面に送信することで実現します。5250 画面が到着したら、新しいメッセージを取得します。これはリソースを多く使う演習であることに注意してください。
/* ====================================================== */
/* ================== vHandle_ARRIVE ================== */
/* ====================================================== */
/* Handle arrival at this Destination */
/* oPayload: The payload supplied by the event initiator */
/* oPreviousForm: Reference to previous object Form*/
vHandle_ARRIVE: function(oPayload, oPreviousForm)
{
var bReturn = true;
SHOW_CURRENT_FORM(true);
HIDE_5250_BUTTONS();
SETBUSY(false); /* Turn off the busy state to allow user interaction */
/* Get the 5250 message text from the message area */
var flagMoreRecords = GET_FORM_MESSAGE(22);
/* If there are more messages */
if (flagMoreRecords == true)
{
/* Move the cursor to the line displaying the Messages */
SETCURSORTOROW(22);
/* Bring up the next message */
SENDKEY(KeyPageDown);
}
/* <ARRIVE /> - Do not remove or alter this line */
return(bReturn);
},