3 返信 最新の回答 日時: Nov 20, 2013 4:55 PM ユーザー:tezutaku

    「クイック検索」より便利な複数フィールド検索

    Ozaki

      タイトル

      「クイック検索」より便利な複数フィールド検索

      フォーラムに投稿

      「クイック検索」は、表示しているレイアウト上の複数のフィールドを対象に検索を行う機能で、FileMaker Pro 11から追加されました。

      例えば、名刺を元に作った住所録で「クイック検索」を使って「中野」と入力すると、住所が中野区の人、姓が中野の人などが検索されます。

      FileMaker Pro 10以前でも、スクリプトを駆使すれば複数フィールドの検索は出来ましたが、この「クイック検索」で、検索も作成も「クイック」になりました。

       

      ですが、「ステータスツールバー」を常に非表示で使う私は、「ステータスツールバー」にある「クイック検索ツール」を使う事ができません。その為に、私はスクリプトの「クイック検索の実行」を使った「疑似クイック検索」をよく使っています。

       

      この方法は、標準の「クイック検索ツール」では出来ない「該当するフィールドを目立たせる」機能追加が可能で、とても気に入っています。

       

       

      「疑似クイック検索」作成の手順はこうです。

       

      1 「フィールド定義」で検索用フィールドを作ります。

      フィールド名は「QuickF」とします。フィールドタイプは「テキスト」にし、オプションで「グローバル格納」を設定します。

       

      2 スクリプト「QuickF検索実行」を作成します。

      「クイック検索の実行」スクリプトステップだけを使った一行のスクリプトです。「クイック検索の実行」スクリプトステップの「オプション」では「QuickF」フィールドを指定します。

       

      3 レイアウトモードに切り替え、「QuickF」フィールドにスクリプトトリガを設定します。

      「QuickF」フィールドを選択して、「書式」メニューから「スクリプトトリガ設定」を選択します。トリガの種類は「OnObjectExit」、指定するスクリプトは「QuickF検索実行」です。

       

      4 ブラウズモードに切り替え、「QuickF」に検索したい文字を入力して、Enterキーを押します(またはフィールド以外の部分をクリックします)。

       

      すると、「クイック検索ツール」に入力するのと同じ様に複数フィールドの検索が行われます。手順 2 で「クイック検索の実行」にせず、旧来の検索方法にすれば、ver10でも使用できます。

       

       

       

      ひき続き、最初に書きました、該当文字列が含まれているフィールドが目立つと、わかりやすいですよね。「該当フィールドを目立たせる方法」も合わせて紹介します。

      これは、「条件付き書式」を使った方法です。「条件付き書式」の条件式は、「ステータスバー」の右上にある「クイック検索ツール」の内容を扱う事が出来ません。よって、この方法は「疑似クイック検索」ならではの手法になります。

       

       

      「条件付き書式」の設定方法と条件式です。

       

      1 レイアウトモードに切り換えます。

      レイアウトモードにすると、ブラウズモードの時には表示されない緑や黄色の虫眼鏡マークが表示されます。これが、「クイック検索」を行った際に検索されるフィールドです。

       

      2 この虫眼鏡マークのあるフィールドを、キーボードの Shift キーを押しながら全てクリックし(複数フィールド選択になります)、条件付き書式を設定します。(選択したフィールドの上で右クリックするか、「書式」メニューから「条件付き」を選択します。)

       

      3 「条件付き書式」の条件を設定します。

      「追加」ボタンをクリックします。「条件」は「値が」から「計算式が」を選択して、計算式を指定します。

      計算式は、次のような式を使います。「フィールド名」の部分は「条件付き書式」を設定するフィールド名となりますが、複数のフィールドを一度に選択していますので、どうやって指定するか? という問題がでてきます。

      PatternCount ( フィールド名 ;  ( QuickF )  ) > 0

       

      そこで、「フィールド名」に「Self」という関数を使います。こうしますと、検索対象のフィールド全部選択して、一度に「条件付き書式」を設定出来るのでとても楽です。

       

      指定する式は、次の式となります。

      PatternCount ( Self ;  ( QuickF )  ) > 0

       

      4 「条件付き書式」の書式を設定します。

      書式(目立たせる方法)は色々ですが、私はフォント色を赤にして、太字にしています。お好みで選んでみてください。「OK」をクリックして終了です。

       

      5 ブラウズモードに切り替えると、「QuickF」に入力した文字列が含まれているフィールドが、指定した書式に変わっています。

       

       

      他、条件付き書式はとても便利ですので、ぜひ使ってみて下さい。

        • 1. Re: 「クイック検索」より便利な複数フィールド検索
          信幸日高
           複数フィールド検索を試してみましたが フィールドをグローバル設定にしているせいか、 検索する文字を入力することができません。
          • 2. Re: 「クイック検索」より便利な複数フィールド検索
            keeztha
            実際にこの機能を試したわけではないので、間違っていたらごめんなさい。 「検索モードに切り替えてから、グローバルフィールドに入力」するのではなく、 「ブラウズモードのままで、グローバルフィールドに入力し、フォーカスアウト」すると、OnObjectExitイベントがトリガとなって、スクリプトが自動的に検索を行ってくれる、という機能だと思います。
            • 3. Re: 「クイック検索」より便利な複数フィールド検索
              tezutaku

                   設定しました。これは便利です。ありがとうございました!!

              OnObjectExitイベントと併用して、虫眼鏡画像にボタンスクリプトも設定して利用します。

              汎用のテーブルにQuickFフィールドを設定して、スクリプトでそのフィールドに入力した検索語をクイック検索の実行スクリプトステップの検索語として実行することで、複数のテーブルでスクリプト使い回すようにして使っています。