GET_FORM_MESSAGEファンクション
指定した行番号の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を返します。その他のメッセージを読み取るためには、メッセージを表示する必要があります。これは、メッセージを表示している行にカーソルを設定し、Page Downキーを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);
},