BravoTableAggregator

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Dùng để tập hợp (gộp nhóm) các dòng dữ liệu trước khi thực thi việc lưu dữ liệu.

Lợi ích

Việc sử dụng Evaluator này sẽ làm giảm dung lượng lưu trữ một cách đáng kể — nhiều dòng chi tiết được gộp thành ít dòng khi ghi vào bảng đích.

Cú pháp

<Eval_X>
  <ClassName>BravoTableAggregator</ClassName>
  <DataMember>Ten_bang</DataMember>
  <zScopeExpr>Bieu_Thuc</zScopeExpr>
  <Groups>
    <Ten_Cot_Dich>Ten_Cot_Nguon</Ten_Cot_Dich>
  </Groups>
  <SumValues>
    <Ten_Cot_Dich>Ten_Cot_Nguon</Ten_Cot_Dich>
  </SumValues>
</Eval_X>

Thuộc tính

ThẻNội dung
DataMemberCột đích tác động dữ liệu — chính là bảng sẽ insert dữ liệu vào
ExprĐiều kiện các dòng thỏa mãn để thực thi
GroupsGiá trị tương ứng các cột khi nhóm dữ liệu
SumValuesGiá trị tương ứng các cột khi Insert (cột được cộng tổng)
Values(từ v4.5.8.0) Hỗ trợ khai báo các biểu thức chỉ thực hiện trong phạm vi nhóm
bAutoResetDataMemberData(ngầm định True) Có xóa các dòng trong bảng DataMember trước khi thực hiện không
zDataSourceNameChỉ định tên nguồn dữ liệu được tính tổng: bảng, bảng temp, hoặc view

Thẻ <Values> (v4.5.8.0+)

<Values>
  <Col1>SUM(…)</Col1>
  <Col2>AVG(…)+MAX(…)</Col2>
</Values>

Cách đọc Groups / SumValues

VếÝ nghĩa
<Ten_Cot1> (tên thẻ)Tên cột của bảng khai báo trong DataMember (bảng đích)
Ten_Cot2 (giá trị)Cột ở bảng mà Evaluator được khai báo (bảng nguồn)

Ví dụ

Editor Hóa đơn GTGT — gộp các dòng tiền thuế Tiêu thụ đặc biệt trước khi lưu vào B30AccDocAtchEntry:

<Eval_AtchEntry_SumGroupByFromDetail>
  <ClassName>BravoTableAggregator</ClassName>
  <DataMember>vB30AccDocAtchEntry_Edit</DataMember>
  <zScopeExpr>!Empty(Amount6)</zScopeExpr>
  <Groups>
    <DebitAccount>CreditAccount2</DebitAccount>
    <CustomerCode>CustomerCode</CustomerCode>
    <ProductCostId>ProductCostId</ProductCostId>
  </Groups>
  <SumValues>
    <OriginalAmount>OriginalAmount6</OriginalAmount>
    <Amount>Amount6</Amount>
  </SumValues>
</Eval_AtchEntry_SumGroupByFromDetail>

Ghi chú

scopeType đặc biệt

Đây là dạng Evaluator đặc biệt — phạm vi scopeType luôn là Table (toàn bộ bảng).

Từ v4.1.4.0 có hỗ trợ khai báo scopeType:

  • scopeType = CurrentView → lấy thứ tự các dòng theo thứ tự hiển thị trên Grid nhập liệu
  • ⚠️ Nhưng không có tác dụng khi import

Liên quan

BravoTableOrderer · BravoAllocationEvaluator · zScopeExpr · ServerUpdating · scopeType