0

我使用“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 这样做?

4

1 回答 1

0

通过将 TaxRate 放在 Positions 中(而不是 Positions.Article),我能够解决这个问题。当总和同时包含对象值和子对象值时,似乎 Stimulsoft 有问题。

{
    Sum
    (
        DataBandTax,
        (
            Positions.UnitPrice *
            Positions.Amount *
            (
                Positions.TaxRate +
                100
            )
        ) /
        100
    )
}
于 2014-01-15T14:58:06.243 回答