リストボックス
最終更新日: 2021年6月11日
R8 | R9
2つのモデル「見積書」「商品」を例に説明します。
複合キーのモデルの場合
上記の例では単一キーのモデルを用いていますが、下図のように複数の主キーを持つ複合キーモデルの場合でも実装方法は変わりません。
リストボックスの初期値を設定できます。
下図のような状態になります。
初期値は画面ごとに設定を行います。全画面共通の設定ではありません。
選択肢モデルの選択肢の表示順変更と同じルールを、通常のモデルにも設定することができます。
参照するモデルに「表示順序」項目を追加し、その値を利用して表示順序を自由に設定できるようにします。
並び順を「表示順序項目の降順」とし、表示順序の数値が大きい順にリストボックス内で並ぶようにします。
実装イメージと定義方法
実装イメージ
見積書モデルは商品モデルのデータを参照しています。
見積書データの登録画面は、商品モデルに登録された商品名情報をリストボックス形式で表示し、そのうちの1つを選択する入力仕様です。
定義方法
ここで、商品モデルの商品名項目を参照するよう設定します。
入力タイプは「リストボックス」を選択します。
ワンポイント
なお、Wagbyの設計情報の「商品」項目は、物理テーブル定義では二つの列が用意されています。[詳細...]
初期値を設定する
見積書モデルの新規登録画面を開いた際に、商品名のリストボックスで「キーホルダー」を選択状態にする例で説明します。
実装イメージ
定義方法
主キーの値はアプリケーションの詳細表示画面で確認できます。
選択すると、各画面における初期値の設定情報が表示されます。
登録画面の初期値を指定する場合は、「登録画面表示時」の欄に設定をします。
初期値設定の詳細はこちらをご覧ください。
注意
これで設定は完了です。
選択肢の表示順を変更する
実装イメージ
定義方法
型は必ず「数値」を選択します。
型の詳細設定は、型の選択欄の右にあるボタンをクリックすると表示されます。
「オプション」をクリックします。
「ソートルール」を表示優先度の降順とし、「表示優先度項目」には「表示順序」項目を指定します。
ワンポイント
注意事項
- 表示優先度項目に指定できるのは、型が数値(整数)型の項目のみです。
- 表示順序の値が未設定(空白)の場合は 0 と解釈されます。
ソートルールの詳細
- 表示優先度
-
下の「表示優先度項目」で指定した項目によってソートされます。
運用中に選択肢の並び順を変更できるようにするには、あらかじめこちらを選択する必要があります。
※②が未設定の場合、「主キー(ID)の昇順」となります。 - ID
- 参照先モデルの主キー値によってソートされます。
- 内容
- 参照先モデルの内容によってソートされます。文字列型の場合は辞書順になります。
- 参照先モデルの固定ソートキー
- 参照先モデルの一覧表示設定で指定したソートキーの並び順になります。
選択肢を無効にする
選択肢モデルにおける、選択肢の無効化と同じルールを、通常のモデルにも設定することができます。
参照先のデータを物理削除すると、データ間の不整合が生じます。
これを避けるため、データを削除せず無効化することができます。(論理削除)
無効化によってシステム上では非表示となりますが、データは残ります。
無効化を解除して、復活させることもできます。
実装イメージ
商品モデルに「無効化」という項目を用意します。
ここに任意の文字列がセットされていると、そのデータが無効とみなすようにします。
下図では1件のデータに「生産終了」という文字列をセットし、無効化しています。
見積書モデルの登録画面には、無効化されたデータは表示されません。
ワンポイント
無効化されたデータの扱いの詳細は選択肢モデルの選択肢の無効化をご覧ください。
定義方法
-
WagbyDesignerで商品モデルに「無効化」項目を追加します。
項目名、項目IDは任意です。型を文字列型とします。 -
見積書モデルでは、オプション設定で「無効判定項目」に、「無効化」項目を指定します。
これで設定は完了です。
有効期限項目には、日付形式の文字列(yyyy/MM/dd)を指定して有効期間を設定することができます。[詳細...]
無効な項目も検索対象とする
選択肢モデルにおける「無効な項目も検索対象とする」と同じルールを通常のモデルにも設定することができます。
「未選択」状態を示す選択肢
実装イメージ
リストボックスにはデフォルトで「何も選択していない」状態を示す選択肢「(未選択)」が用意されています。
これは常にリストボックスの先頭に配置されます。
この「(未選択)」は非表示にすることも可能です。
登録時の動作
登録画面で「(未選択)」を選択した場合、値は空白で登録されます。
検索時の動作
検索条件として「(未選択)」を指定した場合、その値が空白のデータを検索します。
定義方法
-
WagbyDesignerでリストボックス形式で他モデルを参照しているモデル項目(ここでは「見積書」モデルの「商品」項目)の詳細定義ダイアログを開きます。
ダイアログ内の「入力制御」タブをクリックして開きます。 -
少し下にスクロールすると「モデル参照」という見出しの設定欄に「未選択を用意する」という項目があります。
このチェックを外すと、「(未選択)」が非表示になります。 -
チェックを外すと下図のように「(未選択)」が非表示となります。
自動計算式でこの項目を参照する場合
未選択項目の有無で、取得できる値が変わります。[詳細...]
「すべて選択」状態を表す選択肢
検索条件のリストボックスにはすべて選択された状態を示す「(すべて)」という選択肢が表示されます。
これは検索条件の入力欄にのみデフォルトで用意されるもので、データの新規登録・更新時の入力欄には用意されません。
この「(すべて)」は非表示にすることも可能です。
定義方法
-
WagbyDesignerでリストボックス形式で他モデルを参照しているモデル項目(ここでは「見積書」モデルの「商品」項目)の詳細定義ダイアログを開きます。
ダイアログ内の「検索制御」タブをクリックして開きます。 -
少し下にスクロールすると「モデル参照」という見出しの設定欄にリストボックス利用時に「すべて」を用意するという項目があります。
このチェックを外すと、「(すべて)」が非表示になります。 - チェックを外すと下図のように、「(すべて)」が非表示となります。
検索時の入力タイプを変更する
実装イメージ
検索時の入力タイプを登録・更新時とは別のものに変更することができます。ここでは検索時にラジオボタンを用いる例で説明します。
定義方法
-
WagbyDesignerでリストボックス形式で他モデルを参照しているモデル項目(ここでは「見積書」モデルの「商品」項目)の詳細定義ダイアログを開きます。
ダイアログ内の「検索制御」タブをクリックして開きます。 -
少し下にスクロールすると「モデル参照」という見出しの設定欄に「表示方式の切り替え」という項目があります。
横のリストボックスで「ラジオボタン」を指定します。
これで設定は完了です。
複数の項目を連結して表示する
実装イメージ
複数のモデル項目のデータを連結して表示することができます。
下図は、得意先をリストボックスで選択する例です。
選択肢は「氏名 (氏名カナ)」のように、「氏名」と「氏名カナ」の2つの項目を併せて表示しています。
定義方法
- 参照するモデル側(ここでは顧客モデル)に「氏名 (氏名カナ)」を格納する項目を追加します。
-
この項目の値は、Wagbyの自動計算式を利用し、他項目(氏名と氏名カナ)を参照して表示します。
「氏名(氏名カナ)」という表示にするため、以下の式を適用します。
また、他の項目の値を利用するため、「値をデータベースに保存する」のチェックは外します。${customername}+"("+${customerkana}+")"
-
この項目は、他モデル(ここでは見積書モデル)より参照する以外の用途はありません。
モデルの各種メニュー(登録・更新など)では入力不可とするため、隠し項目に設定します。
「入力制御」タブをクリックして開き、「隠し項目」欄の「全画面」にチェックを入れます。 -
続いて、「出力制御」タブをクリックして開きます。
入力欄と同様、データ出力時にも非表示とします。
「共通」欄の「隠し項目にする」にチェックを入れます。 - 参照する側となるモデル項目(ここでは見積書モデルの得意先項目)では、下図の通り参照先モデル項目を指定します。
必須項目に指定する
必須項目に指定すると、リアルタイムで入力チェックが入ります。
必須項目の指定方法はこちらをご覧ください。
参照先モデルのデータが削除されていた場合
参照先のデータが削除されていた場合、詳細表示画面には「存在しないデータ」と表示されます。
横の数字は削除されたデータの主キー値で、(-)は無効データであることを示す記号です。
文言を変更する
この「存在しないデータ」という文言は変更することができます。
変更方法はこちらをご覧ください。
データベース内部の詳細
参照する側のモデル(ここでは見積書モデル)の項目は、参照先モデルの主キーの値を保持します。
また、「(未選択)」でデータを登録した場合、データベースには NULL で保存されます。
複合キーのモデルを参照する
主キーが複合キー形式の場合でも、同様の手順で設定可能です。
仕様・制約
- リストボックスの選択肢の数に、理論上の上限はありません。
ただし数が多いと表示に時間がかかることから、このような場合は検索画面の利用を検討してください。 - 他モデルの参照項目の参照先が、他モデルの参照項目となっている定義は動作しません。
例えば次のようなケースについて、他モデルの参照(リストボックス) > 他モデルの参照(リストボックス) > 通常項目
※ Wagbyでは、モデル参照は「ID部」を管理しています。そのため上の定義だと、リストボックスに表示される選択肢に内容部ではなくID部が表示されてしまいます。これは利用者の意図とは異なる動作です。※ 上記の例ではリストボックス > リストボックスの組み合わせでしたが、リストボックスのみならずラジオボタン、チェックボックス、検索画面いずれの組み合わせも同様に、動作しません。
関連するページ
- 計算式 > モデル参照 > リストボックス項目の扱い
- 入力制御 > 入力フィールド長 > リストボックスの場合