第98回リスト形式で現在のレコードをわかりやすく表示する

初めまして。エヌ・ケイ・カスタマイズの永尾と申します。
私が初めてファイルメーカーという存在を知ってから随分と時間が経ってしいまい、最初から覚え直すつもりで4月から日々奮闘しています。ゴールデンウィーク明けでまだ本調子が発揮できていない方もいらっしゃるかと思いますが、気持ちを切り替えて頑張りましょう。

今回は、複数のレコードが表示されているリスト形式で、現在のレコードをわかりやすく表示する方法をお伝えしたいと思います。

考え方

ここでいう現在のレコードとは、選択されているアクティブなレコードのことを指します。さらに取得関数やアイコンを追加することによって現在のレコードを目立たせ分かりやすく表示することができます。

アクティブなレコードの番号(現在のレコード)とレコード番号を比較して判定することによって現在のレコードかどうかを取得し、レコードを選択するたびに取得関数を更新して、即座に画面に反映させます。

では実際に作成してみましょう。

実装

(1)ボディパートの「アクティブな行状態」を有効にするため、[レイアウト]メニューから[パートの設定]の[ボディ]を選択して[変更]ボタンを押します。

(2)ボディパートのアクティブな行状態の書式を設定します。ボディパートを選択して、インスペクタの[外観]タブで[アクティブ]な状態を選択します。アクティブな行状態の書式の[塗りつぶし]を[単色]に設定して薄い青色を指定します。

(3)現在のレコードのみ太字で表示されるように条件付き書式を設定します。アクティブな行(現在のレコード)はGet(アクティブレコード番号)で取得できます。アクティブな行とレコードの行番号が同じ場合に太字になるように設定します。

今回の場合、顧客番号と名前がアクティブな行の時太字にしたいので、顧客番号と名前、二つのオブジェクトを選択し、条件付き書式を設定します。

  • 条件:「計算式が」「Get ( アクティブレコード番号 ) = Get ( レコード番号 )」
  • 書式:「太字」を選択

(4)現在のレコードのみ表示されるアイコンをレイアウト上に配置します。インスペクタの[データ]タブから[動作]の[次の場合にオブジェクトを隠す]に計算式を設定します。条件付き書式とは逆に、アクティブな行とレコードの行番号が異なるときに非表示になるよう設定します。

  • 条件:Get ( アクティブレコード番号 ) ≠ Get ( レコード番号 )

(5)レコードを選択するたびに取得関数が更新されるように設定します。[ウィンドウ内容の再表示]スクリプトステップを実行するスクリプトを作成します。オプションは何も設定しません。作成したスクリプトをOnRecordLoadスクリプトトリガに設定します。

ウインドウ内容の再表示を実行するスクリプト
スクリプトトリガに作成したスクリプトを設定

実行例

(A)アクティブな行状態を設定していないとき:現在のレコードと他のレコードの表示に差はありません。

アクティブな行状態を設定していないとき

(B)アクティブな行状態のみ設定したとき:現在のレコードの背景色が設定した色で表示されます。

アクティブな行状態のみ設定したとき

(C)アクティブな行状態を設定し、かつ、取得関数を使用した条件付き書式または[次の場合にオブジェクトを隠す]設定を併用したとき:現在のレコードは背景色に加えて、文字が太字になりアイコンが表示されます。

アクティブな行状態を設定、関数・条件付き書式を併用したとき

まとめ

いかがだったでしょうか?現在のレコードの位置が分かりやすくなったと思います。

今回はレコード数や項目が少ないですが、大量のデータの中から、ひと目で現在のレコードが分かるのはとても便利だと思います。色々な場面で是非使ってみてください。


参考文献:Claris FileMaker 公式トレーニング教材 から、「FileMaker 関数・スクリプトガイド」等を参考にしています
https://content.claris.com/fmb19_reg-ja

前の記事

Exment Ver4.4.0 リリース