サポート > Wagby定義ファイル > 8 モデル連携 > 1つのモデルで複数の検索画面、登録画面を作成する
1つのモデルに対して複数の一覧表示画面、詳細表示画面、登録画面を作成することができます。
構成イメージ
1つのモデルで複数の画面を作成する場合は、まずメインとなるモデル(以後「メインモデル」と呼びます)を定義した後に、その定義内容をコピーして新しいモデル(以後「サブモデル」と呼びます)を定義します。
1つのメインモデルに対して複数のサブモデルを用意することもできます。
構造イメージを示します。
サブモデルはメインモデルのサブセットの関係にあるので、既存項目(主キーを除く)を削除して減らすことはできますが、メインモデルにない新たな項目を追加定義することはできません。 また、サブモデルを定義する場合、項目名(英語)、項目の型は変更せず、すべてメインモデルに合わせます。
実行例
画面動作を確認します。ここでは、メインモデルに「顧客」、サブモデルに「顧客サブモデル」を用意し、 一方の画面で登録したデータが、もう一方の画面で確認できる例を示します。 まず「顧客サブモデル」から見てみます。
「顧客サブモデル」にデータを登録してみます。
続いて、メインモデルである「顧客」モデルのデータを確認してみます。 図3と比較して、「生年月日」のレイアウトが異なること、「メモ」が「備考」になっていること、 また、サブモデルにはなかった「商談履歴」が表示されていることが分かります。 このように、一部項目名は代わっていますが、顧客のデータとして、サブモデルから登録したデータを閲覧、更新することができます。 もちろん、メインモデル側で登録したデータは、サブモデルでも確認することができます。
設定方法
それでは定義方法を見てみましょう。ここではモデルを2つ定義します。
まず、メインモデルとなる「顧客モデル」を定義します。これは通常のモデル定義であることが分かります。
続いて、この顧客モデルをメインモデルとする「顧客サブモデル」を定義します。
「顧客サブモデル」では、「顧客モデル」の項目数以下で、同じ項目名、項目の型を定義する必要があります。
ほぼ同じ項目の定義になるため、定義をコピーする方法を紹介します。(もちろん手で定義しても構いませんが、定義ミスなどの問題が予想されますので、非推奨です。)
xls-model内で「顧客モデル」が定義されている定義ファイルをコピーし、ファイル名を変更して保存します。
コピー後、サブモデル用の定義ファイルを開きます。「顧客モデル」名「customer」を任意の名前に変更します。 マスタモデルの定義はすでにメインモデルで定義されているため消去します。
モデル名を変更し、「詳細表示」ボタンをクリックすると、次のような確認ダイアログが表示されます。
確認ダイアログで「OK」ボタンをクリックすると、変更したモデル名でモデル定義シートが表示されます。 次に「画面動作定義」ボタンをクリックし、画面動作定義シートを開きます。
画面動作定義シートの「モデルの関連性」-「メインモデル名」にメインモデルとなる顧客モデルの名前「customer」を記述します。
メインモデル指定後、モデル定義シートに戻り、サブモデルのモデル定義を行います。
定義の際、項目名を減らすことはOKですが、項目を追加したり、項目名(英語)、項目の型を変更したりすることはできません。
ここでは次のような変更を行いました。下記の他、表示する画面なども任意で変更することができます。
- モデル名(日本語)を「顧客サブモデル」と変更。
- 「商談履歴」の項目を削除。
- 「個人情報 >生年月日」とレイアウトを変更。
- 「備考」の項目名(日本語)を「メモ」に変更します。











