リストボックス

最終更新日: 2022年6月3日

実行例

2つのモデル「身体データ」「血液型」を例に説明します。
身体データモデルは血液型モデルのデータを参照しています。
身体データの登録画面は、血液型モデルに登録された情報をリストボックス形式で表示し、そのうちの1つを選択する入力仕様です。

モデル「身体データ」と「血液型」の関係

設定方法

  1. WagbyDesignerで「身体データ」モデルの「血液型」項目の型を「他モデルの項目参照」に設定します。
    モデル「身体データ」の設定
  2. 「他モデルの項目参照」を選択すると、詳細設定のダイアログが開きます。
    ここで、血液型モデルの内容項目を参照するよう設定します。
    入力タイプ「リストボックス」を選択します。
    詳細設定

「未選択」状態を示す選択肢

リストボックスにはデフォルトで「何も選択していない」状態を示す選択肢「(未選択)」が用意されています。
これは常にリストボックスの先頭に配置されます。

未選択、という選択肢

登録・更新時の動作

登録・更新画面で「(未選択)」を選択した場合、値は空白で登録されます。

検索時の動作

検索条件に「(未選択)」を指定した場合、選択されていない(そのリストボックスの値が空白のデータ)を検索します。

未選択、となっているデータを検索する

未選択、という選択肢を用意しない

未選択、という選択肢を用意しないこともできます。

「入力制御 > モデル参照 > リストボックス利用時に「未選択」を用意する」のチェックを解除します。(標準では有効になっています。)

未選択、という選択肢を用意しない

ビルドしたアプリケーションの例です。「(未選択)」という選択肢が含まれなくなります。このリストボックスは必ず何か選ぶという業務ルールになります。

必ず何かを選ぶ必要があるリストボックス

「すべて選択」状態を表す選択肢

検索条件のリストボックスにはすべて選択された状態を示す「(すべて)」という選択肢が表示されます。
これは検索条件の入力欄にのみ表示されるもので、データの新規登録・更新時の入力欄には表示されません。

すべて、という選択肢(検索条件のみ)

「すべて」という選択肢を表示しない

「検索制御 > モデル参照 > リストボックス利用時に「すべて」を用意する」を解除することで、この選択肢を表示しないようにすることができます。

すべて、という選択肢を用意しない

ビルドしたアプリケーションの例です。「(すべて)」という選択肢が含まれなくなります。検索条件として、このリストボックスは必ず何か選ぶという業務ルールになります。

必ず検索条件を指定するリストボックス

さらに、入力時に「未選択という選択肢を用意しない」設定、かつ検索時に「すべて」という選択肢を用意しない場合、検索条件は必ず何かの値で絞り込むことが必須となります。

未選択なし、すべてという選択なしの検索条件

表示幅の変更

リストボックスの表示幅を変更することができます。詳細は「入力欄のスタイル指定>リストボックスの幅を指定する」をお読みください。

必須項目に指定する

必須項目に指定すると、リアルタイムで入力チェックが入ります。
必須項目の指定方法はこちらをご覧ください。
※SPI UIでは動作しません。

必須項目のチェック

表示内容をカスタマイズする

顧客モデルの「氏名」と「氏名かな」の両方の値を連結し、リストボックスの選択肢とした例を示します。

氏名とかなの項目を連結した選択肢

これはスクリプトを使います。詳細は「スクリプト>モデル項目の操作>リストボックスの表示内容をカスタマイズする」をお読みください。

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

参照先のデータが削除されていた場合、詳細画面では該当箇所が空欄となります。

参照データが削除された場合

仕様・制約

  • リストボックスの選択肢の数に、理論上の上限はありません。
    ただし数が多いと表示に時間がかかります。このような場合は検索画面の利用を検討してください。
  • 選択した状態から未選択状態に戻すには、"(未選択)" という選択肢を指定してください。
    「(未選択)」という選択肢
  • 他モデルの参照項目の参照先が、他モデルの参照項目となっている設定は動作しません。
    例えば次のようなケースについて、
    他モデルの参照(リストボックス) > 他モデルの参照(リストボックス) > 通常項目
    他モデルの参照項目の参照先に、他モデルの参照項目を指定することはできません。
    ※ Wagbyでは、モデル参照は「ID部」を管理しています。そのため上の設定だと、リストボックスに表示される選択肢に内容部ではなくID部が表示されてしまいます。これは利用者の意図とは異なる動作です。
    ※ 上記の例ではリストボックス > リストボックスの組み合わせでしたが、リストボックスのみならずラジオボタン、チェックボックス、検索画面いずれの組み合わせも同様に、動作しません。