Evaluator — Tổng quan

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Evaluator là “động cơ” xử lý của Bravo. Mọi phép tính, gán giá trị, gọi thủ tục, mở màn hình, điều khiển control… đều thực hiện qua Evaluator.

Từ tài liệu gốc

Tất cả các xử lý ở ServerConstraint, LinkCommand, bindingMembers (của Bravo 7) đều được đưa vào xử lý trong các <Evaluator_X>.

Cấu trúc một Evaluator

<Eval_Ten_Evaluator>
  <ClassName>BravoXxxEvaluator</ClassName>   <!-- loại xử lý -->
  <DataMember>Cột / bảng tác động</DataMember>
  <Expr>Điều kiện chạy</Expr>
  <scopeType>Phạm vi</scopeType>
  <allowRunning>Khi nào chạy</allowRunning>
  <!-- các thẻ riêng theo ClassName -->
</Eval_Ten_Evaluator>

Ba trục điều khiển

flowchart TD
    E["Evaluator"]
    E --> S["scopeType<br/>CHẠY TRÊN DÒNG NÀO"]
    E --> A["allowRunning<br/>CHẠY KHI NÀO"]
    E --> X["Expr / zScopeExpr<br/>CHẠY VỚI ĐIỀU KIỆN GÌ"]
ThẻCâu hỏi trả lời
scopeTypeEvaluator chạy trên những dòng nào?
allowRunningChạy khi nào — lồng nhau, lần đầu, dòng đầu/cuối?
zScopeExprLọc tiếp dòng nào trong phạm vi?
ExprĐiều kiện cuối cùng để chạy
bSuppressChangeEventsCó kích hoạt sự kiện dây chuyền không?
bSuppressLookupEventsCó kích hoạt lookup không?

Danh sách ClassName

Nhóm cốt lõi — dùng hằng ngày

ClassNameChức năngB8B10
BravoEvaluatorĐịnh nghĩa giá trị cho cột hoặc điều khiển control (mặc định)✅✅
BravoCopyValueCopy giá trị giữa các bảng✅✅
BravoBindingMemberTự động lấy thông tin như binding trong lookup✅✅
BravoMoneyEvaluatorTính toán trên các cột tiền✅✅
BravoServerConstraintĐẩy dữ liệu trả về từ thủ tục vào cột / bảng✅✅
BravoCommandKeyThực thi một lệnh / mở màn hình✅✅

Nhóm thao tác dòng

ClassNameChức năngB8B10
BravoAddRowEvaluatorThêm một dòng mới vào một bảng✅✅
BravoDeleteRowEvaluatorXóa dòng chi tiết✅✅
BravoSelectRowEvaluatorChỉ định bảng / bản ghi được chọn✅✅
BravoTableOrdererĐánh số thứ tự các dòng✅✅
BravoTableAggregatorTập hợp (gộp nhóm) các dòng trước khi lưu✅✅
BravoAllocationEvaluatorPhân bổ cho các dòng chi tiết✅✅

Nhóm tích hợp thiết bị & dịch vụ ngoài

ClassNameChức năngB8B10
[[BravoFileWriterBravoFileWriter / BravoReadFile]]Ghi / đọc nội dung text hoặc binary ra file✅
BravoAddFileEvaluatorĐọc nhiều file và thêm dòng tương ứng vào bảng con✅✅
[[BravoPortSIPVoIPEvaluatorBravoPortSIPVoIPEvaluator / BravoPortSIPVoIPInviteIncomingEvaluator]]Gọi / nhận cuộc gọi VoIP qua tổng đài PortSIP✅
BravoTimeAttendanceEvaluatorLấy dữ liệu máy chấm công Dahua, Zkemkeeper✅✅
BravoOauth2ResponseTypeCodeKý số / xác thực OAuth2 với ngân hàng điện tử✅✅
BravoSendMailEvaluatorGửi mail tại máy trạm✅✅
BravoSendDataChangeGửi thông báo dữ liệu thay đổi cho các client khác✅✅
BravoPasswordPolicyValidatorKiểm tra mật khẩu có đáp ứng chính sách bảo mật✅✅
BravoPosPromotionProgramTính các chương trình khuyến mại❌✅
BravoDataServiceEvaluatorLấy thông tin doanh nghiệp theo mã số thuế❌✅

Ghi chú chung quan trọng

Thứ tự khởi tạo control

Khi Load form, các Eval bảng mẹ có khai báo thẻ controls được ưu tiên thực hiện trước. Eval thiết lập control ở bảng con / cháu phải đặt ở bảng Parent — đặt trong ServerLoaded hay RowAdded của bảng con đều vô tác dụng.

Quy ước đặt tên

Eval_<Tên bảng chi tiết>_<Tên trường tác động>_<Ghi chú>

Liên quan

Evaluator_X · Evaluators · EvaluatorGroups · Validator Overview · Vòng đời sự kiện Editor

Có 32 trang trong thư mục này.