子モデルの同時更新最終更新日: 2020年7月5日

例と定義方法

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

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

定義方法

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

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

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

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

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

同じく「顧客ID」項目の詳細定義にて、条件式を「等しい」とします。

図5 条件式を等しいとした場合

注意

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

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

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

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

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

制約

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

初期表示数

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

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

定義方法

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

図9 初期表示数の指定

子モデル一覧表示から直接、子モデルの更新画面へ遷移する

子モデルの任意のデータを選択し、更新画面へ直接、遷移することができます。

図10 更新ボタンが用意された例

定義方法

サポートモデルの「検索・一覧表示>外部キー連携」で、詳細ボタンと更新ボタンをそれぞれ有効にします。(更新ボタンのみ有効にすることもできます。)

図11 詳細ボタンと更新ボタンを有効にする

定義時の注意点

  • 親モデルの詳細表示画面に含まれる子モデル一覧表示では、子モデルの「検索・一覧定義」のボタン設定は反映されません。ここに用意されたボタン設定を利用してください。
  • 子モデル一覧表示で「詳細」ボタンが非表示の場合、行クリックも無効です。(マウスオーバーによって色は変わりますが、クリックしても詳細画面へ遷移しません。)
  • 子モデルの詳細画面や更新画面を用意しない場合、これに対応してボタンも表示されません。
  • 詳細表示および更新ボタンの「表示条件」に含めることができる項目は、子のモデルになります。これは、子の各レコード毎に条件を指定するためです。(一方で、「子モデル全体を表示するかどうか」という表示条件は、親モデルの値を使います。)
  • ボタン名は固定表記のみとなっています。ここに式を指定することはできません。

1つの親に複数の子を紐付ける

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

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

コピー登録

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

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

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

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

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

定義方法

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

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

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

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

コピー登録画面で表示のみを行う8.5.0

コピー登録画面では、子モデルを表示のみとすることができます。"コピー登録画面で表示のみを行う" 設定を有効にします。

図17 コピー登録画面で表示のみを行う

実行すると図17のようになります。

図18 コピー登録画面では、子モデルは表示のみとなる

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

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

スクリプトを使って子モデル毎に異なる初期値を設定する

"親子モデル同時更新機能で親モデル登録時、子モデル毎に異なる初期値を設定する"をお読みください。

仕様・制約

1. コピー登録の場合の子モデルの一覧更新の削除処理は、実際には削除でなく、コピー登録の扱いとなります。このため、削除のチェックボックスはコピーの有無の選択となるため、常に有効となっています。同様に更新処理についても、コピー登録時に値を修正して保存する動作と同様なため、更新も可能としています。