2014-01-15 5 views
0

Я использую «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 сделать это?

ответ

0

Я смог решить эту проблему, разместив TaxRate внутри Позиций (вместо Positions.Article). Похоже, что Stimulsoft имеет проблему, когда сумма включает в себя значения объекта и значения под-объекта одновременно.

{ 
    Sum 
    (
     DataBandTax, 
     (
      Positions.UnitPrice * 
      Positions.Amount * 
      (
       Positions.TaxRate + 
       100 
      ) 
     )/
     100 
    ) 
} 
Смежные вопросы