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

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

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

You are not logged in.

Announcement

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


#1 2018-02-20 12:30:44

shojin
Member

ポータルのフィルタリング

みなさんこんにちは
当方は、Win10、Pro16の環境です。

タイトルのとおりフィルタリングの計算式で教えて頂きたいです。

フィルタをかける際、3つのグローバルフィールド、g_A、g_B、g_C、の値を基に全ての組合せの計算式を
Let関数を使って簡単にできないか悩んでいます。
3つのフィールドはnullもありえます。
Case関数でもできるのですが、ステップ数が長くなるので、どなたか教えてください。

Offline

#2 2018-02-20 12:32:59

shojin
Member

Re: ポータルのフィルタリング

書き忘れましたが、検証するフィールドは、フィールドA、フィールドB、フィールドCです。

Offline

#3 2018-02-20 13:02:20

Moz
Member

Re: ポータルのフィルタリング

簡単にしたい式の詳細が書かれていませんが何をどう簡単にしたいのですか?

評価するフィールドとグローバル格納のフィールドの関係性などまったくわからないと答えようが......

Offline

#4 2018-02-20 13:17:01

shojin
Member

Re: ポータルのフィルタリング

言葉足らずですません。
最初は計算式に、

Case(

g_A=""  and  g_B=""  and  g_C="";1;         ←全て表示

g_A≠""  and  g_B≠""  and  g_C≠"";
g_A=フィールドA   and  g_B=フィールドB  and  g_C=フィールドC;     ←全てに一致する内容を表示

g_A=""  and  g_B=""  and  g_C≠"";
g_A=フィールドA  and  g_B=フィールドB;       ←g_Aとg_Bの条件に一致するものを表示

(以降パターンを繰り返す)

上記のようにいれていたのですが、Let関数のほうが全ての組合せを簡単にできるのかなと思いまして。

Offline

#5 2018-02-20 13:23:19

shojin
Member

Re: ポータルのフィルタリング

グローバルフィールドはフィルタリングの条件を入力するものです。
グローバルフィールドが全てnullなら、フィルタなし。
3つのグローバルフィールドに条件を入れ、nullか入力値の組合せによってフィルタリングするというものです。

Offline

#6 2018-02-20 13:35:17

Moz
Member

Re: ポータルのフィルタリング

条件を整理して下さい。

グローバル格納に値がある場合は、
その値が同じアルファベット(A / B / C)を持つフィールドと同じ値なら表示するということですか?

Let 関数のヘルプを読まれたほうが良いでしょう。
視認性や参照を減らす意味での簡略化および負荷とミスを減らすために役立ちます。
パターンの簡略化は Let を使っても使わなくても同じです。
https://fmhelp.filemaker.com/help/16/fm … p/let.html

Offline

#7 2018-02-20 13:38:48

チポ
Member

Re: ポータルのフィルタリング

> g_A=""  and  g_B=""  and  g_C≠"";
> g_A=フィールドA  and  g_B=フィールドB;       ←g_Aとg_Bの条件に一致するものを表示

1行目の等号、不等号が逆ですよね?


とすれば
( IsEmpty ( g_A ) or g_A = フィールドA ) and
( IsEmpty ( g_B ) or g_B = フィールドB ) and
( IsEmpty ( g_C ) or g_C = フィールドC )

こういうことでは。。

Offline

#8 2018-02-20 13:47:23

shojin
Member

Re: ポータルのフィルタリング

Mozさん、チポさんありがとうございます。

チポさんの言うとおり、1行目の不等号は逆でした。

( IsEmpty ( g_A ) or g_A = フィールドA ) and
( IsEmpty ( g_B ) or g_B = フィールドB ) and
( IsEmpty ( g_C ) or g_C = フィールドC )

この式だけでいけますか?

Offline

#9 2018-02-20 13:54:36

Moz
Member

Re: ポータルのフィルタリング

こんなに簡略化できるんですね( ꒪⌓꒪)
条件を文章化すると分かりやすいですよ。

チポさんの式を使ってサンプルにしたので試してみて下さい。
https://www.dropbox.com/s/ujuqtn5vw1xof … fmp12?dl=0

Offline

#10 2018-02-20 14:07:29

shojin
Member

Re: ポータルのフィルタリング

Mozさん、チポさんありがとうございます。

ちょっと感動しました。
こんなに簡単にできるとは!
これならいくつ増えても楽勝ですね。

ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 563.11 KiB (Peak: 581.84 KiB) ]