みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
ページ: 1
ポータル内のテーブルに非保存計算フィールド(rnとする)
Get(レコード番号)
を作れば、オブジェクトを隠す計算式が
Get(アクティブポータル行番号)<>ポータルテーブル::rn
でできますが、ポータルから出たときに再表示しないと表示されたままになりますね。
ポータルのonObjectExitではできないようなので、どうしたものか。
条件付書式の方は、<>の代りに=ということになりますが、こっちは自動的に再表示されるようです。
ポータルに設定した onObjectEnter で リレーション::主キー を引数として、onObjectExit で引数をnullにして、トリガーして、
変数を設定[$$key ; Get ( スクリプト引数 )]
ウインドウの再表示
というスクリプトを走らせます。
オブジェクトを隠す計算式を
not ( リレーション::主キー = $$key and isvalid ( リレーション::主キー ) )
としておけば良いようです。
https://www.dropbox.com/scl/fi/q5cmkvfw … htveq&dl=0
ポータル行を使うと、、別にポータルがあったときに動作してしまいますよ。
変なところを修正しました。
編集者 Shin (2023-11-07 14:16:06)
オフライン
まだ解決しないのかな?
>Get(リレーション::主キー)
ここがちょっと変ですね。
>別にポータルが
なるほど、そこは考えてませんでした。
ポータルだからと言って「ポータル行」を使わなくても主キーで判別できるわけですね。
変数を使うので「onObjectExitではまだ出る前なので」という問題も関係なくなる。
グローバル変数なので他の用途とバッティングしないようにする。
Shin様、himadanee様
この度は回答が遅れ、大変申し訳ございませんでした。
Shin様よりお送りいただいたファイルを拝見し、内容を理解することができました。また、太字の書式設定に関しては、「$$key = テーブル2::副キー and IsValid ( テーブル2::副キー )」という計算式を用いることで実現できたことをご報告いたします。
当初はGet(アクティブポータル行番号)を使用する方法を考えていましたが、Shin様からの異なるアプローチによって新たな学びが得られました。
親テーブルのflagとテキストフィールドに設定されたスクリプトトリガ(新規ポータル行)の使用方法については、まだ完全には把握できておりませんが、今回の目的は無事達成することができました。
ありがとうございました。
オフライン
ページ: 1