みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
すいません初心者です。
ポータル内のフィールドに 0か1 が入るフィールドがあり
ポータル設定のポータルレコードのフィルタにて
そのフィールドに
1がある場合は1のみ表示
0しかない場合は0すべて表示
としたいのですが、うまくいきません。
どのような計算式にすればよいでしょうか。
よろしくお願いします。
If(
Sum(ポータル::フィールド)
; ポータル::フィールド=1
; ポータル::フィールド=0
)
Offline
使えない機能もあるのでバージョンやOSなど書きましょう。
こんな感じ?
http://bit.ly/2kzIrLy
※Hiroさんのと同じです。SumのとこMaxで作っちゃいましたがやってることは同じです。
Offline
Hiro様
Moz様
早速のご返事ありがとうございます。
現在 FileMaker Pro 18 を使用しています。
教えていただいた計算式で思った通りのフィルタができました。
ありがとうございます。
しかし、新しい問題として
0か1が入るポータル内のフィールドは計算フィールドで
ポータルのあるレイアウト内の内容を変えると数字が変わります。
そのタイミングでポータルも再度フィルタし直したいのですが(スクリプトボタンなどで)
うまくいきません。
それから1000レコード程度なのですがポータルのフィルタに
かなり時間がかかります。
なにか解決方法が分かるようでしたらお教え頂ければ幸いです。
ポータルのあるレイアウト内の内容というのはポータルに対して参照元テーブルということですか?
もう少し詳しく構造などを書きましょう。
FileMaker の用語で書かれていないので的確なアドバイスになりません。
フィールドを変更してもフィルタが反映されない場合は、
計算フィールドの評価にグローバル格納などが混じっている可能性があります。
その場合は[ポータルの更新]スクリプトステップを利用した再評価を行います。
スクリプトトリガで実行させれば良いでしょう。
パフォーマンスに関しては例えばリレーションがデカルト積「x」になっているなどで
1000レコード全てを評価しているなんてケースでは1000レコード分の再計算が必要ですから時間が掛かります。
いずれにしても詳細な情報を書きましょう。
Last edited by Moz (2019-09-09 15:40:48)
Offline
しかし、新しい問題として
0か1が入るポータル内のフィールドは計算フィールドで
ポータルのあるレイアウト内の内容を変えると数字が変わります。
そのタイミングでポータルも再度フィルタし直したい。
その変えた内容「フィールド(索引付き)」をフィルタ式の再計算誘発トリガーに利用、とか!
If(
Sum(ポータル::フィールド) + Left(フィールド; 0)
; ポータル::フィールド=1
; ポータル::フィールド=0
)
それから1000レコード程度なのですがポータルのフィルタに
かなり時間がかかります。
なにか解決方法が分かるようでしたらお教え頂ければ幸いです。
フィルタは基本的に遅いです。構造の抜本的見直しが必要かも?
Offline
ソートはやはり時間がかかってしまうのですね。
ですが思った通りの動きは出来ましたので大変助かりました。
ありがとうございます。
Pages: 1
[ Generated in 0.026 seconds, 9 queries executed - Memory usage: 513.91 KiB (Peak: 518.82 KiB) ]