検索画面

最終更新日: 2023年8月22日
R8 | R9

例と定義方法

図1に用意した見積書モデルでは、得意先項目を顧客モデルから参照します。入力欄の横に用意された「検索」ボタンを押下すると、図2の検索画面が開きます。

図1 見積書の新規登録画面で「検索」ボタンを押下する

図2の検索画面において、検索条件で絞込んだあとに「一覧表示へ」ボタンを押します。

図2 顧客検索画面

一覧表示画面の左側に並んでいる値(ここでは氏名)を選択します。具体的にはマウスでクリックします。

図3 一覧表示画面

顧客が選択されます。

図4 顧客が選択された

定義方法

モデル項目の型詳細設定ダイアログを開きます。入力タイプに「検索画面」を選択します。

図5 検索画面を利用する設定

入力フィールド長

入力フィールド長は次のルールで定められます。

  • 入力フィールド長を変更することができます。詳細は"入力制御>入力フィールド長"をお読みください。
  • 入力フィールド長を指定しない場合、Webブラウザが自動的に調整します。
  • 繰り返しコンテナ内に用意した項目は、標準でコンテナの列の幅をすべて使うため、スタイル指定width:100%が暗黙で設定されます。この項目を検索条件に用いたときも同様のスタイル指定が適用されます。この動作を変更する場合、入力フィールド長を指定してください。

選択情報の全クリア

選択した内容を解除する場合、項目名の横に用意されたクリアボタン(消しゴムの形をしたアイコン)を押下します。(マウスカーソルをのせると説明文が表示されます。)

図6 選択状態を解除するクリアボタン

選択状態が解除されます。(図7)

図7 未選択の状態に戻った

クリアボタンを非表示にする

モデル項目詳細定義ダイアログの入力制御タブ内に用意された、モデル参照の「クリアボタンを作成する」を無効にします。(図8)

図8 クリアボタンを作成する

クリアボタンが用意されない例を図9に示します。この場合、一度何かを選択すると、未選択という状態に戻すことはできません。

図9 クリアボタンは非表示となる

本設定が無効となる場合

検索ボタンを非表示に設定すると、本クリアボタンも自動的に非表示となります。

検索ボタンの名称変更

標準の「検索...」ボタンを「検」へと変更した例を図10に示します。

図10 ボタン名を「検」へ変更した

定義方法

モデル項目詳細定義ダイアログの入力制御タブを開きます。「モデル参照(検索)」内の「ボタンを表示する」を有効とし、ボタン名を入力します。

図11 ボタン名を設定する

ワンポイント

この設定は登録・更新画面に加え、検索画面にも反映されます。

検索ウィンドウの幅と高さ

「環境 > カスタマイズ」タブの「検索画面(サブウィンドウ)のサイズ」の設定がアプリケーション全体に適用されます。初期値は高さ、幅とも500ピクセルとなっています。

その上で、モデル毎に個別に設定する場合は「画面 >検索画面」の「検索画面(サブウィンドウ)のサイズ」を設定してください。

表示される項目のルール

サブウィンドウに表示される項目は、そのモデルで「一覧表示」を有効とした項目となっています。しかし、有効としなかった項目であっても(サブウィンドウに)表示される場合があります。

理由

サブウィンドウの一覧表示では、サブウィンドウを呼び出した親ウィンドウへ値を渡す必要のある項目は、必ず(一覧表示項目として)表示される必要があります。

例えば、アカウント(juser)モデルは標準で「アカウント」「所属グループ」「名前」が一覧表示の対象項目となっています。 ここで「アカウント」項目を一覧表示から解除したとします。このとき、アカウント一覧表示画面からは「アカウント」項目は非表示となりますが、検索サブウィンドウには「アカウント」項目は表示されたままとなっています。

図12 アカウントモデルのアカウント項目を一覧表示項目の対象外に変更する

このケースでは、このアカウントモデルをサブウィンドウ検索で呼び出すモデルがあり、これが「アカウント」項目を表示する、という設定があるためでした。

図13 別モデルからアカウントモデルを参照する際、参照先モデル項目として「アカウント」項目を指定する
図14 「アカウント」項目はアカウントモデルの一覧表示には含まれないが、サブウィンドウ検索には含まれる

では、一覧表示項目ではない「名前」項目を参照先モデル項目として指定した場合はどうでしょうか。この場合、サブウィンドウ検索に「名前」項目が自動的に追加されます。

図15 「名前」項目が自動的に追加された

モデルAに対して検索画面を使った参照を行う場合、モデルB,C,Dがそれぞれ異なる参照先モデル項目 item1,item2,item3 を指定することができます。このとき、このサブウィンドウはシステム全体で共通利用されるため、結果として item1,item2,item3 すべてがサブウィンドウ画面の一覧表示項目に含まれることになります。

図16 指定した項目はすべて一覧表示項目に含まれる

主キー(コード)を直接入力する

ワンポイント

この機能と同等以上の使い勝手を「サジェスト」で提供しています。サジェスト機能では主キーの値だけでなく、他の項目の値を入力することもできます。

参照先モデルの主キーを直接入力し、値を参照することができます。業務的に、主キーが業務コードとして用いられており、現場の操作者がコード体系を覚えているという場合に有効です。

図17では、商品コードを直接、入力しています。「検索...」ボタンは用意されていません。

図17 コードを直接入力する

商品コードに対応商品名、価格が連動して表示されています。

図18 商品コードによる商品名、価格の参照連動

複数の商品情報を入力した例です。

図19 商品情報を明細として管理している

なお、存在しない商品コードを入力すると、保存ボタン押下時にエラーとなります。

図20 存在しないコードはエラーとなる

定義方法

入力伝票となる見積書モデルで「商品コード」項目を用意します。

図21 商品コード項目を用意する

入力タイプを「検索画面」とします。参照先モデル項目は主キー項目を指定します。ここで主キーは業務コードとしての役割を担っているものとします。

図22 参照先モデル項目を主キー項目とする

モデル項目詳細定義ダイアログを開きます。入力制御タブ内の「モデル参照(検索)」欄で「値を直接入力できるようにする」を有効にします。あわせて「ボタンを表示する」を無効にします。(これを無効にしなかった場合は、直接入力かつ「検索...」機能の両方を利用できるユーザーインターフェースになります。)

図23 値を直接入力できるようにする

仕様・制約

  • 本設定は、参照先モデルの主キー項目を直接入力することになります。主キー以外の項目には対応していません。
  • 本設定と「自動計算」を同時に定義することはできません。
  • 本設定は参照連動にはご利用いただけません。
  • 参照先モデルの主キーが複合キーの場合、本設定を利用することはできません。(複数のコード入力欄は用意されません。)
  • 参照先モデルの項目がサジェストを利用している場合、本機能と併用することはできません。サジェストをご利用ください。
  • 本設定は絞り込みとの併用はできません。絞り込みは下記「メインウィンドウの入力値を検索条件として再利用する」の説明によって実現されます。
  • 本設定を行うと(キーの)存在チェック機能が有効になります。入力した主キーが存在しない場合はエラーとなります。このチェックはCSVアップロード更新時にも動作します。

メインウィンドウの入力値を検索条件として再利用する

登録、更新画面(メインウィンドウ)の入力値を、検索画面(サブウィンドウ)の検索値として受け渡すことができます。

例を示します。「営業報告書」モデルの項目「顧客名」は「顧客」モデルを参照しています。
ここで「営業報告書」モデルの項目「職種」の値を(「顧客」モデルの)サブウィンドウの検索条件として再利用します。

職種の欄に予め値を設定し、「検索」ボタンを押下します。

図24 検索ボタンを押下する

メインウィンドウ(営業報告書)の値が、サブウィンドウ(顧客モデルの検索画面)に渡されます。

図25 検索条件の受け渡し

定義方法

顧客モデルの定義を示します。「職種」項目(jobtype)は検索条件として用います。

図26 顧客モデルの定義

営業報告書モデルの定義を示します。検索条件として引き渡す「職種」項目(jobtype)も、同様に検索条件として指定します。

図27 営業報告書モデルの定義

営業報告書モデルの「顧客名」は、顧客モデルを参照します。入力タイプは検索画面とします。

図28 関連の設定

絞り込みの設定

ここで、営業報告書モデル(自モデル)内の項目「職種 (jobtype)」を、参照先モデル「顧客」の「職種 (jobtype)」と関連づけます。これが絞り込み設定になります。

図29 双方のモデル内の項目を関連づける(絞り込み)

これまでの設定の全体イメージは次のとおりです。

図30 全体イメージ

固定値を渡す

図29では(受け渡す値を保持する)項目名を指定しましたが、固定値を渡すこともできます。

図31 固定値を渡す

仕様・制約

  • 参照先モデル(図30では顧客モデル)の絞り込み項目(図29では職種項目)は「検索」設定が有効になっている必要があります。図26で、職種モデルは検索設定が有効になっています。
  • 本機能は一覧更新画面および子モデル同時更新画面では動作しません。
  • メインウィンドウの読み込み専用項目(計算によって求められた項目も含みます)をサブウィンドウの検索条件に渡すことはできません。渡すことができるのは、入力欄として用意された項目です。隠し項目は利用できます。
  • メインウィンドウの入力値を検索条件として再利用する設定を行うと、検索条件の初期値の設定は無視されます。(*1)
  • 固定値に関数を含む式を記述することはできません。代案として、メインウィンドウに隠し項目として(関数などを適用した)値を保持させておき、これをサブウィンドウの検索条件に渡すようにしてください。
1. 対象モデルのいずれかの項目にこの設定を含めた時、初期値は無視されます。メインウィンドウからサブウィンドウに値を引き渡すことが優先され、既存の初期値設定などとの(検索条件の)マージ処理は行いません。

応用例

サジェスト

"サジェスト"をお読み下さい。

リセットボタンを非表示にする

検索用サブウィンドウ画面のリセットボタンを非表示とすることができます。

「画面 > 検索・一覧表示 > ボタン表示」の「リセットボタン(検索用サブウィンドウ画面)」を解除します。標準では有効(リセットボタンを表示する)となっています。

図32 リセットボタン(検索用サブウィンドウ画面)の表示設定

例は次のとおりです。リセットボタンが表示されていません。

図33 リセットボタンが表示されていない
モデルAの検索用サブウィンドウ画面をモデルB,C,Dで利用する場合、すべてのケースでモデルAの検索用サブウィンドウ画面のリセットボタンは非表示となります。このため、例えばモデルBでは、モデルAの検索用サブウィンドウ画面を使う場合にリセットボタンを表示させたい、というような個別の指定を行うことはできません。

参照先モデルのデータが削除されていた場合

参照先のデータが削除されていた場合、詳細表示画面には "存在しないデータ" と表示されます。

文言を変更する

この "存在しないデータ" という文言を変更することができます。

複合キーのモデルを参照する

「リストボックス > 複合キーのモデルを参照する」をお読みください。

仕様・制約

2. サブウィンドウは一覧表示画面と全く同じ項目を用いるのではなく、他モデル参照(検索画面) で参照している項目が一覧に自動的に追加されることがあります。開発者が用意したレイアウトに対して Wagby が自動的に追加した項目を含めた状態で、更にレイアウトを自動調整することは難しいため、サブウィンドウではレイアウトの設定は反映していません。
3. Wagbyでは、モデル参照は「ID部」を管理しています。そのため上の定義だと、検索画面に表示される選択肢に、リストボックスのID部が表示されてしまいます。これは利用者の意図とは異なる動作です。
4. 上記の例では検索画面 > リストボックスの組み合わせでしたが、リストボックスのみならずラジオボタン、チェックボックス、検索画面いずれの組み合わせも同様に、動作しません。

トラブルシューティング

サブウィンドウの対象行をクリックしても反応しません

表示されている行に、主キーが含まれていることを確認してください。本ページの図3は「氏名」の項目が主キー値と対応しています。このように、メインウィンドウに渡すための主キーが必要です。主キー部分を隠し項目にすることもできません。