他項目の値で選択肢を絞り込む

最終更新日: 2021年6月1日
R8 | R9

例と定義方法

設定イメージ

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

図1 設定イメージ

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

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

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

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

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

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

定義方法

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

図5 用意したモデル

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

図6 部署モデルの定義

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

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

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

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

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

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

無効となった選択肢の選択状態を維持しない

標準では、絞り込み元の値を変えた場合(上記例では「当社担当部署」の値を変更した場合)「当社担当者」として選択されていた値は維持されます。 (絞り込み元の値をクリアした場合も同様に、絞り込み先の選択肢は維持されます。)

図13 営業部担当者が選択済みの状態で、部署を変更する
図14 選択されていた担当者は維持されるが、無効化されたマークが付与される

この動作を変更することができます。「無効となった選択肢の選択状態を維持しない」を有効にしたとき、絞り込み元の値を変えると選択肢はクリアされます。(この機能はリストボックス-リストボックスの組み合わせでのみ動作します。)

図15 無効となった選択肢の選択状態を維持しない設定

この設定を行うと、絞り込み元の値を変えた場合、選択されていた候補は消去されます。

図16 選択されていた担当者は維持されない

複数の条件で絞込む

複数の絞り込み条件を指定することができます。条件はすべて AND (「かつ」)で絞り込みが行われます。

設定イメージ

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

図17 設定イメージ

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

図18 職種の情報

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

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

定義方法

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

図20 職種の条件を加える

繰り返しコンテナ内の項目で絞り込む

設定イメージ

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

図21 設定イメージ

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

図22 社員データ

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

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

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

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

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

定義方法

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

図27 モデル一覧

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

図28 社員モデル

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

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

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

図30 作業実績モデル

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

図31 絞り込みの設定

固定値に関数を利用する8.3.0

絞り込み条件の固定値に関数を指定することができます。図32,33はログオン者が所属するグループによって「報告部署」項目が絞り込まれた例です。

図32 システム管理者は複数のグループに所属している
図33 経理グループ所属ユーザでログオンすると、経理グループで絞り込まれる

定義方法

「報告部署」項目はグループモデル(jgroup)をリストボックス形式で参照する、としています。

図34 報告部署項目をモデル参照項目として用意する

絞り込みの設定を行います。固定値ですが、値部分に関数を用いています。

図35 絞り込みの設定

利用できる関数

"検索制御 > 暗黙条件 > 関数を利用する" と同じです。こちらをお読み下さい。

参照先モデルが「検索画面」の場合

参照先モデルが検索画面の場合、固定値に式を記述することはできません。詳細は「検索画面>メインウィンドウの入力値を検索条件として再利用する」をお読みください。

IS NULL/IS NOT NULLで絞り込む8.3.2

絞り込みの設定で IS NULL/IS NOT NULL 検索を行う場合、次のようにします。

検索方法固定値絞り込み条件
IS NULL null 等しい
IS NOT NULL null 等しくない

絞り込み設定を検索画面にも適用する

「入力制御 > モデル参照(絞込) > 検索画面でも絞込みを行う」を有効にします。

図36 検索画面でも絞込みを行う

仕様・制約

動作の仕組み

本機能は、指定した絞り込み条件を SQL の where 句に含めます。すなわち絞り込み処理はデータベースで行います。そのため、参照先モデルの当該絞り込み項目はデータベースに保存されている必要があります。

固定値と特殊表記now

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

参照連動項目

参照連動項目に絞り込みは設定できません。(設定しても機能しません。)

サジェスト項目

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

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

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

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

ウィザード利用時の制約

関連する項目(絞り込みの関係をもった項目)は同じ画面に含まれている必要があります。別々のウィザード画面に配置した場合は適切な絞り込みが行われません。

トラブルシューティング

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

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

関連するページ