今回は @PickList についてまとめます。この関数を利用するとビューを使った選択画面が作成できます。カテゴリや列のタイトル、色遣いなどビューのデザインがそのまま選択画面として利用できますので、見た目がよく、操作性が高い選択画面が構築できます。
機能の違い
@PickList は、@DbColmun、@DbLookup に並んでよく使用する関数です。どの関数も主にビューを利用した機能なのですが、それぞれの特徴を理解して使い分けましょう。
@DbColmun | ビューから指定した列の値を取得します。 |
@DbLookup | ビューを検索し、合致した文書の値を取得します。 値は、ビューの列、または、フィールド値を取得。 |
@PickList | ポップアップ画面にビューを表示し、ユーザに選択させます。 |
@DbColmun、@DbLookup はビューから値を取得するだけで、ユーザの操作を伴いません。ダイアログリストのフィールドでは選択画面としてが利用しますが、@関数の機能で表示しているのではなく、フィールドの機能が選択画面を表示しています。しかし、@PickList は UI にビューを利用した選択画面を表示する機能を提供することが特徴です。
なお、@DbColmun、@DbLookup については過去の記事でまとめていますので参照ください。
また、今回の内容は上記の記事で作成したフォームやビューと文書を利用しますのでご了承ください。
@PickList の仕様
デザイナーヘルプによると @PickList の構文は次のように記載されています。
@PickList([CUSTOM]:[SINGLE]; server:file; view; title; prompt; column; categoryname) |
※ 最初の引数には、[CUSTOM]、[SINGLE] 以外の機能がありますが、今回は割愛
引数の指定方法は次の通りです。
1 | [CUSTOM] | キーワード | ビューを表示する場合 |
[SINGLE] | 単一選択とする場合 | ||
2 | server | 文字列 | サーバとファイル名を指定 "" (Null 文字列) で自分自身の DB |
file | |||
3 | view | 文字列 | 表示するビューの名称 |
4 | title | 文字列 | ポップアップ画面のウィンドウタイトル |
5 | prompt | 文字列 | ポップアップ画面のメッセージ |
6 | column | 数値 | 値を取得する列番号 |
7 | categoryname | 文字列 | 省略可能 指定したカテゴリだけをビューに表示 |
フォームの設計
@PickList を使用した機能の動作イメージです。ボタンをクリックすると選択画面が表示され、課を選択すると、部と課を一括設定します。
ボタンに記述した式は次の通りです。
xReturn := @PickList([Custom]:[Single]; ""; "vPicFunc"; "課"; "課を選択してください。"; 3); @SetField("Dept"; @Left(xReturn; "/")); @SetField("Func"; @Right(xReturn; "/")) |
@PickList の動作
まず、選択画面を表示するまでの動作を整理します。
3 番目の引数で指定したビューがポップアップ画面にそのまま表示されています。そして、ウィンドウタイトルとメッセージは引数の指定通りとなっていることがわかります。
続いて、文書を選択して[OK]ボタンをクリックした後の動作です。ポップアップ画面のビューで選択した文書の引数で指定した列の値を返すという動作になります。
この結果、”情報システム部/サポート課” という文字列が取得できますので、"/" の左を部、右を課として、各フィールドにセットしているということですね。
まとめ
今回は @PickList の動作についてまとめました。ビューのデザインがそのまま選択画面として表示されることがポイントです。
例えば、顧客マスタを選択する場合を考えてみましょう。
列には会社名のほかに電話番号、住所、業種などの複数の項目が必要です。カテゴリは、都道府県別や 50 音別、業種別などが考えられ、複数階層になることもあります。
こういった画面ではユーザの要望により、運用途中で項目の追加が必要になることがあります。単純に作るとビューの列追加と @PickList の修正が必要となります。この対策として、@PickList 用のビューには、空のダミー列をあらかじめ用意しておくといいでしょう。軽微なデザインの変更であれば、ビューの変更だけで解決できます。
0 件のコメント:
コメントを投稿