繰り返しコンテナの参照連動
最終更新日: 2022年5月18日
R8 | R9
見積書モデルを用意しました。これを参照連動の元とします。
この見積書モデルを参照する、注文書モデルを用意しました。見積書を選択しています。
紐づく(見積書)モデルが確定されると、繰り返しコンテナ全体が参照連動されます。
この動作イメージを図4に示します。
「見積書」項目は見積書モデルの「件名」項目をリストボックス形式で参照します。
本機能を利用する場合、以下のいずれかの設定を必ず入れるようにしてください。画面の再描画によって参照連動を行わせる必要があるためです。
今回のケースでは、繰り返しコンテナ内にリストボックス項目が含まれるため、このルールを満たしています。
参照連動項目を自モデル保存とすることで、参照後に値を変更して保存することもできます。
書き換えた値は、参照元とは別個に管理されます。
図3のアプリケーションを、参照連動自モデル保存に変更した例を示します。
値を変更して保存することができます。下図は「商品」と「価格」を自モデル保存とした例です。
自モデル保存する項目は「値をデータベースに保存する」を有効にします。
また、「読込専用」の設定を "解除" します。
参照連動の保存を行う場合、次のルールが適用されます。
参照元となるモデルの繰り返しコンテナに対して、条件式を指定して(参照連動するデータを)絞込むことができます。
「価格が100(円)より大きい場合のみ参照連動する」という条件を付与した例を示します。
見積書には3件の明細を含めています。
注文書の新規登録画面では2件の明細が参照連動されました。
「入力制御 > 繰り返し > コンテナの参照連動時の表示条件」に式を記述します。
ここでは式を次のように設定しています。
表示条件の式に繰り返しコンテナ外にあるモデル参照項目が含まれていた場合、その項目の値が変更されたタイミングで画面再描画が行われると、変更された値を反映した参照連動の絞り込みが行われます。
繰り返しコンテナ meisai の「コンテナの参照連動時の表示条件」に次の式を設定したとします。
ここではコンテナ内項目 meisai/seibetsu_no の ID部と、コンテナ外項目 seibetsu_list の ID 部が一致するもので絞り込むとしており、両方ともモデル参照項目です。また seibetsu_list 項目は "値変更時に画面を再描画する" を有効としています。
このとき Wagby は式を解析し、seibetsu_list 項目が変更(かつ再描画)されたときも繰り返しコンテナ meisai の参照連動を行うようになります。そのため、コンテナ外項目 seibetsu_list の選択肢を変更すると、繰り返しコンテナ参照連動の内容が書き換わるという動きを実現できます。
画面再描画の設定ルールを満たしているかどうかをご確認ください。
次の例をもとに説明します。
繰り返しコンテナの参照連動、かつ、繰り返しコンテナ内に自モデル保存の項目が存在する場合は、この処理は仕様となります。子モデルで一度参照連動した後に親モデルで添付ファイルが追加されても、子モデルのデータには反映されません。
子モデルの登録時のスクリプトで対応する方法があります。
スクリプトでは親の繰り返しコンテナデータを取得し、子の繰り返しコンテナデータとして転記させます。このとき子モデルに既存のコンテナデータが存在していても、これを無視して上書きするようにする、というものです。
例
定義方法
「顧客」と「商品」は見積書モデルで参照します。(説明は省略します)
ワンポイント:画面再描画の設定
参照連動を自モデル保存する
例
その後、紐づく見積書モデル側の明細を変更しても、この注文書モデルには影響はありません。
定義方法
仕様・制約
条件によって参照連動するデータを絞り込む
例
定義方法
この式がtrue
となった行のみが参照連動されます。
${rcont/rprice}>100
仕様
式による連動
例
${meisai/seibetsu_no#id}==${seibetsu_list#id}
トラブルシューティング
繰り返しコンテナの参照連動が動作しない
先頭の行だけが参照連動されない
想定するモデル構成
処理の流れ
対策