サポート > リポジトリ > 親子関係 > 子モデルの同時更新

外部キー関係において、親モデルの更新画面上で直接、子モデルの更新を行うことができます。

「顧客」モデルと「サポート」モデルを例として扱います。
1人の顧客にはN件のサポート情報が紐づいています。このとき、顧客モデルの更新画面で(紐づいている)N 件のサポート情報を更新することができます。

図1 顧客モデルの更新画面(子モデルも同時に更新できる)

定義方法

設定はすべて(子モデルとなる)サポートモデルで行います。親モデル側の設定はありません。

サポートモデルで、外部キーとなる「顧客ID」を検索条件に含めます。

図2 外部キーを検索条件に含める

「顧客ID」は、登録時に値をデータベースに保存する設定とします。

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

同じく「顧客ID」項目の詳細定義にて、範囲検索を有効とするか、もしくは条件式を「等しい」とします。 つまり、図4または図5のいずれかを設定します。

図4 範囲検索を有効とした場合
図5 条件式を等しいとした場合
この設定の意図は、外部キーの参照先を特定できるようにするためです。よって例えば、外部キーが「文字型」の場合、「部分一致検索」を指定することはできません。

サポートモデルの「一覧更新画面」を作成するようにします。

図6 一覧更新画面を作成する

一覧更新画面の設定欄に用意されている、外部キーの同時更新機能を有効にします。(標準では有効になっています。)

図7 外部キーの同時更新機能を有効にする

制約

本機能は「一覧更新画面」を使って実現しています。そのため、本機能の仕様と制約は一覧更新画面に準じます。

「入力チェック」ボタンを使うと、子モデルの入力チェックを行うことができます。(一覧更新画面の入力チェック機能と同等です。)

図8 入力チェック

入力チェックボタンの表示制御7.9.2

入力チェックボタンの表示制御を行うことができます。親モデル側の登録・更新画面の設定になります。

図9 入力チェックボタン表示制御

子モデルの初期表示数を指定することができます。 親モデル(ここでは顧客モデル)の登録画面では、図10のように指定した初期表示数分だけレコードが表示されるようになります。

図10 顧客の登録画面。初期表示数が反映されている。

定義方法

サポートモデルの一覧更新画面設定で、「外部キーの同時更新機能>初期表示数」を設定します。

図11 初期表示数の指定

外部キーによるモデルの連携は、複数指定することができます。このとき、子モデル同時更新も動作します。

図14 1つの親モデルに複数の子モデルを定義する

外部キー関係にあるモデルにおいて、コピー登録を行うと親モデルに紐づく子モデルもすべてコピーされます。

図15では、顧客モデルにコピー登録機能を用意しました。 コピーボタンをクリックすると、コピー登録画面に遷移します。

図15 顧客モデルのコピー登録ボタン

顧客モデルのコピー登録画面では、関連するサポートのデータがある場合、これも同時にコピーされていることが分かります。(図16)

図16 顧客のコピー登録画面。関連するサポートのデータもコピーされている。

定義方法

顧客モデルでは、「検索・一覧表示>ボタン表示>コピー登録ボタン」を有効にします。

図17 コピー登録ボタンを用意する

サポートモデルでは、「一覧更新>外部キーの同時更新機能>同時更新を有効にする」を設定するとともに、「親モデルのコピー時に子モデルもコピーする」を設定します。(標準ではこの設定は有効になっています。)

図18 親モデルのコピー時に子モデルもコピーする設定

複数の外部キー子モデルをもつ場合

二つ以上の外部キー子モデルをもつ親モデルでも、本コピー機能は動作します。

"業務ロジック > 初期値 > [例] 親子モデル同時更新機能で親モデル登録時、子モデル毎に異なる初期値を設定する"をお読みください。

Wagby Developer Day 2017