日々修行

2012年09月

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検索材料
トマトとキャベツのスパゲッティー パスタ キャベツ トマト 計算式(テキスト)
トマトのスパゲッティー パスタ トマト   計算式(テキスト)

 とヒットします。さらにキャベツを追加すると全てヒットする寸法ですよ。


ひょんなことからFilemakerの仕事


 


いやいや、癖があってなかなか四苦八苦してます。


しかし、意外と覚えると面白いことも多いですわ。


初心者ですので、お手柔らかに:)


 


★生年月日から年齢の取得方法(自動計算)


今日 ー 誕生日 = 年齢


今日 = Date(Day(Get(日付));Month(Get(日付));Year(Get(日付))) ⇐ 間違い


今日 = Date(Month(Get(日付));Day(Get(日付));Year(Get(日付)))


生年月日 = Date(Day(誕生日);Month(誕生日);Year(誕生日))


これらを単に引いても日付しか取れないので


Year(


Date(Month(Get(日付));Day(Get(日付));Year(Get(日付))) - Date(Month(誕生日);Day(誕生日);Year(誕生日))


);


とすると年数が取れる。


▼これでもいいような気がするけど、1歳ずれるんだよなぁ・・・。


Get(日付) - Date(Month(誕生日);Day(誕生日);Year(誕生日))


このページのトップヘ