Code.Grandtotal()变量在SSRS的新页面上重置

时间:2018-06-25 18:08:30

标签: ssrs-2008 ssrs-2012

我有一个复杂的表达式,可以根据帐单类型计算收入。它基本上说如果Bill类型= Progress使用X计算,如果Bill类型= NTE使用Y计算,对于其他所有内容使用Z。因为这是一个聚合,您不能仅通过使用SSRS中的求和函数来求和。您需要使用自定义代码。我一直在使用我在Stack上找到的以下内容。见下文。

Public Shared Dim grandTotal as Decimal
Public Shared Dim costCenterTotal as Decimal
Public Shared Dim workerTotal as Decimal

Public Shared Function Initialize() 
    grandTotal = 0
    costCenterTotal = 0
    workerTotal = 0
End Function

Public Function AddTotal(ByVal b AS Decimal) AS Decimal
    grandTotal = grandTotal + b
    costCenterTotal = costCenterTotal + b
    workerTotal = workerTotal  + b
    return b
End Function

Public Function GetWorkerTotal()
   Dim ret as Decimal = workerTotal
   workerTotal = 0
   return ret
End Function 

Public Function GetCostCenterTotal()
    Dim ret as Decimal = costCenterTotal 
    costCenterTotal = 0
    return ret
End Function 

Public Function GetGrandTotal()
    Dim ret as Decimal = grandTotal
    grandTotal= 0
    return ret
End Function 

在主表达式中,我向该表达式添加了code.AddTotal()函数,并且在总行中,该列中使用了code.GetGrandTotal()函数。

问题是,当我运行报表时,在总计行中没有得到正确的总计。似乎会改变,这取决于我是否查看报告的每一页,甚至查看所有页面的总计也不正确。似乎重置了。有人可以告诉我我在做什么错。 谢谢。

0 个答案:

没有答案