BravoAllocationEvaluator

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Dùng để phân bổ một giá trị tổng cho các dòng chi tiết theo một hệ số.

Cú pháp

<Eval_X>
  <ClassName>BravoAllocationEvaluator</ClassName>
  <DataMember>Ten_Cot</DataMember>
  <Expr>Dieu_Kien</Expr>
  <zAllocationBaseMember>Ten_Cot</zAllocationBaseMember>
  <Value>Ten_cot</Value>
  <allocationRemainTarget>Gia_tri</allocationRemainTarget>
  <zResultDecimalRound>Gia_tri</zResultDecimalRound>
</Eval_X>

Thuộc tính

ThẻNội dung
DataMemberTrường nhận giá trị phân bổ
zAllocationBaseMemberCơ sở để phân bổ — chỉ định cột làm hệ số phân bổ
ValueGiá trị cần đi phân bổ
zResultDecimalRoundSố thập phân cần làm tròn khi phân bổ
allocationRemainTargetQuy định việc số dư sau phép chia sẽ được xử lý như nào
zScopeExprĐiều kiện giới hạn các dòng phân bổ

allocationRemainTarget

Giá trịNội dung
Auto(mặc định) Tự động lấy dòng bất kỳ
MinPhần dư > 0 được cộng vào dòng có tiền phân bổ nhỏ nhất
MaxPhần dư > 0 được cộng vào dòng có tiền phân bổ lớn nhất

Vì sao cần allocationRemainTarget?

Phân bổ số tiền cho nhiều dòng luôn có sai số làm tròn. Thẻ này quyết định “đồng lẻ” rơi vào dòng nào để tổng phân bổ khớp tuyệt đối với số cần phân bổ.

Ví dụ

Chức năng phân bổ tổng tiền ở Summary — Editor chứng từ Chi phí mua hàng:

<Eval_Ct0_OriginalAmount9_AllocFromParent>
  <ClassName>BravoAllocationEvaluator</ClassName>
  <DataMember>OriginalAmount9,OriginalAmount</DataMember>
  <zAllocationBaseMember>AllocationRate</zAllocationBaseMember>
  <Value>IIF(Empty(AllocationRate),0,Parent.TotalCostAllocOriginalAmount)</Value>
  <zResultDecimalRound>Parent.DecimalRound</zResultDecimalRound>
  <zScopeExpr>!Empty(AllocationRate)</zScopeExpr>
</Eval_Ct0_OriginalAmount9_AllocFromParent>

→ Phân bổ số tiền gõ ở Summary theo phương thức lựa chọn cho các dòng chi tiết, chỉ với các dòng có hệ số phân bổ.

Liên quan

BravoMoneyEvaluator · zScopeExpr · zResultDecimalRound · BravoTableAggregator