モデル参照かつ入力可能な項目を用意する
最終更新日: 2022年5月16日
「不具合票」モデルの「発見バージョン」項目を用意します。これは(別モデルとして用意した)「バージョン」モデルを参照しています。この図では、選択肢は一件も用意されていません。
バージョンモデルを参照する項目の横に入力欄を用意しました。選択肢にない情報をここで直接、入力できるようにしています。
不具合票を一件登録しました。直接入力したバージョン情報がセットされています。このタイミングで「バージョン」モデルに入力値が新規登録されています。
二件目の不具合票の新規作成画面です。先ほど入力したバージョン情報が、選択できるようになっています。
さらに別のバージョン情報を入力してみます。
登録画面を開きます。追加で入力したバージョン情報が選択できるようになっていることがわかります。
バージョン情報を管理するマスタモデルを用意します。主キーを文字列型とし、主キー自体が内容を示します。
「表示優先度」と「有効期限」は本ガイドの説明では使っていませんが、選択肢(リストボックス)の並び順の制御や、ある選択肢を一時的に無効にするといった用途で利用できます。
サンプルアプリケーション「不具合票」は次のとおりです。「発見バージョン」項目はモデル参照ですが、もう一つ、入力用の項目を用意しています。
「発見バージョン項目」の参照元トレースリンク機能は無効にしておきます。これによって詳細表示画面では文字情報だけが表示されます。
「発見バージョン」項目と「発見バージョン(入力用)」項目を横並びレイアウトとします。
ラベル項目が揃うように調整します。詳細は「他項目のラベル幅とあわせる」をお読みください。
「発見バージョン(入力用)」項目はラベル非表示とし、値の幅を固定値で指定しました。
不具合票モデルの登録のタイミングで次のスクリプトを動作させています。
「発見バージョン(入力用)」項目に値が入力されていれば、マスタ登録処理が行われるようにしています。
前半部は「発見バージョン(入力用)」の値と同じものがバージョンモデルに含まれているかどうか、を把握します。検索条件を指定する方式のデータ取得ブロックは、"リスト" 形式で値を返します。この戻り値を受け取る変数 "バージョンリスト" を用意しています。
後半部で、バージョンリストの長さが 0 なら未登録のバージョン情報と判断し、「バージョン」モデルへのデータ登録を行っています。あわせて入力項目をクリア(nullをセット)し、選択肢項目に値をセットしています。
モデルへの登録処理を行うブロックの説明はこちらをお読みください。
同じスクリプトを "更新" タイミングにも設定してください。(このスクリプト全体を Ctrl-C でコピーし、更新タイミングの画面で Ctrl-V によってペーストすることができます。)
「発見バージョン」項目の参照先トレースリンクを有効にすると、バージョンモデルの詳細表示画面から、このバージョンに紐づく不具合票の一覧を確認することもできるようになります。
動作例
設定方法
ワンポイント
レイアウト
スクリプト
ワンポイント
参照先トレースリンク