16
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

【FileMaker】条件付値一覧(追記あり)

FileMaker社のサイトで非常にわかりにくい条件付値一覧の作り方。
http://filemaker-jp.custhelp.com/app/answers/detail/a_id/11960

なんでこんなに文字だけなんでしょうね〜。

これについて、「要はこうだよ」と解説します。

作りたいもの

「レストラン」で提供するメニューとそのメニューからお客が注文する注文書

必要な機能

  • テーブル
    • 「メニュー」テーブル
    • 「注文」テーブル
  • 値一覧
    • 注文する際の「カテゴリー(タイプ)」(ランチ、ディナー、デザート)
    • 注文する際の「カテゴリー(タイプ)」の「料理(項目)」
  • レイアウト
    • 「メニュー」を登録するレイアウト
    • 「注文」を取るレイアウト

イメージ

作りたい画面のイメージです。

  • メニューがこんな感じであります。ランチではサンドイッチ、スープ、ハンバーガーを提供していますね。
    1210_4.png

  • 注文をしてみましょう。
    1210_1.png

  • どのカテゴリー(タイプ)を食べたいかを選びます。
    1210_2.png

  • どの食べ物にしようかな?
    1210_3.png

という感じでしょうか?

だいたいイメージできました?

では、作っていきましょう。

作り方

テーブルを作ってリレーションをはる

メニューテーブルと注文テーブルを作成し(フィールドのタイプは全てテキスト)、それぞれ関連するタイプをリレーションします。
1210_5.png

値一覧を作る

値一覧を二つ作ります。

まずは、料理のカテゴリー(タイプ)ですね。
「メニュー」テーブルの「カテゴリー(タイプ)」を表示するときの値一覧になります。
1210_6.png

そして、カテゴリー(タイプ)ごとに表示される料理そのもののリストです。
1210_7.png
このとき、カテゴリー(タイプ)と関連できるように、リレーションで作成したオカレンスのリレーションを利用します。
実際に注文している「注文」で入力されたカテゴリー(タイプ)をキーにして、「メニュー」の料理(項目)を表示する、ということになります。
これで、「関連するデータのみの」の表示ができるようになります。

ついうっかり、関連データの部分を「メニュー」にしそうですが、「実際に」選択されたデータをもとに「メニュー」を表示する、ということを覚えておけば混乱が少ないと思います。

レイアウトで値一覧を指定する

では、実際の「注文」レイアウトで値一覧を設定使っていきましょう。

  • カテゴリー(タイプ)
    1210_8.png
    入力を「ポップアップメニュー」にして、値一覧の「項目のタイプ」を指定します。

  • 項目(料理)
    1210_9.png
    入力を同じく「ポップアップメニュー」にして、値一覧の「項目の名前」を指定します。

これで、レイアウトモードを終了してブラウズモードで見ると値一覧が設定されているのが確認できます。

いかがですか?
ちょっと敷居が高い動的に表示するリストの切り替えのできる条件付値一覧、これができればシステム屋さんの領域に突入です^^
では!


追記です。
階層が深くなった場合の実装の仕方を、公開しました。
こちらも参考にしてください。


追記の追記です。
条件付き値一覧で選択した項目の別フィールドを取得するを、公開しました。
こちらも参考にしてください。

では、FileMakerライフをお楽しみください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
16
Help us understand the problem. What are the problem?