モデル参照かつ入力可能な項目を用意する

最終更新日: 2022年5月16日

動作例

「不具合票」モデルの「発見バージョン」項目を用意します。これは(別モデルとして用意した)「バージョン」モデルを参照しています。この図では、選択肢は一件も用意されていません。

不具合票の新規登録 バージョン情報なし

バージョンモデルを参照する項目の横に入力欄を用意しました。選択肢にない情報をここで直接、入力できるようにしています。

バージョンを新規作成する

不具合票を一件登録しました。直接入力したバージョン情報がセットされています。このタイミングで「バージョン」モデルに入力値が新規登録されています。

不具合票 登録後の詳細画面

二件目の不具合票の新規作成画面です。先ほど入力したバージョン情報が、選択できるようになっています。

登録したバージョンが選択できるようになっている

さらに別のバージョン情報を入力してみます。

別のバージョン情報を入力する(1)
別のバージョン情報を入力する(2)

登録画面を開きます。追加で入力したバージョン情報が選択できるようになっていることがわかります。

入力データがマスタとして自動登録され、選択肢に追加される

設定方法

バージョン情報を管理するマスタモデルを用意します。主キーを文字列型とし、主キー自体が内容を示します。

バージョンモデル

ワンポイント

「表示優先度」と「有効期限」は本ガイドの説明では使っていませんが、選択肢(リストボックス)の並び順の制御や、ある選択肢を一時的に無効にするといった用途で利用できます。

サンプルアプリケーション「不具合票」は次のとおりです。「発見バージョン」項目はモデル参照ですが、もう一つ、入力用の項目を用意しています。

不具合票モデル
発見バージョン項目は「バージョン」モデルを参照する
表示優先度項目と無効判定項目も指定しておく

「発見バージョン項目」の参照元トレースリンク機能は無効にしておきます。これによって詳細表示画面では文字情報だけが表示されます。

参照元トレースリンク機能を無効にする

レイアウト

「発見バージョン」項目と「発見バージョン(入力用)」項目を横並びレイアウトとします。

レイアウトの設定

ラベル項目が揃うように調整します。詳細は「他項目のラベル幅とあわせる」をお読みください。

ラベル幅と値幅の設定

「発見バージョン(入力用)」項目はラベル非表示とし、値の幅を固定値で指定しました。

ラベルの非表示と値の幅の設定

スクリプト

不具合票モデルの登録のタイミングで次のスクリプトを動作させています。

「発見バージョン(入力用)」項目に値が入力されていれば、マスタ登録処理が行われるようにしています。

不具合票モデル登録時のスクリプト

前半部は「発見バージョン(入力用)」の値と同じものがバージョンモデルに含まれているかどうか、を把握します。検索条件を指定する方式のデータ取得ブロックは、"リスト" 形式で値を返します。この戻り値を受け取る変数 "バージョンリスト" を用意しています。

前半部で、バージョンリストを取得する

後半部で、バージョンリストの長さが 0 なら未登録のバージョン情報と判断し、「バージョン」モデルへのデータ登録を行っています。あわせて入力項目をクリア(nullをセット)し、選択肢項目に値をセットしています。

モデルへの登録処理を行うブロックの説明はこちらをお読みください。

後半部で、バージョンモデルへのデータ登録を行う

ワンポイント

同じスクリプトを "更新" タイミングにも設定してください。(このスクリプト全体を Ctrl-C でコピーし、更新タイミングの画面で Ctrl-V によってペーストすることができます。)

参照先トレースリンク

「発見バージョン」項目の参照先トレースリンクを有効にすると、バージョンモデルの詳細表示画面から、このバージョンに紐づく不具合票の一覧を確認することもできるようになります。

参照先トレースリンクの動作
「発見バージョン」項目の参照先トレースリンクを有効にする