BravoEvaluator

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Dùng để thực thi việc định nghĩa giá trị cho một cột hoặc điều khiển các Controls.

Đây là giá trị mặc định

Nếu Evaluator không khai báo thẻ ClassName thì mặc định là BravoEvaluator.

Cú pháp

Trường hợp 1 — gán giá trị cho một cột

<Eval_X>
  <DataMember>Ten_bang/Ten_cot</DataMember>
  <Value>Gia_tri</Value>
  <Expr>Dieu_Kien</Expr>
</Eval_X>

Trường hợp 2 — điều khiển control

<Eval_X>
  <DataMember>Ten_bang/Danh_sach_cot</DataMember>
  <Controls>
    <Name>Danh_sach_Cot/Ten_bang</Name>
    <Enabled>Bieu_thuc</Enabled>
    <Format>Bieu_thuc</Format>
    <Select>Bieu_thuc</Select>
    <Style>Bieu_thuc</Style>
    <Visible>Bieu_thuc</Visible>
  </Controls>
</Eval_X>

Thuộc tính

ThẻNội dung
DataMemberDanh sách cột đích tác động dữ liệu
ValueGiá trị sẽ nhận của cột đích
Name (trong Controls)Danh sách các control chịu sự tác động
EnabledTính chất cho edit. Biểu thức trả về False → control không cho edit
FormatĐịnh dạng control. Kết quả biểu thức là số thập phân hiển thị (N0, N2…)
SelectLựa chọn bản ghi được chọn: None / Indicated / Next / Previous
StyleĐịnh dạng màu sắc, nền, căn lề… → Style
VisibleẨn / hiện control. Biểu thức trả về False → không hiển thị

DataMember vs Name

  • Danh sách control trong DataMember là các cột trong bảng mà Eval được khai báo
  • Danh sách cột trong Name có thể là cột ở bất cứ đâu

Ví dụ

Ẩn/hiện cột theo mã tiền tệ

<Eval_Controls_Visible>
  <DataMember>TotalAmount0,TotalAmount3,TotalAmount</DataMember>
  <Controls>
    <Name>BravoGridContainer.Item_Inventory.UnitCost.Amount9,
          BravoGridContainer.Item_AtchDoc.AmountBeforeTax.Amount</Name>
    <Visible>CurrencyCode&lt;&gt;CONFIG('M_Ma_Tte0')</Visible>
  </Controls>
</Eval_Controls_Visible>

Chỉ cho gõ tỷ giá khi khác đồng tiền hạch toán

<Eval_Enable_ExchangeRate>
  <DataMember>ExchangeRate</DataMember>
  <Controls>
    <Enabled>CurrencyCode&lt;&gt;CONFIG('M_Ma_Tte0')</Enabled>
  </Controls>
</Eval_Enable_ExchangeRate>

Khóa thêm/xóa dòng khi hóa đơn đã in

Khai báo ở bảng mẹ:

<Eval_GridSales_AllowAddNewWhen>
  <Controls>
    <Name>BravoGridContainer.Item_Sales</Name>
    <AllowDelete>Empty(Printed)</AllowDelete>
    <AllowAddNew>Empty(Printed)</AllowAddNew>
  </Controls>
</Eval_GridSales_AllowAddNewWhen>

Chuyển con trỏ sang tab khác

<Eval_Prepayment_Select>
  <Controls>
    <Name>BravoGridContainer.Item_ApplyPrepay</Name>
    <Select>Indicated</Select>
  </Controls>
</Eval_Prepayment_Select>

Ghi chú

Thẻ <Controls> hỗ trợ mọi thuộc tính control

Với Eval có sử dụng thẻ controls thì có thể hỗ trợ tất cả các thẻ chung của một control — các thẻ gợi ý ở trên chỉ là các thẻ hay dùng.

→ Xem đầy đủ tại Bắt đầu với Controls

Vị trí khai báo

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.

Liên quan

controls · DataMember · Value · Visible · Enabled · Style · Bắt đầu với Controls