サポート > Wagby定義ファイル > 8 モデル連携 > ストアモデル同士の絞り込み参照

ストアモデル同士に関係をもたせることで、対象のデータを絞り込む方法を説明します。

実行例

顧客モデルから社員モデルの社員名を参照する場合、参照先の社員数が多いとコンボボックスの内容が増えるため、使いにくくなってしまいます。 Wagbyではこのような場合に、まず「部署」を選択し、その部署に所属する「社員」を選択するといった絞り込み機能を実現することができます。

次の例では、「部署」モデル、「社員」モデル、「顧客」モデルを用意し関連を持たせます。 先に部署情報と社員情報を登録しておきます。 続いて、顧客の新規登録画面にて「営業担当部署」を選択します。


図1 新規登録画面における動作イメージ (1)

すると下部の「営業担当」項目では、該当する部署の社員のみが表示されるようになります。


図2 新規登録画面における動作イメージ (2)

検索画面でもこの機能を利用できます。


図3 検索条件部での動作イメージ

ここでは「コンボボックス」と「コンボボックス」の例を紹介しましたが、「コンボボックス」-「チェックボックス」、「ラジオボタン」-「コンボボックス」といった組み合わせも実現することができます。
次の図は、「コンボボックス」-「チェックボックス」の組み合わせの例です。


図4 コンボボックス-チェックボックスの組み合わせ

設定方法

部署モデルを定義する

はじめに「部署(department)」モデルを用意します。このとき、部署モデルはマスタモデルではなく、ストアモデルとして定義してください。 項目は「部署ID(deptid)」と「部署名(deptname)」を用意します。


図5 部署モデルの定義

社員モデルを定義する

次に「社員(employee)モデル」を定義します。社員の所属する部署の項目を「他のストアモデル参照」と定義し、 「部署モデル(department)」を参照するようにします。


図6 社員モデルの定義

項目「部署」のモデル項目定義シートを開き、参照先モデルの主キーと内容を指定します。参照モデルの主キーには「部署(department)」モデルの主キー「部署ID(deptid)」とします。 参照モデルの内容(表示用の項目)は「部署名(deptname)」を指定します。


図7 部署モデルの参照を設定

顧客モデルを定義する

それでは、顧客(customer)ストアモデルを定義します。 顧客モデルでは、部署モデルを参照する「営業担当部署(dept)」と、社員モデルを参照する「営業担当(sales)」を用意します。


図8 顧客モデルの定義

この「営業担当部署」と「営業担当」は、ともにストアモデル参照の項目なので、それぞれモデル定義シートで参照先主キーと表示項目を指定します。

まず「営業担当部署(dept)」のモデル定義シートを開きます。 「参照モデルの主キー」は部署モデルの主キー「部署ID(deptid)」とします。「参照モデルの内容」は同モデルの「部署名(deptname)」を指定します。


図9 営業担当部署項目のモデル項目定義シート

次に「営業担当(sales)」のモデル項目定義シートを開き、設定を行います。 「参照先モデルの主キー」及び「参照モデルの内容」のほか、「参照モデルの絞込み項目」で先の「営業担当部署(dept)」を指定します。 この設定により「営業担当」は「営業担当部署」で絞り込まれた値が用意されるようになります。


図10 営業担当項目のモデル項目定義シート

制約

以下の場合は、絞り込み項目に指定することはできません。

  • 「参照モデルの絞り込み項目」に指定する項目が定義されているモデルの主キー名が「id」の場合(上記例では、部署モデルの「deptid」が「id」の場合)
  • 項目の型が「他のストアモデルの参照(チェックボックス)」の場合(「チェックボックス」-「コンボボックス」などといった組み合わせは不可)
  • 指定した項目の参照先が連結主キーモデルの場合
  • 繰り返しコンテナの項目