初心者のFileMaker pro Q&A

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

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2019-09-09 13:41:45

potyou
ゲストユーザー

[解決] ポータルのフィルタについて

お世話になります。
すいません初心者です。
ポータル内のフィールドに 0か1 が入るフィールドがあり
ポータル設定のポータルレコードのフィルタにて

そのフィールドに
1がある場合は1のみ表示
0しかない場合は0すべて表示

としたいのですが、うまくいきません。
どのような計算式にすればよいでしょうか。
よろしくお願いします。

#2 2019-09-09 13:58:20

Hiro
メンバー

Re: [解決] ポータルのフィルタについて

If(
   Sum(ポータル::フィールド)
   ; ポータル::フィールド=1
   ; ポータル::フィールド=0
)

オンライン

#3 2019-09-09 14:08:03

Moz
メンバー

Re: [解決] ポータルのフィルタについて

使えない機能もあるのでバージョンやOSなど書きましょう。

こんな感じ?
http://bit.ly/2kzIrLy

※Hiroさんのと同じです。SumのとこMaxで作っちゃいましたがやってることは同じです。

オフライン

#4 2019-09-09 15:26:58

potyou
ゲストユーザー

Re: [解決] ポータルのフィルタについて

Hiro様
Moz様
早速のご返事ありがとうございます。

現在 FileMaker Pro 18 を使用しています。
教えていただいた計算式で思った通りのフィルタができました。
ありがとうございます。

しかし、新しい問題として
0か1が入るポータル内のフィールドは計算フィールドで
ポータルのあるレイアウト内の内容を変えると数字が変わります。
そのタイミングでポータルも再度フィルタし直したいのですが(スクリプトボタンなどで)
うまくいきません。

それから1000レコード程度なのですがポータルのフィルタに
かなり時間がかかります。
なにか解決方法が分かるようでしたらお教え頂ければ幸いです。

#5 2019-09-09 15:39:35

Moz
メンバー

Re: [解決] ポータルのフィルタについて

ポータルのあるレイアウト内の内容というのはポータルに対して参照元テーブルということですか?

もう少し詳しく構造などを書きましょう。
FileMaker の用語で書かれていないので的確なアドバイスになりません。

フィールドを変更してもフィルタが反映されない場合は、
計算フィールドの評価にグローバル格納などが混じっている可能性があります。

その場合は[ポータルの更新]スクリプトステップを利用した再評価を行います。
スクリプトトリガで実行させれば良いでしょう。

パフォーマンスに関しては例えばリレーションがデカルト積「x」になっているなどで
1000レコード全てを評価しているなんてケースでは1000レコード分の再計算が必要ですから時間が掛かります。

いずれにしても詳細な情報を書きましょう。

編集者 Moz (2019-09-09 15:40:48)

オフライン

#6 2019-09-09 16:13:14

Hiro
メンバー

Re: [解決] ポータルのフィルタについて

しかし、新しい問題として
0か1が入るポータル内のフィールドは計算フィールドで
ポータルのあるレイアウト内の内容を変えると数字が変わります。
そのタイミングでポータルも再度フィルタし直したい。

その変えた内容「フィールド(索引付き)」をフィルタ式の再計算誘発トリガーに利用、とか!
If(
   Sum(ポータル::フィールド) + Left(フィールド; 0)
   ; ポータル::フィールド=1
   ; ポータル::フィールド=0
)

それから1000レコード程度なのですがポータルのフィルタに
かなり時間がかかります。
なにか解決方法が分かるようでしたらお教え頂ければ幸いです。

フィルタは基本的に遅いです。構造の抜本的見直しが必要かも?

オンライン

#7 2019-09-10 12:06:54

potyou
ゲストユーザー

Re: [解決] ポータルのフィルタについて

ソートはやはり時間がかかってしまうのですね。
ですが思った通りの動きは出来ましたので大変助かりました。
ありがとうございます。

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer