POPUP検索とはコード検索のためのPOPUPウィンドウを生成する機能のことです。
IBM iのユーザーも独自でRPG/COBOLなどで数多くのPOPUPウィンドウを作って
中にはPOPUPの上にさらにPOPUPを重ねたりしているところも
ありますがあまり複雑にするのはエンド・ユーザーにとって
操作を余計にわかりにくくしますので注意が必要です。
しかしこれからご紹介するAutoWebによるPOPUPウィンドウは
・POPUPウィンドウを開発する必要がない
・簡単なDDS記述だけで済みます。
・優れたパフォーマンスを発揮します。
・QUERYのようなあいまい検索や一部検索が可能です。
・大量データ・ベースに対しても快適なパフォーマンスが得られます。
・QUERY/400やRPG/COBOLもPOPUPに組み込むことができます。
などの多くの利点に溢れています。
次はPOPUPウィンドウが表示されている状況を示しています。
[解説]
POPUPウィンドウが使用可能なフィールドには虫メガネのアイコンが端に表示されます。
この虫メガネのアイコンをクリックすると次のようにPOPUPウィンドウが表示されます。
■ DDSソースへの POPUPの記述
A JHCODE R B 9 7REFFLD(SHOHINR/SHCODE QTRFIL/SHOHIN) A TEXT('*POPUP SHCODE,SHNAME,SHTANK) : A SHNAME R O 9 18REFFLD(SHOHINR/SHNAME QTRFIL/SHOHIN) A JUTANK R 7Y 0B 9 55REFFLD(SHOHINR/SHTANK QTRFIL/SHOHIN)
[解説]
DSPFのDDSソースには REFFLD で参照フィールドとして検索するコードと
埋め込む名前や数量を定義します。
検索するコードのテキストには
TEXT('*POPUP SHCODE,SHNAME,SHTANK)
と記述します。文字列 *POPUPに続いて検索するコード: SHCODE で埋め込むフィールドを
連続して記述します。
■ POPUP絞込み検索
POPUP検索な様々な方法での絞込み検索が可能です。
(1)特定のフィールド値のみを選択して検索する
例えば品種コードを指定してその品種コードだけの
商品レコードだけを抽出できるようにします。
通常の検索であれば
TEXT('*POPUP SHCODE, SHNAME)
として検索しますがここでは品種コード: HNSCOD による絞込みのために
WHERE句を追加して
TEXT('*POPUP SHCODE, SHNAME WHERE SHSCOD = '&HNSCOD')
のようにすれば指定した品種コードに等しいレコードだけを
抽出することができます。
くわしくはマニュアルをご参照ください。
(2) プロシージャーによる POPUP検索
自分で作成したストアド・プロシージャーを検索用に指定することができます。
(3) 総称(*)によるあいまい検索
検索するコードに「NV*」のように後続に文字 * 付加して検索を指示すれば
NV-CF1, NV-456, … のように あいまい検索ができます。
(4)指定の文字列を含むものだけを検索
検索コードの両端に文字 * または % で挟んで「*F8*」または「%F8%」のようにして
検索すれば文字列「F8」を検索コードのどこかに含んでいるものだけが
抽出されます。
(5)一意選択を利用する
コードを入力するとそのコードに対応する品名が続けて表示され単価も表示したいと
いう要求は多いものです。
POPUP検索を指定しておくとこのような操作も可能になります。
■POPUP検索のパフォーマンスと従来型POPUPとの比較
AutoWebのPOPUP検索はストアド・プロシージャーを起動しますがこれは
元の実行中のプログラムのスレッド(PROCESS)とは別のスレッド(PROCESS)で
実行されます。
従ってIBM i にかける負担は少なく最初の実行には時間がかかる場合も
ありますが一度でも使用されると数千件のレコードでもわずかのあいだに
結果を出す高速のパフォーマンスで実行されます。
何よりの利点はプログラムの開発が全く必要ないことです。
今までPOPUPウィンドウの開発が苦手だった人でも
悩むことなくPOPUPを適用業務に追加することができます。
AutoWebの導入後のPOPUPはすべてPOPUP検索で統一して行われることを
お勧め致します。