参照連動
最終更新日: 2022年5月9日
R8 | R9
「顧客モデル」と「サポートモデル」を例に説明します。
参照連動は、連動元項目がモデル参照項目となっている必要があります。(文字列、数値、日付といった項目を連動元項目とすることはできません。)
この例のように、モデルには「データベースに保持される情報」だけでなく「画面に表示される情報」も含めることができます。
標準では、参照連動項目は標準ではデータベースに保存されません。(テーブルにもカラムが生成されません。)
参照連動を設定すると、データベース保存設定は自動的に解除されます。表示のタイミングで、データベースから最新の値を取得します。
この動作を変更し、保存できるように設定することもできます。
参照連動項目は自動的に「読み込み専用」となります。
参照先項目が文字列型(テキストエリア)の場合、これを参照連動した場合は次のようになります。
参照元項目(上記例ではサポートモデルの顧客名)が "DB保存なし" の場合、参照連動は機能しません。
参照連動型項目に、次の設定を行うことはできません。
参照連動項目をデータベースに保存する設定を行うこともできます。
図10は、参照連動項目「顧客会社名」をサポートモデルで保存可能とした例です。参照連動された値を修正して保存することができます。
入力可能となった「顧客会社名」を修正後、再び別の顧客を参照すると、顧客会社名は再び参照連動されます。例えば図10において、別の顧客 "佐藤" を選択し直すと、顧客会社名は "佐藤" 氏の会社名へ変更されます。
保存後の値は、顧客モデルの顧客会社名と切り離されて管理されます。その後、顧客モデルの変更が発生した場合でも、サポートモデル側に反映されることはありません。
参照連動元が計算式で求められる場合、次のように参照連動ルールを変更することができます。
ここで「取引先主キー」を変更したときの動作を検討します。
「取引先コード」「取引先口座」がそれぞれ空白の場合、当該項目を参照連動します。
「取引先キー連動元(リストボックス)」が変わった場合は常に参照連動させるケースです。
モデル参照の設定のオプションから、「連動タイミング(参照元が自動計算)」を設定します。
この設定は参照連動元が自動計算によって定まる場合のみ行ってください。
参照連動項目「会社名」をサポートモデルで保存可能とした例です。修正内容は、参照先である「顧客」モデルに反映されます。
この設定は「トランザクション」として扱われます。複数のモデルを更新し、データベースにコミットされます。
モデルAがモデルBを参照する関係において、モデルAの保存時に参照先モデルBのitem1項目を書き換えるとします。このとき、モデルBのitem2項目はitem1項目の値を使って計算される項目であったとします。
参照連動自モデル(または他モデル)保存項目の入力フィルタは次のルールとなります。
検索条件に参照連動の値を表示させることができます。検索項目としては機能しませんので、確認用という位置づけになります。
本機能は、次の検索画面には適用されません。
リストボックスの参照先がリストボックスというのは動作しませんが、ルックアップは例外です。次の設定は動作します。
参照連動が数珠つなぎになっている場合でも、検索することができます。例を示します。
例と定義方法
例
サポートモデルで「顧客名」を参照すると、それに関連する最新の「会社名」が同時に表示されます。
この方式によりデータの重複入力の手間がなくなり、かつ、常に最新のデータを参照することができます。
「検索...」ボタンから、顧客名を確定させます。(詳細は「参照先モデルの参照 > 検索画面」をお読みください。)
定義方法
入力タイプを「参照連動」とし、連動する項目名を「顧客名」、参照先モデル項目名は「会社名称」とします。
参照連動の仕組み
ワンポイント
仕様
データベースとの関係
詳細は"参照連動項目を自モデルに保存する"をお読みください。また、"参照連動項目を参照先モデルに保存する"も関連する内容です。
自動的に読み込み専用になる
参照先項目がテキストエリアの場合
設計上の留意点
参照連動項目を自モデルに保存する
例
ワンポイント
定義方法
「詳細>データベースの詳細」で、「値をデータベースに保存する」を有効とします。さらに、参照モデルの格納先を「自モデル」とします。
データベースとの関係
参照連動項目を自モデルに保存する(上書きタイミングの制御)
例
ここで「取引先」を選択するのはサブウィンドウ(検索画面)ですが、この値のコピーを「取引先キー連動元(リストボックス)」という項目で保持するようにしています。実際の参照連動元となるのは、この項目です。
さらにこの値を元に「取引先コード」「取引先口座」が参照連動されます。これらは自モデル保存項目としており、参照連動後に値を書き換えて保存することができます。
取引先主キーを変更しても、すでに設定済みの値を維持する(標準)
空白でなければ(値がすでに入力されていれば)参照連動されません。入力値を優先するケースです。
取引先主キーの変更に伴い、常に自動更新する
定義方法
今回の設定のポイントは、参照連動元は入力ではなく計算によって求めるようにするというものです。
参照連動のタイミングの設定
注意
参照連動項目を参照先モデルに保存する
例
定義方法
「詳細>データベースの詳細」で、「値をデータベースに保存する」を有効とします。さらに、参照モデルの格納先を「参照先のモデル」とします。
データベースとの関係
自動計算式の制約
参照連動項目の入力フィルタ
フィルタ指定を空白とする
参照先項目と同じフィルタが使われます。
フィルタを指定する
指定したフィルタが使われます。
参照連動項目を表示のみの検索条件とする
動作例
定義方法
「顧客名」と「会社名」は顧客モデルを参照しており、かつ「会社名」は参照連動項目で、検索条件を有効にしています。
制約
参照連動された値を追記する
参照連動の数珠つなぎ
他モデルの参照(リストボックス) > 参照連動 > 通常項目
検索時の動作
参照連動 > 参照連動 > 参照連動 > 文字列型項目
参照連動 > 参照連動 > モデル参照(検索画面)