連携に関する設定

最終更新日: 2021年5月31日
R8 | R9

子モデル表示のレイアウト

親モデル詳細画面での子モデルは標準ではタブに格納されます。子モデルをタブではなく、縦に並べて表示させることもできます。 詳細は"一つの親に複数の子を紐づける > 子モデル表示レイアウトの変更(タブ表示と一覧表示)"をお読みください。

一覧のタイトルをリンクにする

「顧客」モデルに外部キーで連携するモデル、「サポート」の一覧表示部分のタイトルをリンクにすることができます。

図1 タイトルがリンクになる

リンククリックにより「サポート」の一覧表示画面に遷移します。「顧客」の詳細表示画面で確認していた一覧を確認することができます。

図2 一覧表示画面に遷移する

次に検索画面をみてみましょう。図1で表示していた「顧客ID」が自動的にセットされていることがわかります。

図3 サポートの検索画面

定義方法

サポートモデル側(子)で、外部キーとしている「顧客ID」(顧客モデルの主キー)を検索条件に指定します。

図4 (サポートモデルの)顧客IDを検索条件に含める

外部キー項目の、モデル項目詳細定義ダイアログを開きます。 「データベースの詳細>登録時に値をデータベースに保存する」を有効にします。

図5 登録時に値をデータベースに保存する設定

設定上の注意

本設定は、下記の条件をすべて満たしている必要があります。

  • 子モデルはタブによる表示を使わない。縦に並べて一覧表示する方式とすること。
  • 子モデルに検索画面があること。
  • 外部キーが検索項目として定義されていること。
  • 外部キーの検索条件は、項目詳細定義の検索制御タブの「条件式」設定が「等しい」となっていること。
  • 外部キーが文字列型の場合、標準では 「条件式」設定が「文字列の部分一致」となっているので、「等しい」に定義変更すること。
  • 外部キーを除く検索項目に必須チェックが定義されていないこと。具体的には、項目詳細定義の検索制御タブの「必須チェック」が定義されていないこと。

子モデル一覧名を変更する

子モデルの一覧表示名を「顧客別サポート履歴一覧」に変更した例を示します。

図6 一覧表示名の変更

定義方法

サポートモデルの「検索・一覧表示>外部キー連携>一覧名」を設定します。

図7 一覧名の設定

一覧データの表示件数を制限する

子モデルの一覧表示件数を最大1件と設定した例を示します。

図8 子モデルの最大表示件数を1件とする

表示されなかったデータは、サポートモデルの検索画面で確認することができます。

図9 サポートモデルの検索画面で他のデータを確認する

定義方法

サポートモデルの「検索・一覧表示>外部キー連携>最大表示件数」を設定します。この例では "1" としています。

図10 最大表示件数の設定

仕様

この設定は表示数を減らしますが、データベースアクセス数を削減するものではありません。例えば1つの親に1000件の子が紐づく場合、最大表示件数を10としてもデータベースからは1000件取得します。親の方で、子モデルのデータ全体を使った計算式を使う場合には子モデル全データの取得が必要なためです。

説明文を表示する

図8に対して、説明文を加えた例を図11に示します。

図11 子モデル一覧表示に説明文を加える

定義方法

サポートモデルの「検索・一覧表示>外部キー連携>説明文」を設定します。同時に、スタイルを指定することもできます。

図12 説明文とスタイルの指定

ボタンの表示を制御する

子モデル新規作成

外部キー連携における子モデルの作成は、親モデルの詳細表示画面に表示される「新規作成」ボタンを用いることができます。このボタンを表示しない方法を説明します。

図13 新規作成ボタンを非表示とした例

サポートモデルの「新規登録>外部キー連携>親モデルの詳細表示画面に表示する新規登録ボタン」を無効にします。(標準では有効になっています。)

図14 親モデルの詳細表示画面に表示する新規登録ボタンの設定

ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」で説明しています。

親モデルへの一覧表示・詳細表示

子モデルの詳細画面に用意される、親モデルへの一覧表示・詳細画面へ遷移するボタンを表示しないようにすることができます。

図15 親モデルへの遷移用ボタンを非表示とした例

サポートモデルの「詳細表示>外部キー連携>親モデルの一覧表示ボタン」および「詳細表示>外部キー連携>親モデルの詳細表示ボタン」を無効にします。(標準では有効になっています。)

図16 親モデルの一覧表示ボタン、詳細表示ボタンの設定

ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」で説明しています。

親モデルの画面に子モデルのデータ一覧を表示しない

図14の設定(「新規作成」ボタンの非表示)に加え、子モデル一覧表示も行わないように設定することもできます。図17のように、親子モデル関係の存在が画面上からは認識できません。

図17 新規作成ボタンを作成せず、子モデル一覧表示も非表示とした例

定義方法

サポートモデルの「検索・一覧表示>外部キー連携>親モデルの詳細表示画面に表示するデータ一覧」の「表示する」設定を解除します。

図18 親モデルの詳細表示画面に表示するデータ一覧の設定

ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」で説明しています。

条件によって子モデルを表示する

親モデルの値によって、子モデルの表示を制御することができます。例えば、親モデルの項目 item1 の値が 1 のときのみ子モデルを表示する場合は、子モデルの "検索・一覧表示 > 外部キー連携 > 表示条件" を次のように設定します。

${item1}==1

[応用] 子モデルのデータが存在しないとき、タイトルを表示しない

この設定を応用することで、子モデルのデータが未登録(データ数が0件)の場合に、親画面の詳細画面に子モデルのタイトルを表示しないように設定することができます。

例えば、子モデルのモデルIDが "support" のとき、子モデルの "検索・一覧表示 > 外部キー連携 > 表示条件" を次のように設定します。

COUNT(${support_lp})!=0

削除レベルの指定

外部キー関係では、親モデルのデータを削除したとき、子のモデルも同時に削除されます。 図19,図20で、親モデル「顧客」を削除する例を示します。

図19 顧客データを削除する
図20 顧客データの削除に成功

ここでサポートモデルの確認を行います。 子モデル(サポート)も削除されていることがわかります。

図21 子モデル「サポート」も同時に削除されている

定義方法

「その他>モデルの関連性>親モデルの削除時に自動的に削除する」を確認します。標準では有効になっています。この設定を解除すると、親モデルのデータを削除しても子モデルは残ります。(ただし、このときは紐づく親のデータは存在しないという状態になります。)

図22 親モデルの削除時に自動的に削除する設定

ワンポイント

親-子-孫という関係では、親を削除したときにそれに紐付くすべての子孫が削除されます。

再計算の指定(親)

子モデルの登録・更新・削除のタイミングで、親モデル側の項目値の再計算と再保存処理を行わせることができます。

子モデルとなるサポートの件数を、親モデルである顧客で管理した例を図23に示します。

図23 サポート件数項目を追加する

サポートを追加すると、「サポート件数」の値も増加します。この登録・更新・削除のタイミングで、親モデル側の項目値の再計算と再保存処理が行われます。

図24 サポート件数項目が再計算される

定義方法

親となる顧客モデルに「サポート件数」項目を追加します。データベースに保存するとし、式はCOUNT関数を用います。

COUNT(${support_lp})
図25 サポート件数項目の定義

サポートモデルの「画面>その他>変更時に親モデルも更新する」を有効にします。(標準で、この値は有効になっています。)

図26 変更時に親モデルも更新する設定

この設定は「サポート件数」項目がデータベースに保存するとなっているため機能します。データベース非保存の場合は、表示時に常に再計算されるため、本設定に関わらず計算は実行されます。

ワンポイント

この設定は、親がさらに数珠つなぎとなっている場合、先祖まで遡って再計算します。 なお、親に紐づく当該子データの「兄弟」データは再計算の対象となりません。

注意

子モデル単体での登録・更新時は、本処理は行われません。例えば子モデルをメール受信により登録するような場合、親モデルの再計算は行われません。

再計算の指定(子)

親モデルの登録・更新・削除のタイミングで、子モデル側の項目値の再計算と再保存処理を行わせることができます。

次の条件が成立した場合に、子の再計算機能が有効になります。

  • 子モデルの一覧更新画面が作成されている。
  • 子モデルの一覧更新で外部キーの同時更新機能が有効になっている。

詳細は"子モデルの同時更新"をお読みください。