連携に関する設定
最終更新日: 2021年5月31日
R8 | R9
親モデル詳細画面での子モデルは標準ではタブに格納されます。子モデルをタブではなく、縦に並べて表示させることもできます。
詳細は"一つの親に複数の子を紐づける > 子モデル表示レイアウトの変更(タブ表示と一覧表示)"をお読みください。
「顧客」モデルに外部キーで連携するモデル、「サポート」の一覧表示部分のタイトルをリンクにすることができます。
リンククリックにより「サポート」の一覧表示画面に遷移します。「顧客」の詳細表示画面で確認していた一覧を確認することができます。
次に検索画面をみてみましょう。図1で表示していた「顧客ID」が自動的にセットされていることがわかります。
サポートモデル側(子)で、外部キーとしている「顧客ID」(顧客モデルの主キー)を検索条件に指定します。
外部キー項目の、モデル項目詳細定義ダイアログを開きます。
「データベースの詳細>登録時に値をデータベースに保存する」を有効にします。
本設定は、下記の条件をすべて満たしている必要があります。
子モデルの一覧表示名を「顧客別サポート履歴一覧」に変更した例を示します。
サポートモデルの「検索・一覧表示>外部キー連携>一覧名」を設定します。
子モデルの一覧表示件数を最大1件と設定した例を示します。
表示されなかったデータは、サポートモデルの検索画面で確認することができます。
サポートモデルの「検索・一覧表示>外部キー連携>最大表示件数」を設定します。この例では "1" としています。
この設定は表示数を減らしますが、データベースアクセス数を削減するものではありません。例えば1つの親に1000件の子が紐づく場合、最大表示件数を10としてもデータベースからは1000件取得します。親の方で、子モデルのデータ全体を使った計算式を使う場合には子モデル全データの取得が必要なためです。
図8に対して、説明文を加えた例を図11に示します。
サポートモデルの「検索・一覧表示>外部キー連携>説明文」を設定します。同時に、スタイルを指定することもできます。
外部キー連携における子モデルの作成は、親モデルの詳細表示画面に表示される「新規作成」ボタンを用いることができます。このボタンを表示しない方法を説明します。
サポートモデルの「新規登録>外部キー連携>親モデルの詳細表示画面に表示する新規登録ボタン」を無効にします。(標準では有効になっています。)
ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」で説明しています。
子モデルの詳細画面に用意される、親モデルへの一覧表示・詳細画面へ遷移するボタンを表示しないようにすることができます。
サポートモデルの「詳細表示>外部キー連携>親モデルの一覧表示ボタン」および「詳細表示>外部キー連携>親モデルの詳細表示ボタン」を無効にします。(標準では有効になっています。)
ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」で説明しています。
図14の設定(「新規作成」ボタンの非表示)に加え、子モデル一覧表示も行わないように設定することもできます。図17のように、親子モデル関係の存在が画面上からは認識できません。
サポートモデルの「検索・一覧表示>外部キー連携>親モデルの詳細表示画面に表示するデータ一覧」の「表示する」設定を解除します。
ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」で説明しています。
親モデルの値によって、子モデルの表示を制御することができます。例えば、親モデルの項目 item1 の値が 1 のときのみ子モデルを表示する場合は、子モデルの "検索・一覧表示 > 外部キー連携 > 表示条件" を次のように設定します。
この設定を応用することで、子モデルのデータが未登録(データ数が0件)の場合に、親画面の詳細画面に子モデルのタイトルを表示しないように設定することができます。
例えば、子モデルのモデルIDが "support" のとき、子モデルの "検索・一覧表示 > 外部キー連携 > 表示条件" を次のように設定します。
外部キー関係では、親モデルのデータを削除したとき、子のモデルも同時に削除されます。
図19,図20で、親モデル「顧客」を削除する例を示します。
ここでサポートモデルの確認を行います。 子モデル(サポート)も削除されていることがわかります。
「その他>モデルの関連性>親モデルの削除時に自動的に削除する」を確認します。標準では有効になっています。この設定を解除すると、親モデルのデータを削除しても子モデルは残ります。(ただし、このときは紐づく親のデータは存在しないという状態になります。)
親-子-孫という関係では、親を削除したときにそれに紐付くすべての子孫が削除されます。
子モデルの登録・更新・削除のタイミングで、親モデル側の項目値の再計算と再保存処理を行わせることができます。
子モデルとなるサポートの件数を、親モデルである顧客で管理した例を図23に示します。
サポートを追加すると、「サポート件数」の値も増加します。この登録・更新・削除のタイミングで、親モデル側の項目値の再計算と再保存処理が行われます。
親となる顧客モデルに「サポート件数」項目を追加します。データベースに保存するとし、式はCOUNT関数を用います。
サポートモデルの「画面>その他>変更時に親モデルも更新する」を有効にします。(標準で、この値は有効になっています。)
この設定は「サポート件数」項目がデータベースに保存するとなっているため機能します。データベース非保存の場合は、表示時に常に再計算されるため、本設定に関わらず計算は実行されます。
この設定は、親がさらに数珠つなぎとなっている場合、先祖まで遡って再計算します。
なお、親に紐づく当該子データの「兄弟」データは再計算の対象となりません。
子モデル単体での登録・更新時は、本処理は行われません。例えば子モデルをメール受信により登録するような場合、親モデルの再計算は行われません。
親モデルの登録・更新・削除のタイミングで、子モデル側の項目値の再計算と再保存処理を行わせることができます。
次の条件が成立した場合に、子の再計算機能が有効になります。
子モデル表示のレイアウト
一覧のタイトルをリンクにする
定義方法
設定上の注意
子モデル一覧名を変更する
定義方法
一覧データの表示件数を制限する
定義方法
仕様
説明文を表示する
定義方法
ボタンの表示を制御する
子モデル新規作成
親モデルへの一覧表示・詳細表示
親モデルの画面に子モデルのデータ一覧を表示しない
定義方法
条件によって子モデルを表示する
${item1}==1
[応用] 子モデルのデータが存在しないとき、タイトルを表示しない
COUNT(${support_lp})!=0
削除レベルの指定
定義方法
ワンポイント
再計算の指定(親)
定義方法
COUNT(${support_lp})
ワンポイント
注意
再計算の指定(子)