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