FileMakerでレイアウトを作っていると、「このボタンは条件を満たしたときだけ見せたい」「特定の人にだけ情報を表示したい」といった場面は多いと思います。そんなときに役立つのが「オブジェクトの非表示条件」です。ところが、うまく使いこなせていないと、どこで設定するのか分からなかったり、条件式がややこしく感じられたりして、せっかくの機能を活かせていないこともあります。
この記事では、専門用語をできるだけ避けながら、FileMakerレイアウトでのオブジェクト非表示条件の基本から、よくある活用例までを分かりやすく解説します。
オブジェクト非表示条件とは?何がうれしいのか
オブジェクト非表示条件とは、レイアウト上のボタンやフィールド、テキストなどの「オブジェクト」を、条件に応じて表示したり隠したりできる機能です。
例えば、次のような使い方ができます。
- ログインユーザーが「管理者」のときだけ、削除ボタンを表示する
- ステータスが「完了」のデータでは、編集用のフィールドを隠す
- 在庫が0のときは「在庫なし」の表示だけを出す
レイアウトを複雑に増やさなくても、1つのレイアウトの中で条件に応じた見せ方ができるので、メンテナンスもしやすくなります。
オブジェクト非表示条件の設定場所と基本的な操作
まずは、どこで設定するのかを押さえましょう。代表的な手順は次の通りです。
- レイアウトモードに切り替える
- 非表示条件を設定したいオブジェクト(ボタン、フィールドなど)を選択する
- インスペクタ(右側のパネル)を開く
- 「位置」「外観」「データ」などのタブの中から「外観」タブを選ぶ
- 「オブジェクトを非表示」のチェックボックスにチェックを入れる
- 右側の「…」ボタンから計算ダイアログを開き、条件式を入力する
ポイントは、「非表示にしたいときの条件を書く」ということです。条件が「True(真)」になると、そのオブジェクトは隠れます。
まずはシンプルに:基本的な条件式の書き方
いきなり複雑な式を書こうとすると混乱しがちです。まずは分かりやすい例から慣れていきましょう。
- フィールド「ステータス」が「完了」のときに隠す場合
ステータス = "完了" - 在庫数が0以下のときに隠す場合
在庫数 <= 0 - ログインアカウント名が「admin」以外のときに隠す場合
Get ( AccountName ) <> "admin"
どの例も、「この条件が成り立ったら隠す」という考え方で書いています。「<>」は「~ではない」という意味です。
よくある実務的な活用例
次に、実際の業務でよくあるパターンをいくつか紹介します。
権限によってボタンを出し分ける
一般ユーザーには削除させたくないけれど、管理者は削除できるようにしたい、という場合です。
- 削除ボタンの非表示条件に次のように設定します。
Get ( AccountName ) <> "admin"
→ アカウント名が「admin」でない人には削除ボタンが見えなくなります。
レコードの状態に応じて編集項目を制御する
受注データなどで「確定」した後は、特定項目を編集させたくない場合に使えます。
- 「確定フラグ」が1のときは編集用フィールドを隠す
確定フラグ = 1
→ 確定済みレコードでは、誤って内容を書き換えられることを防げます。
エラーメッセージや注意文を条件付きで表示する
必須項目が空欄のときだけ「この項目は必須です」というメッセージを表示したい場面でも便利です。
- 「この項目は必須です」というテキストオブジェクトに、次の条件を設定
not IsEmpty ( 顧客名 )
→ 顧客名が入力されているときはメッセージを隠し、空欄のときだけ表示されます。
複数条件を組み合わせて、より柔軟な制御をする
慣れてきたら、複数の条件を組み合わせて「かつ」「または」を表現してみましょう。
- 「ステータスが完了」かつ「ログインユーザーが一般ユーザー」のときに隠す
ステータス = "完了" and Get ( AccountName ) <> "admin" - 「在庫0」または「非表示フラグが1」のどちらかなら隠す
在庫数 <= 0 or 非表示フラグ = 1
and は「どちらも満たしたとき」、or は「どちらか一方でも満たしたとき」という意味です。
よくあるつまずきポイントと対策
オブジェクト非表示条件でよくあるつまずき方と、その対策も押さえておきましょう。
- 「表示させたい条件」を書いてしまう
非表示条件には「隠したいときの条件」を書く必要があります。表示させたい条件を書いてしまって、結果が逆になってしまうケースが多いので注意してください。 - 条件式のテストをしていない
計算ダイアログの「結果を確認」ボタンなどを使って、True/Falseがどう変わるかをテストすると安心です。 - 似たオブジェクトが多くて、どれに設定したか分からなくなる
同じようなボタンやフィールドが並ぶ場合は、オブジェクト名を付けたり、コメントとしてレイアウト上に小さなメモを置いておくなど、自分なりのルールを決めておくと管理しやすくなります。
まとめ:非表示条件を「見やすさアップ」の道具として使う
オブジェクト非表示条件は、「制限をかけるための機能」と考えがちですが、本質的には「ユーザーにとって今必要なものだけを見せる」ための道具です。条件に応じてボタンやフィールドを出し分けることで、画面がスッキリし、操作ミスも減らせます。
まずは、ステータスやログインユーザー名など、分かりやすい条件から試してみてください。少しずつ使い慣れていくことで、レイアウトの使い勝手が大きく向上していくはずです。