検索画面

最終更新日: 2024年2月27日
R8 | R9

例と定義方法

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

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

一覧からデータを選択します。

一覧表示画面

選択したデータがセットされます。

顧客が選択された

定義方法

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

検索画面を利用する設定

入力フィールド長

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

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

選択情報の全クリア

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

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

選択状態が解除されます。

未選択の状態に戻った

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

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

クリアボタンを作成する

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

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

本設定が無効となる場合

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

検索ボタンの名称変更

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

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

定義方法

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

ボタン名を設定する

ワンポイント

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

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

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

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

表示される項目のルール

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

理由

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

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

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

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

別モデルからアカウントモデルを参照する際、参照先モデル項目として「アカウント」項目を指定する

先ほど一覧表示を無効にした「アカウント」項目はアカウントモデルの一覧表示では非表示となりますが、サブウインドウ検索では表示されます。

アカウント一覧表示
サブウインドウ

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

名前を参照する設定
サブウインドウに「名前」が表示される

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

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

主キーを直接入力する

ワンポイント

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

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

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

コードを直接入力する

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

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

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

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

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

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

定義方法

  1. 入力伝票となる見積書モデルで「商品コード」項目を用意します。
    商品コード項目を用意する
  2. 入力タイプを「検索画面」とします。参照先モデル項目は主キー項目を指定します。ここで主キーは業務コードとしての役割を担っているものとします。
    参照先モデル項目を主キー項目とする
  3. モデル項目詳細定義ダイアログを開きます。入力制御タブ内の「モデル参照(検索)」欄で「値を直接入力できるようにする」を有効にします。
    あわせて「ボタンを表示する」を無効にします。(これを無効にしなかった場合は、直接入力かつ「検索...」機能の両方を利用できるユーザーインターフェースになります。)
    値を直接入力できるようにする

仕様・制約

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

メインウィンドウの入力値をサブウィンドウに渡す

(1) 登録・更新画面の入力値を検索画面に渡す

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

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

  1. 営業報告書モデルの登録画面で、「職種」に値を入力した状態で「検索」ボタンを押下します。
    検索ボタンを押下する
  2. メインウィンドウで入力した値「医療」がサブウィンドウに渡されます。検索も実行された状態で開きます。
    検索条件の受け渡し

定義方法

  1. 顧客モデルの定義を示します。「職種」項目(jobtype)は検索条件として用います。
    顧客モデルの定義
  2. 営業報告書モデルの定義を示します。
    検索条件として引き渡す「職種」項目(jobtype)も、同様に検索条件として指定します。
    営業報告書モデルの定義
  3. 営業報告書モデルの「顧客名」は、顧客モデルを参照します。入力タイプは検索画面とします。
    関連の設定
  4. ここで、営業報告書モデル(自モデル)内の項目「職種 (jobtype)」を、参照先モデル「顧客」の「職種 (jobtype)」と関連づけます。これが絞り込み設定になります。
    双方のモデル内の項目を関連づける(絞り込み)
  5. これまでの設定の全体イメージは次のとおりです。
    全体イメージ

固定値を渡す

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

固定値を渡す

サブウインドウを開くと、設定した固定値がセットされます。

固定値「製造業」がセットされる

仕様・制約

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

(2) 検索条件の入力値を検索画面に渡す

定義方法

検索・一覧表示画面における検索条件の値を、サブウィンドウに渡すこともできます。ここでは日付項目を例に説明します。

  1. 「部門」モデルに「適用開始日」と「適用終了日」を用意します。この範囲にあるデータが有効、とします。
    適用日を考慮した部門モデル
  2. この部門モデルを参照する「部門参照」モデルを用意します。ここでは簡単に参照する「部門」項目および、適用対象日となる「日付」項目を用意します。この日付項目は初期値として、登録時および検索時に今日の日付をセットするとします。
    部門参照モデル

    ワンポイント

    日付項目は範囲で検索されるため「検索画面表示時」と「検索画面表示時(範囲検索の上限項目)」の両方に TODAY 関数を適用してください。

  3. 「部門」項目は、部門モデルを参照します。
    部門項目の設定
  4. 「入力制御 > モデル参照(絞込)」より、部門項目の絞り込み設定を行います。
    下図の設定では、 ”同モデルの「日付」項目が、部門モデルの「適用開始日」と「適用終了日」の範囲内であること” を絞込条件としています。
    このように範囲での絞込を行う場合、絞込条件に「上」と「下」を指定します。
    ※ 一つの項目「日付」を複数の項目(ここでは部門モデルの「適用開始日」と「適用終了日」)の条件として指定することができます。
    固定値を渡す
  5. 登録・更新画面に加え、検索画面でも絞り込みを行う場合は「検索画面でも絞り込みを行う」を有効にします。
    固定値を渡す

動作例

検索画面を示します。日付項目には開始および終了のいずれも、操作している日付が初期値としてセットされています。

ここで部門項目の「検索...」ボタンを押下し、サブウィンドウを開きます。

検索画面

サブウィンドウでは、メインウィンドウの「日付」項目の値が渡されます。このとき、範囲(開始と終了)が同時にセットされています。

部門検索のサブウィンドウ

その他の応用例

サジェスト

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

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

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

サブウインドウのリセットボタン

リセットボタンを非表示とした例です。

リセットボタンが表示されていない

定義方法

参照するモデル(ここでは「顧客」)「画面 > 検索・一覧表示 > ボタン表示」の「リセットボタン(検索用サブウィンドウ画面)」を無効にします。
標準では有効(リセットボタンを表示する)となっています。

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

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

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

文言を変更する

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

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

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

仕様・制約

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

トラブルシューティング

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

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