我使用“Stimulsoft Reports.Net”来计算基于具有不同价格、金额和税率的多个项目的总价格。这是我的代码:
{
Sum
(
DataBandTax,
(
Positions.UnitPrice *
Positions.Amount *
(
Positions.Article.TaxRate +
100
)
) /
100
)
}
Positions 是一个Bussines-Object,Positions 的每个对象都有一个Article。虽然 Positions.UnitPrice 和 Positions.Amount 相乘正确,但 Stimulsoft 每次计算都使用相同的 Positions.Article.TaxRate,而不是适合其位置的 TaxRate。例如:
Position | UnitPrice | Amount | TaxRate
1 | 100 | 3 | 5
2 | 50 | 10 | 10
3 | 20 | 5 | 3
所以计算应该是:
((100 * 3 * (5 + 100)) / 100)
+ ((50 * 10 * (10 + 100)) / 100)
+ ((20 * 5 * (3 + 100)) / 100)
= 315 + 550 + 103
= 968
相反,stimulsoft 计算:(在此示例中,它仅使用位置 1 的 TaxRate)
((100 * 3) + (50 * 10) + (20 * 5))
* (1+(5/100))
= (300 + 200 + 100) * 1.05
= 600 * 1.05
= 630
如何阻止 stimulsoft 这样做?