第1回 -絞り込み検索と値の代入-
例えば,鈴木一郎,鈴木二郎,鈴木三郎,田中一浪,田中二浪,田中三浪という6つの名前が登録されている顧客マスターの中から,「鈴木」と検索すると,まず「鈴木一郎」,「鈴木二郎」,「鈴木三郎」が抽出され,さらにその中から「鈴木二郎」のポータル行を選択すれば,「鈴木二郎」の値が請求書のファイルのフィールドに代入されるようにするというものです。
さらに,このときのポイントとして,検索する時に,「鈴」,「鈴木」,「鈴木二」,「鈴木二郎」と検索文字を一文字づつ増やしていくに従い,絞り込みがされていくようにすることです。
今回の全体のイメージは,請求書ファイルと顧客マスターがあります。請求書の宛名欄には顧客マスターのデータが参照できるようにして,簡単に選択できるようにして効率的なものを考えています。選択したら,請求書の宛名欄に値が代入されるというものです。
1) ファイルを作成する
a) 顧客マスター
b) 請求書
2) フィールドを定義する
a) 顧客マスター
・顧客ID‥‥‥‥‥数字
・顧客名‥‥‥‥‥テキスト
・F検索_顧客名(絞り込み文字分割)‥‥‥‥‥計算/テキスト
Left(顧客名, 1) & "¶" &
Left(顧客名, 2) & "¶" &
Left(顧客名, 3) & "¶" &
Left(顧客名, 4) & "¶" &
Left(顧客名, 5) & "¶" &
Left(顧客名, 6) & "¶" &
Left(顧客名, 7) & "¶" &
Left(顧客名, 8)
b) 請求書
・顧客ID‥‥‥‥‥数字
・顧客名‥‥‥‥‥テキスト
・F検索_顧客名(入力)‥‥‥‥‥グローバル/テキスト
3) リレーションを定義する
b) 請求書
・Rel_顧客ID‥‥‥‥‥b)顧客ID :: a)顧客ID
・Rel_F検索顧客名‥‥‥‥‥b)F検索_顧客名(入力) :: a)F検索_顧客名(絞り込み文字分割)
4) レイアウトを作成する
b) 請求書
・請求書
├ フィールド配置「顧客ID」
└ フィールド配置「顧客名」
・検索用
├ フィールド配置「F検索_入力」←顧客名を入力する欄
├ ポータル配置
└ 作成したポータル内にフィールド配置(リレーション定義「Rel_F検索顧客名」より,2つのフィールド「::顧客ID」「::顧客名」を配置する)
5) スクリプトを定義する
・レイアウト切替(検索レイアウトへ)
├ ブラウズモードに切り替え[]
└ レイアウト切り替え[「検索用」]
※請求書の宛名をクリックすると検索用レイアウトへ切り替わります。
・フィールド設定(請求書「顧客名」へ値の代入し,請求書レイアウトへ切替)
├ ブラウズモードに切り替え[]
├ フィールド設定[「顧客ID」,「Rel_F検索顧客名::顧客ID」]
├ レコード/検索条件終了
└ レイアウト切り替え[「請求書」]
※検索用のフィールド「F検索_入力」に検索文字列を入力すると,ポータル内に該当するデータが表示されます。該当データのポータル行を選択すると,請求書のフィールド「顧客ID」に顧客マスターからの顧客IDの値が設定されます。
6)備考
これは以前からどうやるんだろうと考えていたものでしたが,fmjmlの過去ログを参照させていただき,僕自身の覚え書きとしてメモしたものです。
非常に応用範囲が広く,かなりの使いまわしが効くものと思っていますが,手をかえ品をかえ,その幅を広げてみたいと思います。