Master Detail 2.0 を導入する方法
準備:
- MasterDetail2.fmp12
- 自分のソリューション
1)自分のソリューションで、Master Detail を導入したいレイアウトを作成(新規レイアウト)
⌘L ⌘A ⌘C ⌘N
2)(必要であればあとでパートを追加すればいいので、ボディパートのみを残し他のパート(ヘッダ/フッタなど)は削除
レイアウト>パート設定、 して、⌘V
3)テーブルのコピペ
MasterDetail2.fmp12 から テーブル[MasterDetailRows] をコピーし、自ファイルにペースト
MasterDetail2.fmp12
⌘⇧D テーブルタブ選択 MasterDetailRows 選択 ⌘C Esc
自ファイル
⌘⇧D テーブルタブ選択 ⌘V OK


4)フィールドのコピペ
MasterDetail2.fmp12 の [customers::zg_foundCount] [customers::zg_searchField] をコピーし、自ファイルのテーブル内にペースト
MasterDetail2.fmp12
⌘⇧D(フィールドタブでcustomersが選択されていることを確認) 下2行選択 ⌘C Esc
自ファイル
⌘⇧D フィールドタブで当該テーブルになっていることを確認)⌘V


5)リレーション定義
[theTable::zg_foundCount] ≧ [MasterDetailRows::n] のリレーションを定義
4の状態のまま(自ファイル)で、リレーションシップタブ選択、リレーションを設定 OK

6)スクリプトのコピペ
MasterDetail2.fmp12 のスクリプトフォルダ [Modules] をコピーし、自ファイルの [スクリプトの管理]画面にペースト
※ レイアウトを貼り付ける前にスクリプトを貼り付けることが重要
MasterDetail2.fmp12
⌘⇧S Modules フォルダ選択 ⌘C
自ファイル
⌘⇧S ⌘V


7)レイアウトのコピペ
MasterDetail2.fmp12 の customers レイアウトで ⌘A(全てを選択)のあと、Shiftキーを押下しながら、真ん中のフィールド(ポータル部分以外)をドラッグしコピーして、手順1で作った新規レイアウトにペースト
MasterDetail2.fmp12
⌘L ⌘A 、⇧押下しながら不要部分をOmit、⌘C
自ファイル
⌘L ⌘V


※ このときレイアウトを広げて良いかという意味のアラートが出たらOK

8)レイアウト(オフスクリーン)の設定
レイアウト欄外(off-screen)にある以下の設定を終える
REQUIRED
- PKフィールド:_id だの kp だの
- zg_foundCount
OPTIONAL
- ポータルで表示するフィールド
※ 表示させるフィールドが余ったら、余ったフィールドのオブジェクト名を変えておく
9)レイアウト(オフスクリーン)の設定
画面右上のQuick検索用のフィールドの設定(xxxx::zg_searchField)
10)レイアウトのスクリプトトリガを設定
レイアウトのスクリプトトリガを以下のように設定
- OnRecordLoad:[Trigger: On Record Load]
- OnRecordCommit:]Trigger: On Record Commit]
- OnLayoutEnter:[Trigger: On Layout Load And Enter Browse Mode]
- OnModeEnter:[Trigger: On Layout Load And Enter Browse Mode]
11)スクリプト [Reset MasterDetail Rows Table] を一度回す
※ Virtual List (VL)では 1,000レコードずつ作成するが、このスクリプトの中で変更できる
その他の注意点
VLのポータルに表示されない場合はとりあえず、一旦閉じてもう一度開くと幸せになれたりする
参考URL
Master Detail - Modular FileMaker
MasterDetail 2.0 - Modular FileMaker
FileMaker Master Detail 2.0 Video - geist interactive