みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows10 FM17を使用しています。
始めたばかりの初心者です。
やりたいことは、検索用フォームのレイアウトで3つぐらいの各フィールドに商品名を入力して複数検索をし、その商品をすべて取り揃えている店舗の情報(店舗名,店舗住所,店舗写真)を検索結果用のレイアウトで“ポータル”を使って表示するということをやりたいのですが、どのテーブルで何をすればいいのか漠然とわからず困っています。
どなたか手ほどきをしていただけないでしょうか。
現在のテーブルの状況をとりあえず下に書いておきます。
テーブルA(店舗情報)
・店舗IDフィールド(主キー)
・店舗名フィールド
・店舗住所フィールド
・店舗写真フィールド
テーブルB(商品情報)
・商品IDフィールド(主キー)
・商品名フィールド
テーブルC(商品詳細)
・店舗IDフィールド(外部キー)
・商品IDフィールド(外部キー)
・〇〇店舗の商品フィールド[タイプ:計算,計算指定(店舗::店舗名 & ¶ & 商品::商品名),計算結果(テキストタイプ)]
テーブルAとテーブルCの店舗IDフィールド、テーブルBとテーブルCの商品IDフィールドでそれぞれリレーションしています。今はどのテーブルでもポータルを使っていません。
Offline
店舗にグローバルフィールドを作り、対象の商品を改行区切りのリストにします。そこから商品マスターへリレーションを張り、対象レコード数がリスト行数と一致すれば全て揃っている、と見做していいのでは。ただし、商品マスターに商品の重複がないとします。
Offline
店舗情報テーブルに検索商品入力用のグローバルフィールド三つ
商品1
商品2
商品3
作ります。
で、
GetAsBoolean ( PatternCount ( List ( 商品詳細::商品名 ) ; 商品名1 ) ) &
GetAsBoolean ( PatternCount ( List ( 商品詳細::商品名 ) ; 商品名2 ) ) &
GetAsBoolean ( PatternCount ( List ( 商品詳細::商品名 ) ; 商品名3 ) )
( GetAsBooleanはなくてもいいと思いますが、こちらの方が論理式らしいですね ^^ )
これが真なら三つの商品が有るということです。
商品名に他の商品名が内包されていないことが条件です
例えば、
リンゴ
赤リンゴ
の様なことです。
それを避けるには商品IDで考えるのが間違いないでしょう。
Offline
簡単なサンプルを作ってみました。
https://www.dropbox.com/s/498x2txf5mlul … fmp12?dl=0
厳密なGUIの制御はしていません(同じ検索条件を2回入れられるとか)。
また1つ、2つの検索条件でも検索可能としていますが、ご質問の「その商品をすべて取り揃えている」という
ルールを厳密に適用するなら、条件判定式を修正すればよろしいかと思います。
3つのテーブルに分けるのは、考え方としては全く正しいアプローチです。
が、FileMakerの場合は値一覧やList関数を使えるので、商品と店舗の対応関係のリストをもつフィールドを作成すれば
2つのテーブルでも管理できるのでは?と思います。
今回は、商品テーブルに取扱店舗のリストを格納するフィールドを設け、値一覧を使ったチェックボックスリストで
取り扱い店舗を指定できるようにしてみました。
そのデータを元に、店舗側ごとの取り扱い商品のリストをList関数で作成し、
検索商品名のグローバルフィールドと照合しています。
Last edited by koeda (2019-12-04 13:03:39)
Offline
>>koeda様
丁寧でわかりやすい望み通りのサンプルをわざわざ提示いただきありがとうございます。
サンプルを色々自分で動かしてみて、改めて自分が作成したいものを作ってみたいと思います。
>>Shin様とチポ様
お二方もとても参考になるアドバイスをいただきありがとうございます。
Offline
Pages: 1
[ Generated in 0.016 seconds, 9 queries executed - Memory usage: 512.8 KiB (Peak: 517.7 KiB) ]