Я использую «Stimulsoft Reports.Net», чтобы рассчитать общую цену, основанную на нескольких товарах с разными ценами, суммарным и налоговым ставками. Это мой код:Как избежать проблем с суммой в stimulsoft
{
Sum
(
DataBandTax,
(
Positions.UnitPrice *
Positions.Amount *
(
Positions.Article.TaxRate +
100
)
)/
100
)
}
Позиции - это бизнес-объект, каждый объект позиций имеет ровно одну статью. В то время как 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 вычисляет это: (В этом примере используется только TaxRate из позиции 1)
((100 * 3) + (50 * 10) + (20 * 5))
* (1+(5/100))
= (300 + 200 + 100) * 1.05
= 600 * 1.05
= 630
Как Я не могу заставить stimulsoft сделать это?