サポート > リポジトリ > 他モデルの参照 > リストボックス

参照先モデルをプルダウン形式で表示します。一つの値を選択できます。

予め商品モデルを図1のように用意します。

図1 事前に用意した商品モデル

この商品モデルの値をリストボックスで選択する画面例を図2に示します。 参照先モデル「商品」の名前をリストボックスから選択することができます。

図2 リストボックスの例

定義方法

図2の見積書モデルにおいて、商品項目の型を"他モデルの項目参照"とします。(図3)

図3 見積モデルの定義

型の詳細設定で、参照先モデルを「商品」とし、リストボックスの選択肢となる参照先モデルの項目を「商品名」とします。 入力タイプに「リストボックス」を選びます。

図4 リストボックスを利用する設定

リストボックスの初期値を指定することができます。見積書モデルの新規登録画面を開いたとき、リストボックスに「キーホルダー」が選択された状態にする例を説明します。

対象データの主キー(ここでは商品ID)の値を調べます。(図5)

図5 初期値として用いるデータの主キーを調べる

見積書モデルの新規登録画面を開くと、図5のデータが初期値として選択されていることがわかります。(図6)

図6 初期値を設定したときの画面例

定義方法

対象データの主キーを指定します。

図7 新規登録画面の初期値の設定
主キーの値はシステム運用中に変更されることはありません。

選択肢モデルにおける、選択肢の表示順変更と同じルールを、任意のモデルに設定することができます。

ここでは商品モデルに「表示順序」という項目を追加しました。(図8)

図8 表示順序項目を追加した

並びを「降順」とした場合、表示順序の数値が大きい順に選択肢が並びます。

図9 選択肢の並びが変わった

定義方法

「表示順序」項目を定義します。型を整数型とします。(図10)

図10 表示順序項目の定義

見積書モデルでは、オプション設定で「ソートルール」を表示優先度とし、表示優先度項目に図10の「表示順序」を指定します。(ここでは、型が整数型の項目を任意に指定できます。)

図11 表示優先度項目を指定する
表示順序の値が未設定(空白)の場合は 0 と解釈されます。

ソートルールの詳細

表示優先度
「表示優先度項目」に指定した項目を指定します。型は整数型となっている必要があります。
表示順の標準は「昇順(数字の小さい順)」ですが、これを「降順(数字の大きい順)」ルールに変えることもできます。
(昇順は "1,2,3,..." であり、降順は "10,9,8,..." という意味です。)
ID
参照先モデルの主キー値によってソートされます。「表示優先度項目」は用いられません。
内容
参照先モデルの内容によってソートされます。文字列型の場合は辞書順になります。「表示優先度項目」は用いられません。
参照先モデルの固定ソートキー
R7.7よりサポートされます。参照先モデルの一覧表示設定で指定したソートキーの並び順になります。「表示優先度項目」は用いられません。

選択肢モデルにおける、選択肢の無効化と同じルールを、任意のモデルに設定することができます。

参照先のデータを削除すると、データ間の不整合が生じます。これを避けるため、データを(削除するのではなく残しつつ)無効化することができます。無効化によってシステム上は不可視になりますが、データベースには残っています。無効化を解除して、復活させることもできます。

商品モデルに「無効化」という項目を用意しました。ここに任意の文字列が設定されていると、本データは無効となります。 図12において、1件のデータに "生産終了" という文字列をセットしています。

図12 1件のデータを無効化する

見積モデルの選択肢には、無効化されたデータは表示されません。(図13)

図13 無効化されたデータは表示されない

定義方法

「無効化」項目を定義します。項目名、項目IDは任意です。型を文字列型とします。(図14)

図14 無効化項目の定義

見積書モデルでは、オプション設定で「無効判定項目」に、図14で用意した項目を指定します。型は文字列型です。

図15 無効化項目を指定する

無効を意味するマークを変更する 7.12

無効を意味するマーク「(-)」を変更することができます。

"選択肢モデルにおける、無効な項目も検索対象とする"と同じルールを、任意のモデルに設定することができます。

リストボックスでは標準で "何も選択していない" ことを意味する選択肢「(未選択)」が用意されます。これは常に先頭に配置されます。(この順序を変えることはできません。)

図16 未選択項目が用意されている

検索画面への対応

この項目を検索条件として用いたとき、自動的に未選択項目も用意されます。「(未選択)」となっているデータを検索することができます。

図17 検索条件にも「(未選択)」が用意される
ラジオボタンまたはチェックボックスを使った場合は、何も選択しないという状態があるため、本機能は不要です。

定義方法

参照元モデル(この例では見積書モデル)のモデル項目詳細定義にて入力制御タブを開きます。「モデル参照>未選択を用意する」を有効にします。本設定は標準で有効となっているため、不要な場合にこれを解除してください。

図18 未選択項目を用意する設定

未選択項目を用意しない場合、図19のようになります。この場合、選択しないという状態を用意させない、という運用になります。

図19 未選択項目を用意しないリストボックス

式からこの項目を参照する場合

この項目を計算式で用いる場合、新規登録画面を開いたときの初期値は null となります。

未選択項目を作成しない場合の初期値は、選択肢の先頭の値を(#id や #content を指定して)取得できます。

選択肢の絞り込み指定を行った場合、未選択項目を作成しない場合でも初期値は null となります。絞り込み操作を行うことで、はじめて選択値がセットされるためです。

リストボックスを検索条件に指定した場合、「すべて」という選択肢を指定することで全データを対象に検索を行うことができます。

(これは検索時のみ標準で用意されます。データの新規登録・更新時には表示されません。)

図20 検索条件に選択肢「すべて」が用意される

定義方法

モデル項目詳細定義の検索制御タブを開きます。モデル参照欄に用意された「リストボックス利用時に"すべて"を用意する」を有効にします。本設定は標準で有効となっているため、不要な場合にこれを解除してください。

図21 リストボックス利用時に「すべて」を用意する設定

登録・更新画面と検索画面の入力タイプを変更することができます。ここでは検索画面にラジオボタンを用いた例を示します。

図22 検索画面でラジオボタンを用いる

定義方法

モデル項目詳細定義から、検索制御タブを開きます。モデル参照内の「表示方式の切り替え」を指定します。(標準では空白となっています。)

図23 表示方式の切り替え設定

得意先をリストボックスで選択する例を図25に示します。選択肢は "氏名 (氏名かな)" となっています。

図24 選択肢が「氏名 (氏名かな)」となっている。

定義方法

顧客モデル側に「"氏名 (氏名かな)"」を格納する項目を追加します。

図25 選択肢用の項目を追加定義する

この項目は自動計算によって求めます。データベースには保存しません。 この例では、式を次のようにしています。

${name}+"("+${kananame}+")"
図26 式の設定

この項目は入力時を隠し項目とします。(図27) また出力時も隠し項目とします。(図28)

図27 入力時の隠し項目設定
図28 出力時の隠し項目設定

参照元モデル(このモデルを参照する側)では、参照先モデル項目として上記項目を指定します。

図29 参照先モデル項目の設定

リストボックスの項目に必須指定を行うと、リアルタイムで入力チェックが行われます。

図30 必須チェック

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

文言を変更する

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

参照元モデル(上記例では「見積書」モデル)の参照キー項目では、参照先モデルのID値を保持します。内容部ではありません。

データベース上のテーブルを確認すると、ID値が格納されていることがわかります。

未選択の扱い

「(未選択)」はデータベース内では NULL で保存されます。

Wagby Developer Day 2017