ちょっと戸惑ったので備忘録的に
リストレイアウトにボタンを配置するとこんなことになる問題
ボタンはすべてのレコードに表示されるので、まあこうなります
うまいこと回避する方法を紹介されていた記事をどこかで見かけたのですが、改めて探しても見つけられず
(ご存知の方いたらコメントいただけると嬉しいです)。
とはいえ、FM17では**GET(アクティブレコード番号)**というのがあるので、
これで一発じゃね?と思ったらハマった話です
FileMakerのヘルプ
https://fmhelp.filemaker.com/help/17/fmp/ja/index.html#page/FMP_Help/get-activerecordnumber.html
によると、**現在の対象レコード内のフォーカスがあるレコードを表す番号を返します。**とありますし、
その行がアクティブなポータル行ではない場合にボタンを非表示にするには、対象のボタンを選択します。インスペクタのデータ 数式 タブで、[次の場合にオブジェクトを隠す] に次の式を入力します:
not (Get (レコード番号) = Get (アクティブレコード番号))
とありますので、簡単だね、指示通りに入力してみます
レコードに**GET(アクティブレコード番号)**を仕込んで試してみると、どうやら選択したレコード番号が想像したようには反映されていない
答えはここにあった
https://www.genecom.co.jp/tech-info/new-features-17/get-activerecordnumber
Genecom様どうもありがとうございます
リストレイアウトでこの関数を用いて「条件付き書式」や「オブジェクトを隠す」機能を使う場合は、レコードの切り替え後に [ウインドウ内容の再表示] スクリプトステップを実行する必要があります