bSuppressChangeEvents

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Khai báo cho phép ngăn chặn thực thi các Evaluator khi có sự thay đổi dữ liệu.

Giá trịTrue / False
Mặc địnhFalse

Cú pháp

<Evaluators>
  <Eval_X>
    <bSuppressChangeEvents>True</bSuppressChangeEvents>
  </Eval_X>
</Evaluators>

Ví dụ

Chức năng chọn đơn đặt hàng bán ở Editor Hóa đơn:

<Eval_SaleOrder_GetData>
  <ClassName>BravoServerConstraint</ClassName>
  <CommandKey>BizDocSO</CommandKey>
  <zCtorArgs>AutoSearch=True;SelectKey=CustomerCode LIKE
    '{=ISNULL(CustomerCode,'%')}' AND DocDate&lt;='{=DocDate}' AND
    CurrencyCode='{=CurrencyCode}' AND Post_TheKho=1 AND ISNULL(Closed,0)=0;</zCtorArgs>
  <Command>usp_B30AccDocSales_ImportFromB30BizDoc_SO</Command>
  <DataMember>Ct0</DataMember>
  <zTargetValueMember>BizDocId_SO</zTargetValueMember>
  <zSourceValueMember>BizDocId</zSourceValueMember>
  <zSourceReturnMember>Id,BizDocId,DocNo,Description</zSourceReturnMember>
  <bSuppressChangeEvents>True</bSuppressChangeEvents>
</Eval_SaleOrder_GetData>

Diễn giải: sau khi tích chọn các dòng ở đơn hàng và đóng màn hình, các dòng chi tiết được chèn vào Grid của Hóa đơn. Lúc đó chương trình sẽ gọi các Evaluator khai báo trong RowAdded, ColumnChanged…

Nhưng nếu khai báo bSuppressChangeEvents = True thì các Evaluator này không được thực thi nữa.

Vì sao?

Thủ tục server đã tính toán và trả về dữ liệu hoàn chỉnh — chạy lại các Eval tính toán ở client là thừa và chậm.

Ghi chú

Không có tác dụng với

  • Trường hợp đẩy dữ liệu vào bảng từ Eval dạng BravoServerConstraint, các Evaluator khai báo trong RowAdded có thể không được thực thi nếu có bSuppressChangeEvents
  • Nếu bSuppressChangeEvents = True thì các Eval trong RowDeleted, RowAdded… sẽ không được thực hiện

Liên quan

bSuppressLookupEvents · allowRunning · RowAdded · ColumnChanged · BravoServerConstraint