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