【仕様】コレクション型リストボックスの再描画
【仕様】コレクション型リストボックスの再描画
たとえば,
Form.lb:=ds.Products.all()
のようなORDAコードでデータが表示されたリストボックスがあり,
This.Price
This.Price+10
のようなフォーミュラが列に定義されている場合,
「This.Price」のセルに新しい値を入力しても,「This.Price+10」のセルがすぐには更新されません。
これは,コレクション型リストボックスの仕様です。
ただ,明示的にリドローさせるために,
Form.lb:=ds.Products.all()
とデータを再計算する必要はありません。
列のOn Data Changeイベントで
Form.lb:=Form.lb
とデータソースを「タッチ」するだけでじゅうぶんです。フォームオブジェクトにバインドされた変数(この場合はFormのプロパティ)に値を代入すれば,明示的に「更新」フラグを立てることができ,直後の再描画サイクルでリドローされるようにすることができます。
エンティティセレクション(オブジェクト型)の自己代入であり,コピーしているわけではないので,この処理で余計なコストは発生しません。
Form.lb:=ds.Products.all()
のようなORDAコードでデータが表示されたリストボックスがあり,
This.Price
This.Price+10
のようなフォーミュラが列に定義されている場合,
「This.Price」のセルに新しい値を入力しても,「This.Price+10」のセルがすぐには更新されません。
これは,コレクション型リストボックスの仕様です。
ただ,明示的にリドローさせるために,
Form.lb:=ds.Products.all()
とデータを再計算する必要はありません。
列のOn Data Changeイベントで
Form.lb:=Form.lb
とデータソースを「タッチ」するだけでじゅうぶんです。フォームオブジェクトにバインドされた変数(この場合はFormのプロパティ)に値を代入すれば,明示的に「更新」フラグを立てることができ,直後の再描画サイクルでリドローされるようにすることができます。
エンティティセレクション(オブジェクト型)の自己代入であり,コピーしているわけではないので,この処理で余計なコストは発生しません。
miyako- 投稿数 : 487
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可