この例では、5250画面上で以下のファンクション・キーの記述を
RAMPボタンおよびファンクション・キーと一致させる方法について説明します。
この例では、JavaScript ファンクション SHARED.apply5250FunctionKeyPatterns を使用します。このファンクションは指定した画面の行で Fn=xxxxxx のパターンを検索し、これらのパターンを使用して、一致する RAMP-TS ボタンおよびファンクション・キーの条件を設定します。
一致にはパターンのテキスト部分は含まれないことに注意してください。通常 RAMP-TS では、ボタンのキャプションは RAMP ツールの 5250 画面とは別に定義されます。
このサンプルを実行するには、SHARED.apply5250FunctionKeyPatterns のファンクションをコピーして SHARED スクリプト・オブジェクト、UF_SY420_RTS.JS ファイルに貼り付けます。このファンクションのロジックは以下のようになっています。
- すべての RAMP-TS ファンクション・キーおよびボタンは、初期時に無効になっています。
- 5250 画面の指定行で Fn=XXXXX のパターンを検索します。関連するファンクション・キーおよびボタンは、標準の SETKEYENABLED ファンクションを呼び出すことで有効にされます。
- 特定のファンクション・キーを強制的に常に有効にしていた場合、これは SETKEYENABLED を使用して実行されています。
- 特定のファンクション・キーを強制的に常に無効にしていた場合、これは SETKEYENABLED を使用して実行されています。
ファンクションの呼び出し
以下の例のように、デスティネーション画面の到着スクリプトからファンクションを呼び出します。
vHandle_ARRIVE: function(oPayload, oPreviousForm) { var bReturn = true; SHARED.apply5250FunctionKeyPatterns(22,23); /* Must be before SHOW_CURRENT_FORM() */ SHOW_CURRENT_FORM(true); /* Show the form in the framework and show VLF buttons */ HIDE_5250_BUTTONS(); /* Hide any 5250 style buttons displayed */ GET_FORM_MESSAGE(22); /* Extract messages and hide the message line */ SETBUSY(false); /* Last thing done - turn off the busy state */
ここでは、到着画面の行 22 および 23 で Fn=xxxx テキスト・パターンを検索し、RAMP-TS ボタンとファンクション・キーをこれらのパターンと一致させます。これらは単にテキスト・パターンであり、プログラムでは 5250 画面でどのファンクション・キーが実際に有効になっているかとはまったく関係ありません。 テキスト・パターンは 5250 画面上に表示されユーザーが読むためのもので、コンピュータ・プログラムのためのものではありません。
パラメータ
このファンクションには以下のパラメータがあります。
開始行番号 | 必須 整数 Fn=xxxx パターンを検索する最初の行。 |
|---|---|
終了行番号 | 任意 整数 Fn=XXXXX パターンを検索する最後の行 デフォルト値は開始行番号と同じ値です。 |
常に有効にするキー/ボタン | 任意 ファンクション・キー識別子の配列 例: [KeyEnter,KeyF11] |
常に無効にするキー/ボタン | 任意 ファンクション・キー識別子の配列 例: [ KeyF12, KeyF3 ] |
例えば、
SHARED.apply5250FunctionKeyPatterns(22, 23, [KeyEnter,KeyF1], [KeyF12] );
では、画面の行 22 から 23 をチェックし、Enter および F1 キーを常に有効にし、F12 キーを常に無効にするように指定しています。
無条件に PageUp キーと PageDown キーを有効にする場合、これらのキーを有効にするための一致するテキスト・パターンはありません。次のように記述します。
SHARED.apply5250FunctionKeyPatterns(22, 23, [ KeyPageUp, KeyPageDown ] );
SHAREDファンクションでは、これを継続的に実行することもできます。
「ファンクションに関する質問」も参照してください。
