FileMakerで入力フォームを作っていると、「選択肢が多すぎて、目的の値が探しにくい」「カテゴリごとに候補を絞り込みたい」と感じることはないでしょうか。そんなときに便利なのが「関連値一覧」を使ったドロップダウンの絞り込みです。カテゴリを選ぶと、次のドロップダウンにそのカテゴリに関係する項目だけが表示される、という動きが簡単に実現できます。
ここでは、あまり専門用語を使わずに、関連値一覧を使った絞り込みの仕組みと設定方法を順を追って解説します。
関連値一覧でできること
関連値一覧を使うと、次のような入力画面を作ることができます。
- 「都道府県」を選ぶと、「市区町村」の候補がその都道府県に属するものだけになる
- 「商品カテゴリ」を選ぶと、「商品名」のドロップダウンがそのカテゴリの商品だけになる
- 「部署」を選ぶと、「担当者」の一覧がその部署のメンバーだけになる
ポイントは、「先に選んだ値」をもとに、次のフィールドの候補を自動で絞り込めることです。これにより、入力ミスを減らし、ユーザーが迷わずに入力できるフォームになります。
関連値一覧の基本イメージ
関連値一覧は、次の3つを組み合わせて作ります。
- マスタテーブル(例:都道府県マスタ、商品マスタなど)
- リレーション(例:レイアウト側の「選択した都道府県」とマスタ側の「都道府県」フィールドをつなぐ)
- 値一覧(関連レコードから値を取得する設定)
流れとしては、
- ユーザーがフォーム側で「親フィールド」(例:都道府県)を選ぶ
- その値を使って、マスタテーブルのレコードを関連付ける(リレーション)
- 関連したレコードの「子フィールド」(例:市区町村)だけを値一覧として表示する
という考え方になります。
準備:テーブルとフィールドを用意する
例として、「都道府県」と「市区町村」の絞り込みを作るケースで説明します。
1. マスタテーブルを用意する
まず、全ての候補を持つマスタテーブルを用意します。
- テーブル名:市区町村マスタ
- 主なフィールド例:
都道府県(テキスト)市区町村(テキスト)
このテーブルには、例えば「東京都 / 千代田区」「東京都 / 港区」「大阪府 / 大阪市」といった形で、都道府県と市区町村の組み合わせをレコードとして登録しておきます。
2. 入力用テーブルを用意する
次に、実際にユーザーが入力するテーブル(例:顧客テーブル、住所テーブルなど)に、次のフィールドを用意します。
都道府県(テキスト)… 親のドロップダウン市区町村(テキスト)… 絞り込まれる子のドロップダウン
リレーションを設定する
準備ができたら、「都道府県の選択に応じて、市区町村マスタのレコードを絞り込む」ためのリレーションを作ります。
- 「ファイル」メニューから管理 > データベースを開き、「リレーションシップ」タブを表示します。
- 入力用テーブル(例:顧客)と「市区町村マスタ」の間にリレーションを作成します。
- リレーション条件として、入力用テーブル::都道府県 = 市区町村マスタ::都道府県 を指定します。
この設定により、入力用テーブルのレコードが持つ「都道府県」と同じ都道府県を持つ市区町村マスタのレコードだけが「関連レコード」として結びつきます。
値一覧(関連値一覧)を作成する
次に、ドロップダウンで使う値一覧を設定します。ここでは、
- 都道府県用の値一覧
- 市区町村用の「関連値一覧」
の2つを作ります。
1. 都道府県の値一覧
- 「ファイル」メニューから管理 > 値一覧を選びます。
- 「新規」ボタンで新しい値一覧を作成し、名前を「都道府県一覧」などにします。
- 値をフィールドから使用を選択し、「市区町村マスタ::都道府県」を指定します。
- 「重複する値は省略」にチェックを入れて、同じ都道府県名が何度も出てこないようにします。
2. 市区町村の関連値一覧
- もう一度「新規」ボタンで値一覧を作成し、名前を「市区町村一覧(関連)」などにします。
- 値をフィールドから使用を選択し、「市区町村マスタ::市区町村」を指定します。
- 関連レコードのみを表示にチェックを入れ、リレーションで作成した「都道府県で関連付けたテーブルオカレンス」を指定します。
この「関連レコードのみを表示」によって、「今開いているレコードで関連している市区町村だけ」を候補として表示できるようになります。
レイアウトでドロップダウンを設定する
最後に、レイアウト上でフィールドに値一覧を割り当てます。
- レイアウトモードに切り替えます。
- 都道府県フィールドを選択し、インスペクタの「データ」タブからコントロールスタイルを「ドロップダウンリスト」または「ポップアップメニュー」に設定します。
- 使用する値一覧として、先ほど作成した「都道府県一覧」を指定します。
- 同様に、市区町村フィールドにもコントロールスタイルを設定し、「市区町村一覧(関連)」を割り当てます。
これで、画面上では次のような動きになります。
- 先に都道府県フィールドで「東京都」を選ぶ
- 市区町村フィールドのドロップダウンを開くと、「東京都」に属する市区町村だけが表示される
うまく動かないときに確認するポイント
関連値一覧が正しく絞り込まれない場合は、次の点を確認してみてください。
- リレーションの条件で、正しいフィールド同士を結び付けているか
- 都道府県の表記ゆれ(例:「東京都」と「東京」)がないか
- 値一覧の設定で「関連レコードのみを表示」にチェックが入っているか
- レイアウト上で、フィールドに正しい値一覧が割り当てられているか
大きなテーブルや複雑な画面ほど、関連値一覧による絞り込みは効果的です。入力のしやすさが大きく変わるので、ぜひ基本パターンをマスターして、さまざまな場面で活用してみてください。