サポート > リポジトリ > 他モデルの参照 > 他項目の値で選択肢を絞り込む

ja | en

他項目の値によってモデル参照の選択肢を絞り込むことができます。

設定イメージ

「当社担当部署」を指定すると「当社担当者」の選択肢が変わる例を示します。

図1 設定イメージ

動作例

図2は担当部署を選択していない状態です。このとき、担当者はいずれも選択できません。

図2 担当部署を決定しないと担当者の選択肢も表示されない

担当部署を総務部とすると、総務部に所属する担当者が選択肢として表示されます。

図3 担当部署に総務部を選択する

同じく担当部署を営業部とすると、営業部に所属する担当者が選択肢として表示されます。

図4 担当部署に営業部を選択する

定義方法

モデルは「スタッフ」「職種」「部署」「顧客」を用意しています。なお「職種」は選択肢モデルなので説明を割愛します。

図5 用意したモデル

「部署」モデルは主キー「部署ID」と、「部署名」を用意します。

図6 部署モデルの定義

「スタッフ」モデルは「部署」モデルを参照します。(図7,図8)

図7 スタッフモデルの定義
図8 スタッフモデルの部署項目の定義

「顧客」モデルは「当社担当部署」として部署モデルを、「当社担当者」としてスタッフモデルをそれぞれ参照します。(図9,図10,図11)

図9 顧客モデルの定義
図10 顧客モデルの部署項目の定義
図11 顧客モデルのスタッフ項目の定義

ここで絞り込みの設定を行います。「当社担当者」項目の詳細ダイアログから「入力制御>モデル参照(絞込)」を設定します。

図12 モデル参照(絞込)の設定
項目名
自モデル(ここでは顧客モデル)内の、どの項目が絞込の元かを指定します。
絞込条件
一致していたものを選択するため "等しい" を指定します。
参照先項目名
「当社担当者」項目はスタッフモデルを参照しています。スタッフモデル側の部署項目である "dept" を指定します。
未入力のときの動作
図1にあるように、絞込元が未選択のときは選択肢を用意しないため、"選択肢を作らない" を指定します。

設定イメージ

図13に示す絞り込みの例を説明します。絞り込み条件を二つ用意します。

図13 設定イメージ

動作例

選択肢モデル「職種」が次のように用意されているとします。"一般" という職種のIDは "4" です。

図14 職種の情報

絞込条件に「職種が一般のみ」という条件を追加しました。図4に比較すると選択肢が減っています。

図15 営業部かつ一般職種のみが選択肢として用意される

定義方法

顧客モデルの当社担当者項目の絞込条件を追加します。(図16) 職種(title)のID値が"4"という固定条件を加えています。

図16 職種の条件を加える

設定イメージ

絞り込みむための条件に、繰り返しコンテナ内の項目を指定することができます。

図17 設定イメージ

動作例

4人の社員を登録しておきます。(図18)

図18 社員データ

"プロジェクト1" と "プロジェクト2" にそれぞれ社員を二名ずつ割り当てます。(図19,図20)

図19 プロジェクト1にユーザー1とユーザー2を割り当てる
図20 プロジェクト2にユーザー3とユーザー4を割り当てる

作業実績を登録します。選択した社員に連動して、プロジェクトの選択肢が絞り込まれます。(図21,図22)

図21 ユーザー1を選択した場合は、プロジェクト1が選択できるようになる

図22 ユーザー3を選択した場合は、プロジェクト2が選択できるようになる

定義方法

モデルは「社員」「作業プロジェクト」「作業実績」を用意しています。

図23 モデル一覧

「社員」モデルは ID と名称から構成されています。

図24 社員モデル

「作業プロジェクト」モデルには、1つのプロジェクトに複数名の社員が連なるようになっています。繰り返しコンテナで実現します。

図25 作業プロジェクトモデル

「作業実績」モデルのプロジェクト項目に絞り込みを設定します。

図26 作業実績モデル

(同じモデルに含まれる)「社員ID」項目が、(参照先モデル「作業プロジェクト」の項目)「社員ID (member/staffid)」に含まれているもの、という絞り込みルールを設定します。

図27 絞り込みの設定

動作の仕組み

本機能は、指定した絞り込み条件を SQL の where 句に含めます。すなわち絞り込み処理はデータベースで行います。

もう一つの絞り込み方法である「参照モデル同士の関係性で選択肢を絞り込む」は絞り込み元データをいったんすべてメモリに取り込み、Javaプログラムで条件判定を行います。

絞り込み元の値が変わった場合の動作

絞り込み元の値を変えた場合(上記例では「当社担当部署」の値を変更した場合)、「当社担当者」として選択されていた値は維持されます。

これは絞り込み元の値をクリアした場合も同様です。絞り込み先の選択肢は維持されます。

(将来のWagbyで、絞り込み先の選択肢を維持するかクリアするかを選択できるように拡張する計画です。)

固定値と特殊表記now

日付型項目の絞り込みでは、固定値として特殊表記 nowを利用することができます。本日の日付による絞り込みが行えます。

サジェスト項目

サジェスト項目に絞り込みは設定できません。(設定しても機能しません。)

繰り返しコンテナ利用時の制約

絞り込み先項目がコンテナ外項目として定義され、かつ、絞り込み元項目が繰り返しコンテナ内項目として定義されている場合は、絞り込みとして利用されるのはコンテナの1行目のデータのみとなります。

2行目以降のデータは絞り込みとしては利用されず、無視されます。

絞り込みが適切に行われない場合、次の点をご確認ください。

  • 複数の絞り込み条件を指定している場合、その中の一つでも値が "null" となっていた場合、絞り込みが行えません。絞り込み条件に用いる値が適切かどうかを確認してください。
  • 絞り込み条件に用いる項目が「参照連動」や「計算式」によって求められる場合、当該絞り込み処理の前にこれらの値が確定している必要があります。未確定の場合は "null" となるため、絞り込みが行えません。設計情報の記載順を工夫することで、参照連動の順序が変わる場合があります。通常は、参照連動の連動元項目が絞込を定義している項目より前に配置するとよいでしょう。
  • 一覧表示画面および一覧更新画面に絞込設定したモデル参照項目を含める場合、絞り込み項目も一覧表示に含める必要があります。
ja | en