市場における最強の専門家集団として、常にお客様システムのあるべき姿を研究し、技術的な研鑽を重ねています。特別な思い入れと市場への強い危機感を共有しています。「これから」に必ず役立つ技術を習得する場で紹介されている内容の一部を連載形式でご紹介します。当連載ではこれまでカーソル制御に関する画面キーワードをご紹介しましたが、カーソル制御以外にも沢山の有効利用可能なキーワードがあります。その中から簡単に使えて、画面イメージの刷新やオペレーションの向上につながるものをピックアップしてご紹介します。スクロールバーは超簡単サブファイル画面において、右端にスクロールバーを表示する事ができます。これは*DS3、*DS4のどちらのサイズでも表示する事ができます。ACS前提ではなく、i-Accessのエミュレータでも使う事ができますが、サードベンダー製のエミュレータでは対応できないものあります。スクロールバーの指定はとても簡単で、SFLENDキーワードのパラメータを変更するだけです。パラメータの指定方法は他にもありますので、詳細はマニュアルをご覧ください。指定は簡単ですが注意点があります。スクロールバーはサブファイル・レコードの右端4バイトを使用するので、サブファイル・レコードの右端4バイトを空ける必要があります。サブファイルが複数行になる場合でも、全ての行で空けておく必要があります。スクロールバーの表示位置とデータが重なるとコンパイルエラーとなります。スクロールバーを使うメリットとしては、マウスを利用してスクロールバーを操作する事で瞬時にページを移動させる事ができる点と、スクロールバー上下の三角マークをクリックする事で、サブファイルを1行ずつスクロールする事もできます。これはPageUpキーやPageDownでは出来ない動きです。この改修はプログラムに影響与えないという点で改修の工数やリスクが少なくて済みます。ファンクションキーをマウス対応に(PSHBTNFLD)ユーザー・アプリケーション画面の多くで、最下行にファンクション説明を表示している事と思います。ACSのホットスポット機能で、このままでもマウス対応できる事は既にご紹介済みですが、もう少しマウスボタンらしい見栄えにする事もできます。これはPHSBTNFLD(プッシュボタン)というキーワードを使用しています。ホットスポットの場合は、「F3」や「F12」の部分にカーソルを合わせてクリックしますが、この場合は、罫線内の範囲であれば反応します。PHSBTNFLDは複数のボタンをひとつのフィールドとして定義できます。この例では、「F3:終了」と「F12:前画面」というボタンをFUNC001というフィールドで定義し、どちらかのボタンが押された時に、プログラムに制御を戻します。この時、FUNC001にはPSHBTNCHCの一番目の値がセットされプログラム内でこれを判別して制御する事ができます。この方法だとプログラム側もFUNC001を判別する必要がありますが、このケースの場合は、PSHBTNCHCにファンクションキーを割り当ているので、プログラムではFUNC001を判別しなくても、従来のファンクションキーの制御をそのまま利用できます。従って、プログラムの修正は不要で、リコンパイルするだけで対応可能となります。従来通りのファンクションキーも有効なので、F3キーを押した場合と「F3:終了」をクリックした時の動きは同じとなります。PHSBTNFLDはファンクションキーの割り当てをしなくても利用できるので、メニュー番号の選択などにも利用する事ができます。興味のある方はマニュアルをご覧になって試してみてください。プッシュボタン(PSHBTNFLD)とマウスボタン(MOUBTN)プッシュボタンとマウスボタンは同じような機能と思われがちですが、大きく異なる点があります。それは、プッシュボタンはそのボタン上でのみで有効となりますが、マウスボタンは指定したレコード全域でマウス操作を監視し、指定された事象が発生した時に有効となる点です。マウスボタンの事象には下記のものがあります。シフトされた右ボタンをダブルクリックするマウス操作可能なキーワードはプッシュボタン以外にもたくさんあり、指定方法を混同したりすると思わぬ動きをする事があるので注意して使用しましょう。ここまでプログラム修正を行わないモダナイゼーション・テクニックをご紹介しましたが、次の段階として、少しのプログラム修正で実装できる画面モダナイゼーションをご紹介します。キーワードこのキーワードは、いくつかの選択肢からひとつを選択する際に、従来であれば番号入力を行っていたものを、ラジオボタンで選択可能にするキーワードです。この画面では、2か所にその選択項目があります。キーワードに置き換えると、次のようになります。赤で囲われた2か所の選択は、マウスによりどちらかを選択できます。各選択項目にラジオボタンを付けたり、色を変えるなど設定を変える事もできます。画面ファイルの変更箇所を見てみましょう。SNGCHCFLDはCHOICEキーワードとセットで使います。CHOICEキーワードは、選択項目の要素を指定する為に使い、選択されたCHOICEキーワードの第一パラメータの値をSNGCHCFLDのフィールドにセットします。このフィールドのクリックは初期値ではプログラムに制御を戻しませんが、パラメータの指定でクリック直後にプログラムに制御を戻す事もできます。サンプル画面では他にも入力フィールドがあるので、実行キー等でプログラムに制御が戻すという仕様になっています。注意点として、SNGCHCFLDで定義できるフィールド(プログラムに戻されるフィールド)は2Y0で使用を”B”として定義しなければなりません。このサンプル・プログラムでは、元のD1ONXフィールドが1Aで定義されている為、プログラム内では選択番号D1ONX2の数値を文字列のD1ONXにセットする必要があります。これがプログラムの修正箇所となります。プログラムのロジック部分には影響を与える事はないので、リスクは低いのではないでしょうか。キーワードこのキーワードは、複数の項目をクリックで選択する事ができます。各項目にチェックボックスが配置され、クリックで選択/解除を繰り返します。画面ファイルの変更箇所は次の通りです。MLTCHCFLDはCHOICEキーワードとCHCCTLキーワードと組み合わせて使います。MLTCHCFLDの定義フィールド「SELECT」には、選択されたフィールドの数が入り、各選択項目の「CTLnn」フィールドには、選択された場合は1が、選択されていない場合は0が入ります。サンプル画面の場合、SELECT=5CTL01=1CTL02=1CTL03=0CTL04=0CTL05=1CTL06=1CTL07=0CTL08=0CTL09=1となるので、プログラム側では、これに基づいて処理を行う事ができます。MLTCHCFLDやCHCCTLのフィールド属性は決まっているので、元のプログラムを属性が異なる場合は、プログラム側で変更する必要がありますが、基本的な処理は変わらないので修正も少なくて済みます。SNGCHCFLDやMLTCHCFLDは今回ご紹介したシンプルな使い方だけでなく、選択項目の色指定や、非選択項目の設定など多くの機能があります。マニュアルを参照して有効に使って頂きたいと思います。スクロールバー、SNGCHCFLD、MLTCHCFLDはACSが前提ではなく、以前から利用できる画面キーワードです。表示に若干の違いはありますが、以前のエミュレータでも機能します。Magazineに詳細版が掲載されます。そちらもご購読くださいませ。