選択肢モデル

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

選択肢モデルとは

データを登録・検索する時の入力方式のひとつとして、テキスト入力のほかに
セレクトボックスやラジオボタンのような、「用意された選択肢の中から選ぶ」方式があります。
都道府県や血液型など、登録したいデータがいくつかの候補に特定できる情報は、図のように選択方式になっていたほうが便利です。

選択肢の例(セレクトボックス)

これを実現するのが「選択肢モデル」です。

通常、選択肢モデルはリストボックスラジオボタンチェックボックスのいずれかの方式で利用します。

選択肢モデルは、モデル項目として以下の項目があらかじめ設定されています。

項目名役割
主キー数値/文字列/日付のいずれか。主キー
内容文字列選択肢として表示される内容
表示優先度数値選択肢の並び順を設定できる。
(数値の降順で表示される)
有効期限文字列値がセットされていた場合には無効扱いとなる

重要

注意事項

  • 主キーの型は一度設定すると変更できません。
  • 選択肢モデルの項目名は変更できません。
  • 選択肢モデルに、項目を新たに追加することはできません。

初期データ固定方式と変更方式

選択肢モデルは「初期データ固定方式」と「運用中に変更できる方式」の二種類が用意されています。

方式 説明 主キーの型 検索/一覧設定 画面機能
初期データ固定 DesignerでIDと値を設定します。運用中に値を追加/変更することはできません。 整数型のみ アプリケーションにこの選択肢モデルの編集画面が用意されないため、この設定は無視されます。 なし
運用中に変更できる DesignerでIDと値を設定しますが、ビルドしたアプリケーションのメニューから値の追加/変更も可能です。CSVファイルでのアップロード更新にも対応しています。 整数型
文字列型
日付型
アプリケーションにこの選択肢モデルの編集画面が用意されます。この設定が反映されます。 検索一覧表示
詳細表示
登録
更新
削除
一覧更新
ダウンロード
アップロード更新
運用中に変更できる選択肢モデルの画面機能は標準ですべて有効となっています。開発者は一覧更新,ダウンロード,アップロード更新機能を使わないように設定することもできます。

選択肢モデル(初期データ固定)の作成

「血液型」情報を格納する選択肢モデルを作成する例で説明します。

  1. 選択肢モデルを追加します。
    モデル一覧画面のギアアイコン > テンプレート の中から「選択肢モデル(初期データ固定)」を選択します。
    選択肢モデル(初期データ固定)の追加
  2. モデル名を設定します。
    モデル名の設定
    以上で、選択肢モデルの作成は完了です。
    モデル項目はあらかじめ用意されているため、設定は不要です。

初期データの登録

次に、初期データの設定を行います。
選択肢モデル(初期データ固定方式)は通常のモデルとは異なり、初期値(初期データ)を設定することができます。

  1. 「初期データ」タブをクリックすると、初期データの設定画面が表示されます。
    初期データタブ
    左端の「No.」は固定(連番)です。この画面でのみ使われる管理用の番号であり、ビルドするアプリケーションでは使われません。
    「ID」が主キーとなります。主キーは数値型のため、ここには任意の数値を設定してください。"10","20" といった飛び番号を指定することもできます。
  2. 初期データを複数設定する場合は、ギアアイコン の「新規」をクリックし、追加個数を指定して追加します。
    初期データ行の追加

    注意

    「内容」を空白にすることはできません。(スペースだけの文字列も空白と扱われます。すなわち、内容部が空の選択肢を用意することはできません。)

選択肢モデル(運用中に変更できる)の作成

「業種」情報を格納する選択肢モデルを作成する例で説明します。

  1. モデル一覧画面のギアアイコン > テンプレート の中から「選択肢モデル」を選択します。
    選択肢モデルの追加
  2. モデル名を設定します。主キーの型を変更することもできます。
    モデル名の設定
  3. メニューを編集します。標準では「サービス」タブに検索、ダウンロード、アップロード更新の3機能のアイコンが用意されます。
    メニューの設定
    以上で、選択肢モデルの作成は完了です。
    モデル項目はあらかじめ用意されているため、設定は不要です。

初期データの登録

次に、初期データの設定を行います。

  1. ビルドしたアプリケーションから、この選択肢の検索画面を開きます。
    選択肢モデル 検索一覧画面
    はじめはデータが1件もありません。「一覧更新へ」ボタンをクリックして入力画面へ遷移してください。
  2. 一覧更新画面で、最初の1件を登録するために「新規」ボタンをクリックします。
    選択肢モデル 一覧更新画面(1)
  3. 入力行が用意されます。「内容」を入力し、さらに「新規」ボタンをクリックして次の行を入力します。
    選択肢モデル 一覧更新画面(2)

    注意

    「内容」を空白にすることはできません。(スペースだけの文字列も空白と扱われます。すなわち、内容部が空の選択肢を用意することはできません。)

  4. 複数のデータをまとめて登録することができます。
    選択肢モデル 一覧更新画面(3)
  5. 登録後に主キーが自動的に割り当てられます。
    選択肢モデル 一覧更新画面(4)

    主キー

    この例は主キーが整数型かつ順序を使う、としています。そのため主キーは入力できません。主キーを文字列型とすると入力できるようになります。

    選択肢モデル 一覧更新画面 主キー入力

CSVファイルを使った運用

初期データを登録後、メニューからそのデータをCSV形式ファイルで「ダウンロード」することができます。その後は Excel などで追加、編集し、「アップロード更新」するという運用を行うこともできます。詳細は「CSV入出力」をお読みください。

選択肢モデルを参照する

選択肢モデル「血液型」を別のモデル「身体データ」で参照する例です。

  1. 顧客モデルの設定は次のようになっています。
    モデル項目「血液型」の型として「他モデルの項目参照」を選択します。
    モデル項目の設定
  2. 「他モデルの項目参照」を選択すると「モデル項目の型詳細設定」ダイアログが開きます。
    参照先モデルとして、選択肢モデル「血液型」を選択します。
    参照先モデル項目は、「内容(content)」を指定します。
    入力タイプのうち、以下3種が選択形式です。
    「リストボックス」
    「ラジオボタン」
    「チェックボックス」
    型詳細設定

    それぞれの実装プレビューは下表の通りです。

    入力タイプ名 プレビュー
    リストボックス
    選択肢の他に「(未選択)」 という値がデフォルトで用意されます。
    これは何も選択していない状態を示します。
    「(未選択)」 を非表示にする方法はこちらをご覧ください。
    ラジオボタン
    項目名の横にある消しゴムボタンをクリックすると、未選択状態になります。
    チェックボックス
    項目名の横にあるチェックボタンをクリックすると、全選択肢にチェックが入ります。
    全選択状態でクリックした場合、すべての選択状態が解除されます。
  3. 必要に応じて、オプションを設定します。
    選択肢に関する設定は下図の①~③です。
    オプションの設定
    各設定に関する説明は以下の通りです。

    ①ソートルール

    選択肢の表示順を決めるルールを設定できます。デフォルトは「ID」の「昇順」です。
    各設定項目の説明は以下の通りです。

    表示優先度
    ②の表示優先度項目で指定した項目によってソートされます。
    後から選択肢の並び順を変更したいような場合には、あらかじめこちらを選択してください。
    ※②が未設定の場合、「主キー(ID)の昇順」となります。
    ID
    選択肢モデルの主キー(ID)の値によってソートされます。
    内容
    選択肢モデルの内容によってソートされます。
    参照先モデルの固定ソートキー
    選択肢モデルでは設定できません。

    ②表示優先度項目

    ①のソートルールで「表示優先度項目」を指定した場合、ここでソート条件となるモデル項目を指定します。
    指定する項目の型は数値(整数)である必要があります。
    ※①で「表示優先度項目」を選択していない場合はここで指定した内容は適用されません。

    ③無効判定項目

    「無効な選択肢」と判断する条件(モデル項目)を指定します。
    ここで指定したモデル項目に何らかの値が格納された場合に「無効」とみなされます。
    無効とみなされた選択肢は画面に表示されません。

選択肢の表示順を変更する

この機能を利用するには、あらかじめ参照先モデル項目のオプション設定が必要です。
次の通り設定します。

  • ソートルール:表示優先度項目の降順または昇順
  • 表示優先度項目:表示優先度

オプション設定
  1. 業種モデルの初期データタブを開き、「表示優先度」項目に、それぞれ任意の数字を設定します。
    オプションで設定したソートルールの通りの順番で選択肢が表示されます。
    (今回の例では「表示優先度」項目の「昇順」としています)
    上から、
    • 金融
    • 食品
    • 医療機関
    の順に表示する場合の例は下図の通りです。
    表示優先度の設定
  2. ビルド後、選択肢を参照しているモデルの登録画面を開きます。
    指定した並び順通りになっていることが確認できます。
    選択肢の並び順変更結果

重要

選択肢モデル(初期データ固定)の場合、運用中の変更は行えません。Wagby Designerで初期データを変更した場合は、再ビルドを行ってください。

選択肢を無効にする

選択肢はさまざまなモデルから参照される性質を持っています。そのためデータを削除すると不整合が発生するおそれがあります。
そこで、選択肢を削除するのではなく、一時的に無効にすることができます。(論理削除)
ここでは、その方法を説明します。

この機能を利用するには、参照先モデル項目のオプション設定にて以下をあらかじめ指定する必要があります。
無効判定項目:有効期限(valid)

オプション設定

  1. 「業種」モデルの初期データタブを開き、無効にしたい選択肢の「有効期限」欄に任意の文字を登録します。
    ここに何らかの文字が含まれていた場合、データは無効になります。
    有効期限項目に値をセットする

    ワンポイント

    Tips:「有効期限」欄に登録する文字列について
    上図の例では、「前期で終了」という文字列を登録しています。
    有効期限項目は文字列型のため、無効にすると同時に「無効にした経緯」や「いつ無効としたか」等、メモを残すことができます。

    有効期限(valid)の特別な書式

    日付形式の文字列(yyyy/MM/dd)を利用した以下の書式を指定することで、選択肢の有効期間を設定できます。

    有効期限の設定値(例) 仕様
    2020/1/1-2020/12/31 2020/1/1 から 2020/12/31 まで有効
    例:本日が 2020/7/1 の場合は有効。本日が 2021/1/1 の場合は無効となる
    -2020/12/31 2020/12/31 まで有効
    例:本日が 2020/7/1 の場合は有効。本日が 2021/1/1 の場合は無効となる。
    2020/1/1- 2020/1/1 から有効
    例:本日が 2020/7/1 の場合は有効。本日が 2019/12/31 の場合は無効となる。
    2020/12/31 2020/12/31 のみ有効
    例:本日が 2020/12/31 の場合は有効。それ以外の日であれば無効となる

    注意

    日付書式は "yyyy/MM/dd" です。 yyyy-MM-dd形式ではありません。"-" は、開始日付と終了日付の区切り文字として使われます。

  2. 有効期限を設定した選択肢を参照しているデータを確認します。
    下図のように、選択肢データの横に「(-)」というマークが表示されます。
    これは「無効な選択肢データを参照している」ことを意味します。
    無効な選択肢を参照しているデータ
  3. 各画面における無効な選択肢の表示は以下の通りです。

    登録画面

    無効にした選択肢が表示されなくなります。

    「業種」の選択肢から「食品」が消えている

    検索画面

    登録画面と同様、無効にした選択肢は表示されません。

    「業種」の選択肢から「食品」が消えている

    更新画面

    無効な選択肢が設定されたデータの更新画面では、無効な選択肢も表示されます。

    無効な選択肢が表示されている

ワンポイント

これらの動作はリストボックスラジオボタンチェックボックスのいずれにも対応しています。
「検索画面」方式では利用できません。

重要

選択肢モデル(初期データ固定)の場合、運用中の変更は行えません。Wagby Designerで初期データを変更した場合は、再ビルドを行ってください。

通常のモデルを選択肢として扱う

Wagbyが標準で用意している選択肢モデルのテンプレートを使わず、オリジナルのモデルを用意し、これを選択肢モデルとして使うこともできます。

たとえば主キーを文字列型とし、主キーの値を、そのまま内容部として扱う、といったケースがあります。[サンプル...]

ワンポイント

オリジナルのモデルとして作成する場合でも「表示優先度(整数型)」「有効期限(文字列型)」の二項目を含めることで、表示順制御と無効制御(論理削除)機能を使うことができます。

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

選択肢が物理削除された場合、その選択肢を設定しているデータの詳細表示画面には「存在しないデータ」と表示されます。
横の数字は削除された選択肢の主キーの値を示しています。

削除された選択肢を参照しているデータの表示

スクリプトに関する制約

  • 選択肢モデル(初期データ固定)のモデルはスクリプトを設定することはできません。そのため「スクリプト」タブが表示されません。
  • 他モデルのデータ操作ブロックで選択肢モデル(初期データ固定)のモデルを選択した場合、操作の選択肢は "取得" のみ利用できます。