子モデルの同時更新

最終更新日: 2022年4月12日

動作例

「見積」モデルと「見積明細」モデルを例として扱います。
1つの見積伝票にはN件の明細が紐づいています。このとき、見積モデルの更新画面で(紐づいている)N 件の明細を同時に更新することができます。

見積モデルの更新画面(子モデルも同時に更新できる)
  • 子モデル(見積明細)表示部では、最初に「No」という行番号を示す列が表示されます。これはデータベースには含まれません。表示専用です。
  • 「No」の右の項目は、状態を示します。行を編集した場合は "編集有" と表示されます。新規登録した行は "新規" と表示されます。
  • 削除したい場合は、削除のチェックを有効にします。「保存」ボタンクリック時、チェックされていた行が削除されます。

設定方法

子モデル同時更新の設定はすべて(子モデルとなる)見積明細モデルで行います。

見積明細モデルで、外部キーとなる「見積ID」を含めます。

「見積ID」は検索で利用する、を有効にします。

外部キー項目を用意し、検索で利用する

「見積-見積明細」関係では、見積明細からみた見積(親)を付け替えるような操作は(通常の業務では)ありません。そのため外部キー項目「見積ID」はモデル参照型ではなく(親の見積モデルのID値をそのまま保持する)数値型としています。

また、この理由から、見積IDは読み込み専用(編集させない)とし、かつ、画面にも表示させないように隠し項目としています。

※ 画面に表示されている(親の)見積モデルと紐づくのが明確なため、見積IDをあえて表示させることはないでしょう。
見積IDを読み込み専用かつ隠し項目とする

見積明細モデルの「一覧更新画面」を作成します。
あわせて一覧更新画面の設定欄に用意されている、外部キーの同時更新機能を有効にします。(標準では有効になっています。)

一覧更新画面を作成する

見積明細モデルの「検索・一覧画面」で用意される「登録」ボタンを非表示とします。見積明細の追加は、常に見積モデルの登録・更新にあわせて行う、という意図です。

登録ボタンを非表示とする

親である見積モデルの詳細画面に用意される「見積明細 新規登録」ボタンを非表示とします。上と同様に、見積明細の追加は、常に見積モデルの登録・更新にあわせて行う、という意図です。

見積詳細画面の、見積明細新規登録ボタンを非表示とする

メニュー

見積明細に関するボタンはメニューから消去します。見積明細の単独の操作を行わせないようにします。

見積詳細画面の、見積明細新規登録ボタンを非表示とする

登録画面で最初からN行の入力欄を用意する

「外部キーの同時更新機能 > 初期表示数」を指定すると、親モデル(ここでは見積モデル)の新規登録画面を開いたときに、子モデル(ここでは見積明細モデル)の入力行を用意することができます。

初期表示数

子モデルデータのページング表示

親子モデル同時更新画面の子モデル一覧更新にページングを設定できます。 この設定を有効にすることで、子モデルのデータ量が多い時のパフォーマンス向上につながります。

親モデルの詳細表示画面

設定方法

  1. 子モデルの「画面 > 一覧更新 > 外部キーの同時更新機能」より、「ページングを有効にする」にチェックを入れます。
    ページングを有効にする
  2. 子モデルの「画面 > 一覧更新 > 一覧更新画面 > 同時表示数のパターン(数値を指定)」に最大表示数を入力します。
    ページングを有効にする

仕様・制約

関連するページ