連携に関する設定

最終更新日: 2022年5月24日
R8 | R9

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

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

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

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

タイトルがリンクになる

リンクをクリックすると、「サポート」の検索・一覧表示画面に遷移します。
「顧客ID」が自動的にセットされており、「顧客」の詳細表示画面で確認していたデータと紐づく子モデルデータ一覧を確認できます。

一覧表示画面に遷移する

定義方法

  1. サポートモデル側(子)で、外部キーとしている「顧客ID」(顧客モデルの主キー)を検索条件に指定します。
    (サポートモデルの)顧客IDを検索条件に含める
  2. 外部キー項目の、モデル項目詳細定義ダイアログを開きます。
    「データベースの詳細 > 登録時に値をデータベースに保存する」を有効にします。
    登録時に値をデータベースに保存する設定
  3. 続いて、外部キー項目の「検索制御 > 共通 > 条件式」を「等しい」に設定します。
    条件式の設定を変更する
  4. サポートモデルの「画面 > 検索・一覧表示 > 外部キー連携 > 表示方式」で、「タブレイアウト」のチェックをはずします。
    (タブレイアウトの場合、動作しません)
    登録時に値をデータベースに保存する設定

    設定上の注意

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

    • 外部キーが検索項目として定義されていること。
    • 子モデルはタブレイアウトを使用しないこと。
    • 子モデルに検索画面があること。
    • 外部キーの検索条件は、項目詳細定義の「検索制御 > 共通 > 条件式」の設定を「等しい」とすること。
      (外部キーが文字列型の場合、標準で「条件式」設定が「文字列の部分一致」となります。この場合も「等しい」に変更してください)
    • 外部キーを除く検索項目に必須チェックが定義されていないこと。具体的には、項目詳細定義の検索制御タブの「必須チェック」が定義されていないこと。

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

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

一覧表示名の変更

定義方法

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

一覧名の設定

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

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

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

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

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

定義方法

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

最大表示件数の設定

仕様

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

説明文を表示する

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

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

定義方法

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

説明文とスタイルの指定

ボタンの表示を制御する

子モデル新規作成ボタン

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

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

定義方法

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

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

ボタン名や表示条件を設定することもできます。詳細は「画面機能 > ボタン名と表示条件のカスタマイズ」をお読みください。

親モデル一覧表示・詳細表示ボタン

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

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

定義方法

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

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

ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」をお読みください。

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

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

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

定義方法

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

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

ボタン名や表示条件を設定することもできます。詳細は「画面機能>ボタン名と表示条件のカスタマイズ」をお読みください。

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

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

${item1}==1

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

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

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

COUNT(${support_lp})!=0

削除レベルの指定

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

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

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

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

定義方法

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

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

ワンポイント

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

再計算の指定(親)

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

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

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

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

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

定義方法

  1. 親となる顧客モデルに「サポート件数」項目を追加します。
    「値をデータベースに保存する」を有効とし、自動計算式はCOUNT関数を用います。
    COUNT(${support_lp})
    サポート件数項目の定義
  2. サポートモデルの「画面>その他>変更時に親モデルも更新する」を有効にします。(標準では有効になっています)
    変更時に親モデルも更新する設定
    この設定は「サポート件数」項目がデータベースに保存するとなっているため機能します。データベース非保存の場合は、表示時に常に再計算されるため、本設定に関わらず計算は実行されます。

    ワンポイント

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

    注意

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

再計算の指定(子)

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

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

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

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