RAMP-TSAD07 ステップ4. ファンクション・キー/ボタンの有効化と必要なスクリプトの追加
このステップでは、画面の[次へ]および[前へ]ボタンを有効にして、エンド・ユーザーがファンクション内で画面間を移動できるようにします。また、スクリプトにいくつかの変更も加えます。
1. 画面UFRTS03_D1、UFRTS03_D2、UFRTS03_D3のプロパティを確認し、以前計画したようにボタン/ファンクション・キーを有効にします。
UFRTS03_D1は以下のようになります。
UFRTS03_D2は以下のようになります。
UFRTS03_D3は以下のようになります。
2. 変更を保存し、フレームワークを再起動します。
次に、これらの各画面のvHandle_BUTTONCLICKスクリプトを確認し、ボタン・ナビゲーションが正しく処理されるように変更します。
3. まず、「RAMP-TSAD06 ステップ1. 複数の5250画面のシナリオ」の5250ナビゲーションの図を参照してください。
4. このナビゲーションの図から、何を実行する必要があるか非常に簡単にわかります。
画面 | ボタン/ファンクション・キー | 結果として表示される画面 | vHandle_BUTTONCLICKが実行する必要がある内容 |
UFRTS03_D1 | 次へ/Enter | UFRTS03_D2 | Enterキーの送信。 デフォルトのボタン・スクリプトがこれを処理します。 |
UFRTS03_D2 | 次へ/Enter | UFRTS03_D3 | Enterキーの送信。 デフォルトのボタン・スクリプトがこれを処理します。 |
UFRTS03_D2 (注を参照) | 前へ/F12 | UFRTS03_D1 | F12を送信してUFRTS03_R1 (Junction)を取得します。 Enterを送信してUFRTS03_D1に進みます。 デフォルトのボタン・スクリプトはこれを処理しません。 |
UFRTS03_D3 (注を参照) | 前へ/F12 | UFRTS03_D2 | F12を送信してUFRTS03_R1 (Junction)を取得します。 Enterを送信してUFRTS03_D1に進みます。 Enterを送信してUFRTS03_D2に進みます。 デフォルトのボタン・スクリプトはこれを処理しません。 |
UFRTS03_D2とUFRTS03_D3への前へ/F12操作の追加に注意してください。基盤の5250アプリケーションでは、このような直接の移動は存在しません(つまり、1つの操作でUFRTS03_D2からUFRTS03_D1に実際に移動することはできません)。
ただし、いくつかのシンプルなスクリプトを使用して、この機能が実際に存在する場合と同様に画面をユーザーに表示することができます。これは、既存の5250アプリケーションに価値を付加するもう1つのシンプルな例です。
5. vHandle_BUTTONCLICKファンクションを変更します。UFRTS03_D1スクリプトを変更する必要はありません。
UFRTS03_D2で、以下のようなボタン・クリック・スイッチ文を使用します。
switch (sButton)
{
case KeyEnter: /* Enter-Next means move forward to UFRTSD03_03 */
SENDKEY(KeyEnter);
break;
case KeyF12: /* F12-Previous means go back to UFRTSD03_01 */
Q_SENDKEY("",KeyEnter);
SENDKEY(KeyF12);
break;
default:
ALERT_MESSAGE("Invalid function key used");
break;
}
UFRTS03_D3で、以下のようなボタン・クリック・スイッチ文を使用します。
switch (sButton)
{
case KeyF12: /* F12-Previous means go back to UFRTSD03_02 */
Q_SENDKEY("",KeyEnter);
Q_SENDKEY("",KeyEnter);
SENDKEY(KeyF12);
break;
default:
ALERT_MESSAGE("Invalid function key used");
break;
}
注:
· これらのRAMPスクリプトは、F12の使用の実際の意味を再解釈するために変更されました。5250画面UFRTS03_D3が表示されているRAMPタブでは、以上の変更により、F12ファンクション・キーは、F12、Enter、5250サーバーへのEnterの送信を意味します。ユーザーがこの画面から前の画面に直接移動できるようになったため、この再解釈は基盤の5250アプリケーションに価値を付加します。多数の価値あるビジネス・プロセスの機能強化は、このように非常にシンプルな戦略によって支えられています。
· すべての無効なファンクション・キーによってアラート・メッセージが表示されるようになりました。これは、フェイル・セーフのみを目的としています。RAMPでは、何らかの方法でキーの使用を禁止する必要があります。
· Q_SENDKEY()ファンクションの使用。RAMP-TS SENDKEY()の操作は非同期です。このため、即座に送信できるのは最初のSENDKEY()要求だけです。以降の要求を待ち行列に入れて、結果の画面が非同期で到着したときに処理する必要があります。
7. スクリプトの変更を保存し、RAMP定義の部分的な保存を行います。
次のステップを完了するまで、変更をテストしないでください。そうでない場合、アプリケーションのナビゲーションがスタックすることがあり、アプリケーションのキャンセルが必要になります。