FileMaker 癖がわかってくるとなかなかおもしろいかも
レコード内の複数のフィールドの条件からリレーション先の該当レコードを取得する方法。
レシピ検索 以下に該当する料理名を表示する
条件1 | 条件2 | 条件3 |
---|---|---|
パスタ | キャベツ | トマト |
レシピマスタ
料理名 | 材料1 | 材料2 | 材料3 |
---|---|---|---|
トマトとキャベツのスパゲッティー | パスタ | キャベツ | トマト |
トマトのスパゲッティー | パスタ | トマト | |
ロールキャベツ | 豚肉 | キャベツ |
通常、条件xと材料xでリレーションを組むとAND検索となり、トマトのスパゲッティーしかヒットしません。
さらにキャベツ、トマト、パスタなど、順番が入れ替わってもダメ(かも)
んで、これらをOR検索にしたい場合どうするか?
互いに結ばれる検索用フィールドを追加します。
レシピ検索
条件1 | 条件2 | 条件3 | 検索条件 |
---|---|---|---|
パスタ | キャベツ | トマト | 計算式(テキスト) |
レシピマスタ
料理名 | 材料1 | 材料2 | 材料3 | 検索材料 |
---|---|---|---|---|
トマトとキャベツのスパゲッティー | パスタ | キャベツ | トマト | 計算式(テキスト) |
トマトのスパゲッティー | パスタ | トマト | 計算式(テキスト) | |
ロールキャベツ | 豚肉 | キャベツ | 計算式(テキスト) |
追加したフィールドをそれぞれ計算式とし、計算式に以下をセット
レシピ検索 検索条件)条件1 & "¶" & 条件2 & "¶" & 条件3
レシピマスタ 検索材料)材料1 & "¶" & 材料2 & "¶" & 材料3
んで、この「レシピ検索 検索条件」と「レシピマスタ 検索材料」をリレーションするとOK
条件1にトマト、条件2にパスタといれると
料理名 | 材料1 | 材料2 | 材料3 | 検索材料 |
---|---|---|---|---|
トマトとキャベツのスパゲッティー | パスタ | キャベツ | トマト | 計算式(テキスト) |
トマトのスパゲッティー | パスタ | トマト | 計算式(テキスト) |
とヒットします。さらにキャベツを追加すると全てヒットする寸法ですよ。