我使用'Stimulsoft Reports.Net'来计算基于具有不同价格,数额和税率的多个项目的总价。这是我的代码:
{
Sum
(
DataBandTax,
(
Positions.UnitPrice *
Positions.Amount *
(
Positions.Article.TaxRate +
100
)
) /
100
)
}
Positions是一个Bussines-Object,Positions的每个对象都只有一篇文章。 当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这样做?
答案 0 :(得分:0)
我能够通过将TaxRate放在Positions(而不是Positions.Article)中来解决这个问题。似乎Stimulsoft在一个sum包含对象值和子对象值的同时有问题。
{
Sum
(
DataBandTax,
(
Positions.UnitPrice *
Positions.Amount *
(
Positions.TaxRate +
100
)
) /
100
)
}