[サポートFAQ]
ライン
更新日:1999.02.19 - 情報番号:005118
ライン
Q 絞り込み用のダイアログボックスを表示し、絞り込みを実行するようにする
ライン
A 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 %絞込条件 <> nil then!!(14)
     Goro.SelectExpression(%絞込条件, 7)!!(15)
    end if!!(16)



    (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

    変数「%絞込条件」に用意された条件式が空でない場合、その条件式を用いてカレント表を絞り込みます。
    Goro.Expressionメソッドの第2引数「7」は、あいまい検索において「大文字/小文字無視」「全角/半角無視」「ひらがな/カタカナ無視」を全て指定するとして、各引数の和(1+2+4=7)を指定しています。絞り込みの結果は、直ちにカレント表に表れます。

ライン

この情報は、お客様のお役に立ちましたか?

送信
ライン
※本情報の内容は、予告なく変更することがあります。
※本情報の一部または全部を無断で転載及び複写することを禁止します。
※記載された会社名、製品名は、弊社または各社の登録商標もしくは商標です。
弊社の登録商標についてはこちらをご参照ください。