2014-01-15 48 views
0

我使用'Stimulsoft Reports.Net'來計算總價格基於多個項目與不同的價格,金額和稅率。這是我的代碼:如何避免在stimulsoft總和問題

{ 
    Sum 
    (
     DataBandTax, 
     (
      Positions.UnitPrice * 
      Positions.Amount * 
      (
       Positions.Article.TaxRate + 
       100 
      ) 
     )/
     100 
    ) 
} 

職位是一個Bussines對象,職位的每個對象都只有一個文章。 雖然Positions.UnitPrice和Positions.Amount正確地相乘,但Stimulsoft使用相同的Positions.Article.TaxRate的每個計算,而不是適合其Position的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 

怎麼辦我停止刺激軟件這樣做?

回答

0

我能夠解決這個問題,將TaxRate放在職位(而不是Positions.Article)內。似乎Stimulsoft在同時包含對象值和子對象值時存在問題。

{ 
    Sum 
    (
     DataBandTax, 
     (
      Positions.UnitPrice * 
      Positions.Amount * 
      (
       Positions.TaxRate + 
       100 
      ) 
     )/
     100 
    ) 
}