[サポートFAQ] |
![]() |
絞り込み用のダイアログボックスを表示し、絞り込みを実行するようにする |
![]() |
![]() |
マクロを使用すると、マクロを実行することで絞り込みの処理を実行できるので、検索用のダイアログボックスを利用した絞り込みを行うことができます。
ここでは、下の図のような検索用のダイアログボックスを表示し、[住所]と[氏名]に文字列が入力されて[検索]がクリックされると検索されたレコードを表示する場合を例として解説します。
これらの処理を実行するには、Mainのマクロウィンドウにマクロを記述する方法とパラメータ設定付きのビューを作成する方法があります。Mainのマクロウィンドウにマクロを記述する場合は、次のように操作します。
■ 操作手順 ■
条件を満たすレコードだけが表示されます。
!!Form1のUnLoadイベント event UnLoad() Project.Quit() end event
!![CommandButton1]Clickイベント event Click() %name = @EditText1.Text !!(1) %add = @EditText2.Text !!(2) self.Parent.Close() !!(3)
if not IsBlank(%name) then !!(4) %絞込条件 = '[氏名] like "' & %name & '"' !!(5) end if !!(6) if not IsBlank(%add) then !!(7) if IsBlank(%絞込条件) then !!(8) %絞込条件 = '[住所] like "' & %add & '"' !!(9) else !!(10) %絞込条件 = %絞込条件 & 'and [住所] like "' & %add & '"' !!(11) end if !!(12) end if !!(13) if %絞込条件 <> nil then!!(14) (1),(2) %name = @EditText1.Text %add = @EditText2.Text [検索]ダイアログボックスの文字列入力オブジェクト(氏名)に入力された文字列を変数%name、文字列入力オブジェクト(住所)に入力された文字列を変数%addに格納します。
(3)self.Parent.Close() [検索]ダイアログボックスを閉じます。
(4),(5),(6) if not IsBlank(%name) then %絞込条件 = '[氏名] like "' & %name & '"' end if 変数%nameが空でなければ、%nameに格納されている文字列を「氏名」項目で検索する絞込条件を%絞込条件に格納します。空ならば、if文を抜けます。
(7),(8),(9),(10),(11),(12),(13) if not IsBlank(%add) then if IsBlank(%絞込条件) then %絞込条件 = '[住所] like "' & %add & '"' else %絞込条件 = %絞込条件 & 'and [住所] like "' & %add & '"' end if end if 変数%addが空でない場合は、%絞込条件が空であれば、すなわち「氏名」項目での絞込条件が設定されていなければ、%addに格納されている文字列を「住所」項目で検索する絞込条件を%絞込条件として格納します。空でなければ、すなわち「氏名」項目での絞込条件が設定されていれば、%addに格納されている文字列を「住所」項目で検索する絞込条件を、「氏名」項目での絞込条件とAND検索し、それを新しい条件として%絞込条件に上書きします。
(14),(15),(16) if %絞込条件 <> nil then Goro.SelectExpression(%絞込条件, 7) end if
変数「%絞込条件」に用意された条件式が空でない場合、その条件式を用いてカレント表を絞り込みます。 |