一応便利な値一覧
ファイルメーカーには「値一覧」という機能があり、これにより、選択肢を絞って手軽に入力できるようになる。
そして、これを動的に行う「条件付き(動的)値一覧」というのがある。要するに、複数の項目を連続して絞り込めるという機能だ。下記でいえば、「種類」を選択すると、その種類に応じた「品目」を選ぶことができる。ここでは、種類「B」を選ぶと、品目は「aa」「bb」に絞られる。
このためには、値一覧を参照する際のリレーションが必要となる。ひとつのテーブルにある場合は、ファイルメーカーでは、自己参照のようなことができないので、テーブル自体を仮想的に複製して、それをキーでつなげることになる。この場合は、「種類」で絞り込むので、「製品」というテーブルを複製してつなげている。
それから、値一覧を作るときに、「次のテーブルから関連レコードの値のみを含める」を選択する(この場合は、既に「種類」の値一覧を「製品」のテーブルを使って作成してある)。
このことによって、「種類」を選ぶと、「品目」を選ぶ際に関連レコードを参照して、絞り込みを行うことができる。
でも、これはいつでも使えるわけじゃない。
これには罠がある。実は、レイアウトから参照するテーブルをベースにしないと関連レコードの値が引っ張れないのだ。
例えば、納品書に取引先と担当者を記載するフォームを作るとする。その際に、上記のような、「取引先」と「担当者」のテーブルでリレーションを張って、値一覧で参照先を指定すればいいと思うだろう。だけど、それだけじゃダメだった。
というのも、取引先の値のあるテーブルを土台にしないと、今現在入力している取引先の値がわからないからだ。要するに、「納品書」に入力する「取引先」と「担当者」であるなら、その関連レコードは「納品書」からでないと、値を参照したい「取引先」の値が特定できないからだ。
ファイルメーカーは、オプションを設定しない限り、データをその場で即座に保存するので、これを参照しながら、絞り込みを行う仕組みを使う必要がある。
簡単な図でいうと、以下のとおりになる。
これに気づくのに、何時間費やしたか...。