他項目の値で選択肢を絞り込む
最終更新日: 2022年5月11日
R8 | R9
「担当部署」を指定すると「担当者」の選択肢が変わる例を示します。
図2は担当部署を選択していない状態です。このとき、担当者はいずれも選択できません。
担当部署を第一営業部とすると、総務部に所属する担当者が選択肢として表示されます。
同じく担当部署を第二営業部とすると、営業部に所属する担当者が選択肢として表示されます。
モデルは「社員」「職種」「部署」「顧客」を用意します。なお、「職種」は選択肢モデルなので説明を割愛します。
「部署」モデルは主キー「部署ID」と、「部署名」を用意します。
「社員」モデルの「部署」項目は「他モデルの項目参照」とし、部署モデルの「部署名」項目を参照します。
「顧客」モデルの定義です。
「営業担当部署」項目は部署モデルの「部署名」を参照します。
「営業担当者」項目は社員モデルの「社員名」を参照します。
ここで絞り込みの設定を行います。
標準では、絞り込み元の値(この例では「営業担当部署」)を変えた場合、「営業担当者」として選択されていた値は維持されます。 維持された値には、無効な選択肢を表す「(-)」が付与されます。
この動作を変更することができます。
この設定を行うと、絞り込み元の値を変えた場合、選択されていた候補は消去されます。
複数の絞り込み条件を指定することができます。条件はすべて AND (「かつ」)で絞り込みが行われます。
図17に示す絞り込みの例を説明します。絞り込み条件を二つ用意します。
選択肢モデル「職種」が次のように用意されているとします。「一般」という職種のIDは「4」です。
絞込条件に「職種が一般のみ」という条件を追加しました。図4に比較すると選択肢が減っています。
顧客モデルの当社担当者項目の絞込条件を追加します。
職種(title)のID値が"4"という固定条件を加えています。
絞り込むための条件に、繰り返しコンテナ内の項目を指定することができます。
絞り込み条件の固定値に関数を指定することができます。
「検索制御 > 暗黙条件 > 関数を利用する」と同じです。こちらをお読み下さい。
参照先モデルが検索画面の場合、固定値に式を記述することはできません。詳細は「検索画面>メインウィンドウの入力値を検索条件として再利用する」をお読みください。
絞り込みの設定で IS NULL/IS NOT NULL 検索を行う場合、次のようにします。
「入力制御 > モデル参照(絞込) > 検索画面でも絞込みを行う」を有効にします。
本機能は、指定した絞り込み条件を SQL の where 句に含めます。すなわち絞り込み処理はデータベースで行います。そのため、参照先モデルの当該絞り込み項目はデータベースに保存されている必要があります。
日付型項目の絞り込みでは、固定値として特殊表記 nowを利用することができます。本日の日付による絞り込みが行えます。
参照連動項目に絞り込みは設定できません。(設定しても機能しません。)
サジェスト項目に絞り込みは設定できません。(設定しても機能しません。)
絞り込み先項目がコンテナ外項目として定義され、かつ、絞り込み元項目が繰り返しコンテナ内項目として定義されている場合は、絞り込みとして利用されるのはコンテナの1行目のデータのみとなります。
2行目以降のデータは絞り込みとしては利用されず、無視されます。
関連する項目(絞り込みの関係をもった項目)は同じ画面に含まれている必要があります。別々のウィザード画面に配置した場合は適切な絞り込みが行われません。
絞り込みが適切に行われない場合、次の点をご確認ください。
アドオンギャラリーで提供されている「消費税」モデルを既存のプロジェクトに組み込んで利用する方法を説明します。
消費税率モデルは「税率開始日」と「消費税率」から構成されています。
WagbyDesignerで「運用>アドオンギャラリー」を開き、JSHTAXを選択してインストールします。
消費税率アドオンを利用するモデル「販売商品」を例に説明をします。
図2の(1)、(2)、(3)の項目の詳細はそれぞれ次のように設定を行います。
モデル項目の詳細定義を開き、自動計算の入力欄に本日の日付を求める関数
さらに、この項目を隠し項目にするため「入力制御」タブと「出力制御」タブで以下の通り設定します。
型を文字列から「他モデルの項目参照」に変更します。
さらに、こちらも隠し項目とするため、(1) 隠し項目本日日付 と同じように隠し項目の設定を行います。
最後に「絞り込み」設定を適用します。
この設定のポイントは「選択肢の先頭のみ表示する」を有効にし、かつ、選択肢を STARTDATE の降順でソートしていることです。次の条件が揃った時、複数候補から一つだけを選択し、画面に表示させることができます。
消費税率モデルの参照連動で求めるよう設定します。
型を文字列から「他モデルの項目参照」に変更し、以下のように設定します。
今回の例では「価格(税抜き)」を入力し、「価格(税込み)」は計算式で求める仕様とします。 以上でモデルの定義は完了です。
ここでは消費税率を自動的に算出するようにしましたが、日付を入力方式にすることで、その時点の消費税率が自動的に適用されます。
例と定義方法
例
定義方法
入力タイプはリストボックスとします。
「営業担当者」項目の詳細ダイアログから「入力制御>モデル参照(絞込)」を次の通り設定します。
無効となった選択肢の選択状態を維持しない
(絞り込み元の値をクリアした場合も同様に、絞り込み先の選択肢は維持されます)
「入力制御 > モデル参照(絞込) > 無効となった選択肢の選択状態を維持しない」を有効にします。
(この機能はリストボックス-リストボックスの組み合わせでのみ動作します)
複数の条件で絞込む
例
定義方法
繰り返しコンテナ内の項目で絞り込む
設定イメージ
例
定義方法
固定値に関数を利用する
ログオン者が所属するグループによって「報告部署」項目が絞り込まれるようにした例です。
定義方法
ARRAY_OBJ(JGROUPID())
利用できる関数
参照先モデルが「検索画面」の場合
IS NULL/IS NOT NULLで絞り込む
検索方法 固定値 絞り込み条件
IS NULL null 等しい
IS NOT NULL null 等しくない
絞り込み設定を検索画面にも適用する
仕様・制約
動作の仕組み
固定値と特殊表記now
参照連動項目
サジェスト項目
繰り返しコンテナ利用時の制約
ウィザード利用時の制約
トラブルシューティング
設計情報の項目の記載順序を工夫し、参照連動の連動元項目を、絞込を定義している項目よりも前に定義しておくことで問題を回避できる場合があります。応用 消費税の扱い
「税率開始日」は主キーです。
インストール
利用方法
「価格(税抜き)」を入力すると、「価格(税込み)」が計算されるよう設定していきます。
また、このとき「現在の消費税率」項目は、「隠し項目本日日付」の日付に応じて自動的に設定されるように工夫します。
(1) 隠し項目本日日付
TODAY()
を指定します。
また、「値をデータベースに保存する」のチェックを外します。
(2) 隠し項目税率ID
参照先モデルは「消費税率(JSHTAX)」を選択します。
絞り込みルールを適用するため入力タイプは「リストボックス」とします。
参照先モデル項目は、JSHTAXの主キー項目である「税率開始日」を選択します。
(図4,図5参照)
「入力制御」タブの「モデル参照」を以下の通り設定します。
これによって、今日の日付と税率の適用開始日を比較し、データ入力時点の税率を求めます。
ワンポイント
(3) 現在の消費税率
これによって、まず「隠し項目税率ID」が定まったあと、この値をキーにして実際の税率が定まるという動作になります。
参照先モデル:消費税率 (JSHTAX)
入力タイプ:参照連動
連動する項目名:隠し項目税率ID (hiddentaxid)
参照先モデル項目:消費税率 (RATE)
「価格(税込み)」の詳細定義を開き、「自動計算」に以下を指定します。
小数点の計算は、MUL関数やADD関数を用いることで演算誤差を抑えることができます。
VALUE(
MUL(
${priceWithoutTax},
ADD(
"1.0",
${taxRate}
)
)
)
消費税率モデルと販売商品モデルをそれぞれメニューに登録します。
メニューへの登録手順の詳細はこちらをご覧ください。
下図は消費税率モデルを「共通処理」のタブに含め、メニュー名とアイコンを新たに設定した例と、
販売商品モデルを新しく用意したタブ「販売管理」に含めた例です。
動作の確認
消費税率モデルの初期データ「data_addon_JSHTAX」をインポートします。
「メニューへの登録」手順で追加した「消費税率」をクリックします。
「価格(税抜き)」に数値を入力すると「価格(税込み)」が計算され、値が表示されます。
関連するページ