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
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/a7415c31-a6e1-4da0-8486-a7785feb783c.png)
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/88ba9644-002b-4200-8379-6117610a7247.png)
4)フィールドのコピペ
MasterDetail2.fmp12 の [customers::zg_foundCount] [customers::zg_searchField] をコピーし、自ファイルのテーブル内にペースト
MasterDetail2.fmp12
⌘⇧D(フィールドタブでcustomersが選択されていることを確認) 下2行選択 ⌘C Esc
自ファイル
⌘⇧D フィールドタブで当該テーブルになっていることを確認)⌘V
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/e28b1df2-602a-451d-8a21-ca1e26401360.png)
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/fc55394e-d7bb-44d4-9a11-a774ab22307c.png)
5)リレーション定義
[theTable::zg_foundCount] ≧ [MasterDetailRows::n] のリレーションを定義
4の状態のまま(自ファイル)で、リレーションシップタブ選択、リレーションを設定 OK
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/b4592cb6-1df1-4530-9d5f-a8e0b82241de.png)
6)スクリプトのコピペ
MasterDetail2.fmp12 のスクリプトフォルダ [Modules] をコピーし、自ファイルの [スクリプトの管理]画面にペースト
※ レイアウトを貼り付ける前にスクリプトを貼り付けることが重要
MasterDetail2.fmp12
⌘⇧S Modules フォルダ選択 ⌘C
自ファイル
⌘⇧S ⌘V
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/d66714dd-41f5-4745-8947-82e8ab12b275.png)
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/959a49a4-20bc-4f6a-9901-829cb99c024d.png)
7)レイアウトのコピペ
MasterDetail2.fmp12 の customers レイアウトで ⌘A(全てを選択)のあと、Shiftキーを押下しながら、真ん中のフィールド(ポータル部分以外)をドラッグしコピーして、手順1で作った新規レイアウトにペースト
MasterDetail2.fmp12
⌘L ⌘A 、⇧押下しながら不要部分をOmit、⌘C
自ファイル
⌘L ⌘V
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/a612c305-5206-480c-ada4-efe51acf5c64.png)
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/d54aa12d-1633-4e15-810a-d74f255e64f4.png)
※ このときレイアウトを広げて良いかという意味のアラートが出たらOK
![](https://cdn-images.postach.io/8951c75c-b490-4856-a23b-522e249641b5/3858ab7e-4904-4182-9cae-0e6c106a4486/8acccbf7-b3aa-428c-ac74-63e30706de50.png)
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