初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-07-26 05:46:45

emi
Member

複数条件のポータルフィルター

Win10/FMPro14
いつもお世話になります。
2万レコードある明細テーブルがあり
別テーブルでポータルフィルタ複数条件で絞込み表示させたいです。
その際の計算式(論理式)がよく理解できません。
明細テーブルとポータルのテーブルは指図番号(ユニークな連番数字)でリレーションされています。
1つの指図番号には20~200のレコードがあり
1~5のタイプと1~10のカラーがあり、各レコードの重量を管理しています。
ポータルのテーブルで指図番号、タイプ、カラー、重量の4つのグローバルフィールドを作成し
各フィールドに値一覧を設定しています。
指図番号には、指図番号フィールドをもとにした値一覧
タイプには、”すべて”"極細””細い””標準””太い””極太”の値一覧
カラーには、”すべて””赤””青””黄””緑””オレンジ””オリーブ””ベージュ””サックス””チャコール””クロ”の値一覧
重量には、10KG未満、10KG以上15kg未満、15kg以上20kg未満、20kg以上の値一覧
ポータルにオブジェクト名をPOTAL、各グローバルにポータルの更新のトリガを設定しました。
各グローバルの初期値は”すべて”で、各グローバルで”すべて”を選択した場合の条件と
各グローバルで、該当がない値一覧を選択した際の条件をどうすれば良いかわかりません。
ポータルフィルターにどのような計算式を設置すべきなのでしょうか?
どうぞよろしくご教示お願いいたします。

Offline

#2 2017-07-26 11:46:29

チポ
Member

Re: 複数条件のポータルフィルター

例えば、
タイプなら
  タイプグローバル = "すべて" or タイプグローバル = 明細::タイプ
とすればいいですね、
各フィールドの条件式は and でつなぎます。


> 該当がない値一覧を選択した際の条件
この結果が書かれていません。
表示しないのなら上記の式でいいでしょう。

Offline

#3 2017-07-26 12:49:24

Hiro
Member

Re: 複数条件のポータルフィルター

> 各グローバルの初期値は”すべて”で、各グローバルで”すべて”を選択した場合の条件
・「すべて」は特記すると関連処理が面倒なので、「空白」なら仮想的「すべて」=真(1)とするフィルター条件式を組むのが楽かと。

> 各グローバルで、該当がない値一覧を選択した際の条件をどうすれば良いか
・ポータルリレーションの関連フィールドで、動的な値一覧を作れば、該当候補値だけの値一覧が生成できます。

> ポータルフィルタ複数条件で絞込み表示させたい、その計算式(論理式)がよく理解できません
・論理条件式は、例えば、

   Case(IsEmpty(gタイプ); 1; gタイプ=ポータル::タイプ)
     and
   Case(IsEmpty(gカラー); 1; gカラー=ポータル::カラー)
     and
   Case(IsEmpty(g重量); 1; gタイプ=ポータル::重量)

Offline

#4 2017-07-26 13:19:41

emi
Member

Re: 複数条件のポータルフィルター

チポ様
ありがとうございます。
これだけでOKなのですね。
"すべて" or タイプグローバル
のところは
"すべて" 改行 タイプグローバル と考えてもよいのでしょうか?

Offline

#5 2017-07-26 13:23:01

emi
Member

Re: 複数条件のポータルフィルター

HIRO様
ありがとうございます。
論理式を教えていただきありがとうございます。
疑問点が良くわかりました。
動的一覧を試してみます。

Offline

#6 2017-07-26 13:34:28

Shin
Member

Re: 複数条件のポータルフィルター

論理式らしく書くのでいたら、
   ( IsEmpty(gタイプ) or gタイプ=ポータル::タイプ )
     and
   ( IsEmpty(gカラー) or gカラー=ポータル::カラー )
     and
   ( IsEmpty(g重量) or gタイプ=ポータル::重量 )

私がよくやるのは、明細テーブル側に、例えばタイプが極細でしたら、*¶極細 と入力しておきます(計算式で自動入力、変更でしたら全置換で)。グローバルフィールドで "全て" を選択したら、* に置き換えるように仕掛けておきます。

Offline

#7 2017-07-26 13:42:17

チポ
Member

Re: 複数条件のポータルフィルター

( タイプグローバル = "すべて") or (タイプグローバル = 明細::タイプ)
こういうことです

Offline

#8 2017-07-26 13:52:56

emi
Member

Re: 複数条件のポータルフィルター

チポ様 Shin様
ありがとうございます。
論理式だんだんわかってきたような気がします。
ありがとうございました。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] CCBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 10 queries executed - Memory usage: 517.41 KiB (Peak: 521.95 KiB) ]