7 返信 最新の回答 日時: Aug 4, 2016 8:36 PM ユーザー:hajime

    絞り込み条件がn×nある場合のスクリプト

    coyayac

      データの抽出条件を指定してボタンを押すと対象データを表示する画面を作っています。

      抽出条件の指定は「値を複数(n件)選択できる」項目がn項目数あります。

       

      そのような場合、新規レコード/検索条件をn件×n項目数書く方法以外に良い方法は

      ありますでしょうか?

       

      例えば、以下のようなDBの内容になっていて、n件の[都道府県]とn件の[果物]を指定して

      条件に合う明細のみ抽出するイメージとなります。

       

      [都道府県][果物]

      山梨 ぶどう

      山梨 もも

      山梨 いちご

      山梨 さんらんぼ

      福島 ぶどう

      福島 もも

      福島 いちご

      福島 さんらんぼ

      ....

       

      WHERE ([都道府件]=山梨 or [都道府件]=福島 ...) AND ([果物]=もも or [果物]=いちご ...)

      のような抽出ができれば嬉しいのです。

       

      [都道府県][果物]の抽出条件指定は、その時々で任意の件数を指定します。

       

      なにか効率の良い方法のアドバイスを頂けると助かります。

        • 1. Re: 絞り込み条件がn×nある場合のスクリプト
          hiro_

          FileMakerでOR検索の設定は面倒なので、リレーションのOR照合で代替えすると楽で良いでしょう。

          リレーションでは、「関連レコードへ移動」で参照レコード→実体レコード化することも可能です。

           

          リレーションのOR照合は、照合キーを改行区切り一覧にして実装します。

          リレーションの設定要領は、

            「山梨¶福島¶・・・」 = 「::都道府県」

            AND

            「もも¶いちご¶・・・」= 「::果物」

          また、ORキーの入力は、グローバルフィールドへチェックボックスで一覧入力します。

          • 2. Re: 絞り込み条件がn×nある場合のスクリプト
            user19752

            そのSQLでレコードIDのリストを取得すれば、関連レコードへ移動で検索できます。

            効率が良いかどうかは?

            • 3. Re: 絞り込み条件がn×nある場合のスクリプト
              hajime

              自分の場合は、最初に都道府県で検索して、次に果物でレコードを絞り込むスクリプトを作成します。

              サンプルを添付しますが、テストしていないのでバグがあるかもしれませんのでその点はご了承ください。

              NxNの検索.png

              • 4. Re: 絞り込み条件がn×nある場合のスクリプト
                coyayac

                hajimeさん

                非常にわかりやすいアドバイスありがとうございます。

                 

                アドバイスを頂いた中で、この「対象レコードで絞り込み」がこちらの作りでは一番汎用的に組み込めると思い入れてみたのですが、やりたかったことがそのまま実現できました。

                「検索結果で更に絞り込む」ということが念頭になかったのですが、今回教えて頂いたこの手法は他にも色々使えそうです。

                レスポンス的にも全く問題ありませんでした。

                助かりました。ありがとうございます。

                • 5. Re: 絞り込み条件がn×nある場合のスクリプト
                  coyayac

                  hiroさん

                   

                  アドバイスありがとうございます。

                  今回はhajimeさんにアドバイス頂いた手法で実現できることができました。

                  ただ「リレーションのOR照合でデータの絞り込みを行う」ことも、他の大量データの照会画面で活用できそうですので、とても参考になりました。

                  勉強になりました。ありがとうございます。

                  • 6. Re: 絞り込み条件がn×nある場合のスクリプト
                    coyayac

                    user19752さん

                     

                    アドバイスありがとうございます。

                    今回はhajimeさんの「対象レコードの絞り込み」で実現しました。

                    頂いた内容は別の機会で活用させて頂こうと思っています。

                    いつもありがとうございます。

                    • 7. Re: 絞り込み条件がn×nある場合のスクリプト
                      hajime

                      coyayacさん

                      問題解決できて良かったです。

                       

                      今回は説明を簡単にするため、ほとんど同じ絞り込み処理を2回書いていますが、

                      実際にはこの部分を汎用的にして別スクリプトに切り出せば、DRYなスクリプトに出来ます。

                      ご興味がありましたら挑戦してみるのも良いかと思います。