みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
MacOSXユーザで FM11Advanced にチャレンジしています。FM初心者です。
今までに、2度ほど質問させて頂き、その都度貴重なご助言を頂き何とか解決してきました。
有難う御座居ます。
今回は、以下の件をお教え頂きたく。
以下の通り、テーブルは2つで、購入者テーブルと、商品テーブルです。
それぞれのテーブルのフィールドは簡単に下記の通りとします。
テーブル フィールド
1 購入者テーブル 購入者名、商品名
2 商品テーブル 商品名
このとき、テーブルのリレーションを組んで
ある人が購入した商品一覧
購入者全員と商品一覧
当人以外の購入者と商品一覧
当人は未購入だが他の人が購入した商品一覧
などは、表示できるのですが、
ある人が未購入の商品一覧
を表示させることが出来ません。
どうやったら表示できるのかお教え下さい。
尚、商品は、随時追加/削除されるものとしたく。
購入者テーブルに、「購入済みの商品リスト」繰り返しフィールドを定義して、そこに購入済み商品を覚えておいたらどうかと思いましたが、どのように定義したら繰り返しフィールドに商品をどのようにしたら覚え込ませられるのか、分りません。
既に、このようなご質問が過去に出されているかも知れませんが、検索ができませんでした。
宜しくお願い致します。
購入者名で自己リレーションして、
購入商品のリストを得て、
そのフィールドと商品テーブルの商品名とを「≠」でリレーション。
これで未購入商品が照合されます。
Offline
チポ様
早速回答下さり有難う御座居ます。
購入者名で自己リレーションして、
購入商品のリストを得て、
そのフィールドと商品テーブルの商品名とを「≠」でリレーション。これで未購入商品が照合されます。
お教え頂いたリレーションですと、今回購入した商品以外の商品一覧は表示出来ますが、過去に購入した商品は表示されてしまいます。
過去に購入した商品(購入者テーブルにはそのレコードは残っている)は除外したいのです。
とんちんかんなことをお尋ねしているかも知れませんが、宜しくお願い致します。
> 購入商品のリストを得て
これができていないのでは。
計算フィールドを作りその計算式
List ( 自己リレーション::商品名 )
これを照合に使います。
Offline
チポ様
早速の回答有難う御座居ます。
結論から申しますと、解決致しました。
購入商品のリストを得て
これができていないのでは。
計算フィールドを作りその計算式
List ( 自己リレーション::商品名 )
これを照合に使います。
「購入商品のリストを得て」の意味が解っていませんでした。また、「計算フィールドを作りその計算式〜〜」も理解できていませんでした。お恥ずかしい!
List関数の意味が理解できていませんでしたが、少し分ったような気がします。
有難う御座居ました。
List関数が少し分ったという発言を致しましたが、情け無いかな、全く分っておりません。
チポさんに
計算フィールドを作りその計算式
List ( 自己リレーション::商品名 )
これを照合に使います。
と教えて頂き、未購入の商品一覧は表示できるようになったのですが、購入者が全くの初めての場合、未購入商品として、全商品を表示させたいのですが、List ( 自己リレーション::商品名 )では、何も表示されません。この場合List ( 自己リレーション::商品名 )は null なのでしょうか?
どういう工夫をすれば良いのか、ご教示下さい。
また、Listで得た戻り値の中にある特定のテキストがあるかどうかをチェックしたい。
例えば http://www.filemaker.co.jp/help/html/fu … .31.4.html にある、例4の戻り値 100 200 300 の中に、200があるかどうかをチェックしたいのです。
宜しくお教え下さい。
> この場合List ( 自己リレーション::商品名 )は null なのでしょうか
ですね、nullでは照合できませんから一工夫を
Case (IsValid (自己リレーション::商品名) ; List ( 自己リレーション::商品名 ) ; 商品名に絶対無い適当な値 )
このようなのでいいのでは。
> Listで得た戻り値の中にある特定のテキストがあるかどうかをチェックしたい
どのようにチェックを?
目視でいいのならそのListを表示すればいいでしょう。
フィールド値としてあるのなら、
テキスト関数を使ってその有無を得られます。
Offline
FilterValuesのことでは。
> この場合List ( 自己リレーション::商品名 )は null なのでしょうか
ですね、nullでは照合できませんから一工夫をCase (IsValid (自己リレーション::商品名) ; List ( 自己リレーション::商品名 ) ; 商品名に絶対無い適当な値 )
このようなのでいいのでは。> Listで得た戻り値の中にある特定のテキストがあるかどうかをチェックしたい
どのようにチェックを?目視でいいのならそのListを表示すればいいでしょう。
フィールド値としてあるのなら、
テキスト関数を使ってその有無を得られます。
成る程! 色々な関数が用意されているのですね。解決致しました。有難う御座居ました。
>FilterValuesのことでは。
この関数も教えて頂き、有難う御座居ました。テキスト関数の中のFilterValues関数を教えて頂き、大変助かりました。
小生の理解力のなさから、FMの関数説明を読んでもなかなか理解できずにいましたが、このように具体的な関数や具体的な指定方法をご教示頂くと、本当に助かります。
重ねて、チポ様、Lister様に御礼申し上げます。
解決表示を致しました。
Pages: 1
[ Generated in 0.007 seconds, 8 queries executed - Memory usage: 526.23 KiB (Peak: 547.13 KiB) ]