Posted at

GET(アクティブレコード番号)の話

ちょっと戸惑ったので備忘録的に


リストレイアウトにボタンを配置するとこんなことになる問題

1207.jpg

ボタンはすべてのレコードに表示されるので、まあこうなります

うまいこと回避する方法を紹介されていた記事をどこかで見かけたのですが、改めて探しても見つけられず

(ご存知の方いたらコメントいただけると嬉しいです)。

とはいえ、FM17ではGET(アクティブレコード番号)というのがあるので、

これで一発じゃね?と思ったらハマった話です


FileMakerのヘルプ

https://fmhelp.filemaker.com/help/17/fmp/ja/index.html#page/FMP_Help/get-activerecordnumber.html

によると、現在の対象レコード内のフォーカスがあるレコードを表す番号を返します。とありますし、


その行がアクティブなポータル行ではない場合にボタンを非表示にするには、対象のボタンを選択します。インスペクタのデータ 数式 タブで、[次の場合にオブジェクトを隠す] に次の式を入力します:

not (Get (レコード番号) = Get (アクティブレコード番号))


とありますので、簡単だね、指示通りに入力してみます

1207.jpg

変わらないじゃないか

レコードにGET(アクティブレコード番号)を仕込んで試してみると、どうやら選択したレコード番号が想像したようには反映されていない


答えはここにあった

https://www.genecom.co.jp/tech-info/new-features-17/get-activerecordnumber

Genecom様どうもありがとうございます


リストレイアウトでこの関数を用いて「条件付き書式」や「オブジェクトを隠す」機能を使う場合は、レコードの切り替え後に [ウインドウ内容の再表示] スクリプトステップを実行する必要があります


スクリプトトリガ>OnRecordLoad に「ウインドウ内容の再表示[]」を設定しました

無題.png

イエーイ