#FileMakerでリレーションの設定によってレコードを自動的に作成する
FileMakerでリレーションシップの設定時に「このリレーションシップによるレコードの作成を許可する」機能を利用して、テーブルに新規レコードを作成する方法を説明します。
下記公式サイトに記載があります。
FileMaker13ヘルプ
http://www.filemaker.com/help/13/fmp/ja/html/relational.11.13.html
FileMaker16ヘルプ
https://fmhelp.filemaker.com/help/16/fmp/ja/index.html#page/FMP_Help%2Fcreating-relationships.html%23
今回は、「日記」をイメージして作成を進めます。
##メインのテーブルとレイアウト
メインのテーブルとレイアウトを用意します。
テーブル名とレイアウト名は、「test002」
フィールド名は、「day」
タイプは「日付」
入力画面となるので、レコードを1つ作っておきます。
##日記用のテーブル
次に日記用のテーブルを用意します。
テーブル名とレイアウト名は、「diary」
フィールド名は、「day」「diary」
タイプは「日付」「テキスト」
##リレーションの設定
次にリレーションの設定を行います。
まず、オカレンス(テーブルオカレンス)「test002」の「day」とオカレンス「diary」の「day」に「=」でリレーションを設定。
設定したリレーションをダブルクリックして、リレーションシップ編集を開き、「このリレーションシップによるレコードの作成を許可する」にチェックを入れ、「OK」を押下。
##入力用レイアウトを編集
続いて、入力用のレイアウトに入力欄を設定して行きましょう。
レイアウト「test002」へ、関連テーブル「diary」から「diary」フィールドを配置します。
次に、
「day」フィールドにインスペクタから「ドロップダウンカレンダー」と「カレンダーの表示切替アイコンを表示」を設定
最後に、
レイアウト「test002」へ配置した、関連テーブルの「diary」のサイズを調整し、インスペクタから、次の場合にオブジェクトを隠すに「IsEmpty(test002::day)」と設定します。
この設定は、dayが空の時にdiary欄を非表示にする設定です。
以上で完成です。
実際に、日付をドロップダウンカレンダーから選択し、diary欄に何か入力してみてください。
diaryに何か入力されていれば、日付を変更すると、対応した日のdiaryが表示されるハズです。
###diaryテーブルを確認
「diary」テーブルにレコードが作成され、日付毎に保存されているのが確認できると思います。
##最後に
今回は、リレーションシップを活用し、関連テーブルに、自動的にレコードを作成する方法を紹介致しました。
dayを空にした状態で、diaryを入力して、レコードを確定すると、エラーになりますので、今回は、dayが空の場合に入力欄を非表示に致しました。
※エラー内容は、「day」に有効な値が入力されていないため、このフィールドを修正することができません
以上です。