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 định | False |
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<='{=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 = Truethì các Eval trong RowDeleted, RowAdded… sẽ không được thực hiện
Liên quan
bSuppressLookupEvents · allowRunning · RowAdded · ColumnChanged · BravoServerConstraint