[サポートFAQ] |
![]() |
絞り込み用のダイアログボックスを表示し、絞り込みを実行するようにする |
![]() |
![]() |
マクロを使用すると、マクロを実行することで絞り込みの処理を実行できるので、検索用のダイアログボックスを利用した絞り込みを行うことができます。
ここでは、下の図のような検索用のダイアログボックスを表示し、[住所]と[氏名]に文字列が入力されて[検索]がクリックされると検索されたレコードを表示する場合を例として解説します。
これらの処理を実行するには、Mainのマクロウィンドウにマクロを記述する方法とパラメータ設定付きのビューを作成する方法があります。Mainのマクロウィンドウにマクロを記述する場合は、次のように操作します。
■ 操作手順 ■
1.五郎を起動し、データベースを開く。 2.[マクロ]シートの[新規作成(N)]をクリックして、[新規作成]ダイアログボックスを開く。 3.任意のマクロ名を付けて「モードレスダイアログ」を選択し、Mainのマクロウィンドウを開く。 4.オブジェクトブラウザのForm1の右側の[...]をクリックして、Form1フォームを表示する。 5.Form1フォームに2つの文字列表示オブジェクト、2つの文字列入力オブジェクト、コマンドボタンオブジェクトを配置する。
6.プロパティリストで、Static1オブジェクトのCaptionプロパティに「氏名」、Static2オブジェクトのCaptionプロパティに「住所」、CommandButton1オブジェクトのCaptionプロパティに「検索」を設定する。 7.Form1フォームをダブルクリックし、UnLoadイベントのマクロウィンドウを表示してマクロの記述を確認する。 8.コマンドボタンオブジェクトをダブルクリックし、Clickイベントのマクロウィンドウを表示してマクロを記述する。 9.JustBuilder for 五郎を終了する。 10.[表]シートの「住所録」テーブルを表示する。 11.[マクロ]シートで作成したマクロを選択し、[実行(G)]をクリックする。 12.表示されたダイアログボックスの[氏名]と[住所]に検索する文字列を入力し、[検索]をクリックする。 条件を満たすレコードだけが表示されます。
!!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 not IsBlank(%絞込条件) then !!(14) set %out = Goro.Table.Select(%絞込条件, &H0007) !!(15) Goro.AddHistory(%out) !!(16) end if !!(17) end event
(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),(17) if not IsBlank(%絞込条件) then set %out = Goro.Table.Select(%絞込条件, &H0007) Goro.AddHistory(%Out) end if %絞込条件が空でない場合は、絞り込みを実行するSelect()メソッドに条件を設定して、絞り込みを実行します。Select()メソッドを実行すると、絞り込まれた結果をテーブルオブジェクトとして生成します。この時点では、絞り込みの結果は画面に表示されません。生成されたテーブルオブジェクトを引数として、AddHistory()メソッドを実行することにより、絞り込んだ結果を画面に表示するために表管理情報に追加します。それにより、絞込履歴として登録されます。 |