一つの親に複数の子を紐づける
最終更新日: 2020年3月14日
R8 | R9
外部キーによるモデルの連携は、子を複数指定することができます。顧客モデルを親とし、二つの子「購買履歴」「サポート」モデルを用意した例を図1,2に示します。
モデルID (英語) の辞書順に並びます。
今回用意した購買履歴モデルとサポートモデルの定義を図3,図4に示します。
「顧客ID」項目には、外部キーの設定を行います。
「参照先項目名」は、子モデル側の項目が同じ名前の場合、省略できます。(今回は同じ "customerid" としたため、省略することができます。)
親モデル詳細画面での子モデルは標準ではタブに格納されます。(図1,図2)
子モデルをタブではなく、下図のように縦に並べて表示させることもできます。
子モデルの画面定義を修正します。
「画面 > 検索・一覧表示 > 外部キー連携 > 表示方式 > タブレイアウト」のチェックをはずします。標準では、チェックされています。
(今回の例のように)複数の子モデルがある場合、すべての子モデルでタブレイアウトを使うか、使わないかの設定を行ってください。混ぜることは可能ですが、通常はどちらかに統一します。
一つの親モデルに複数の子モデルが紐づく場合、表示順序は「子モデルのモデルIDの辞書順」となります。図9は、問い合わせ(ask)と、サポート(support)というモデルIDの例です。
この順序を変更することができます。
タブレイアウトを利用しない場合も、この表示順序が適用されます。
「画面 > 検索・一覧表示 > 外部キー連携」の「タブの表示位置」を次の書式で指定します。
一つの子に複数の親を紐づける設定を行なった場合、次のようにコンマで区切って指定することができます。
位置番号は「1」から数えます。
例
親モデルにおける表示順
定義方法
外部キーに指定した項目の型は、参照先の項目の型と同じ型で指定します。ここでは「顧客ID」を「数値」型と指定しています。
「外部キー>モデル名」に、親モデルを指定します。
子モデル表示レイアウトの変更(タブ表示と一覧表示)
定義方法
注意
子モデル表示の並び
定義方法
Parent Model ID:Position
Parent Model ID:Position,Parent Model ID:Position,...