しかし、新しい問題として
0か1が入るポータル内のフィールドは計算フィールドで
ポータルのあるレイアウト内の内容を変えると数字が変わります。
そのタイミングでポータルも再度フィルタし直したい。
その変えた内容「フィールド(索引付き)」をフィルタ式の再計算誘発トリガーに利用、とか!
If(
Sum(ポータル::フィールド) + Left(フィールド; 0)
; ポータル::フィールド=1
; ポータル::フィールド=0
)
それから1000レコード程度なのですがポータルのフィルタに
かなり時間がかかります。
なにか解決方法が分かるようでしたらお教え頂ければ幸いです。
フィルタは基本的に遅いです。構造の抜本的見直しが必要かも?
]]>もう少し詳しく構造などを書きましょう。
FileMaker の用語で書かれていないので的確なアドバイスになりません。
フィールドを変更してもフィルタが反映されない場合は、
計算フィールドの評価にグローバル格納などが混じっている可能性があります。
その場合は[ポータルの更新]スクリプトステップを利用した再評価を行います。
スクリプトトリガで実行させれば良いでしょう。
パフォーマンスに関しては例えばリレーションがデカルト積「x」になっているなどで
1000レコード全てを評価しているなんてケースでは1000レコード分の再計算が必要ですから時間が掛かります。
いずれにしても詳細な情報を書きましょう。
]]>現在 FileMaker Pro 18 を使用しています。
教えていただいた計算式で思った通りのフィルタができました。
ありがとうございます。
しかし、新しい問題として
0か1が入るポータル内のフィールドは計算フィールドで
ポータルのあるレイアウト内の内容を変えると数字が変わります。
そのタイミングでポータルも再度フィルタし直したいのですが(スクリプトボタンなどで)
うまくいきません。
それから1000レコード程度なのですがポータルのフィルタに
かなり時間がかかります。
なにか解決方法が分かるようでしたらお教え頂ければ幸いです。
こんな感じ?
http://bit.ly/2kzIrLy
※Hiroさんのと同じです。SumのとこMaxで作っちゃいましたがやってることは同じです。
]]>そのフィールドに
1がある場合は1のみ表示
0しかない場合は0すべて表示
としたいのですが、うまくいきません。
どのような計算式にすればよいでしょうか。
よろしくお願いします。