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

Ssrs 2008 Code.Grandtotal()变量在SSRS中的新页面上重置,ssrs-2008,ssrs-2012,Ssrs 2008,Ssrs 2012,我有一个复杂的表达式,它根据账单类型计算收入。基本上说,如果账单类型=进度,使用X计算;如果账单类型=NTE,使用Y计算;对于其他所有内容,使用Z。因为这是一个聚合,您不能简单地使用SSRS中的求和函数来求和总数。您需要使用自定义代码。我一直在使用我在Stack上发现的以下内容。见下文 Public Shared Dim grandTotal as Decimal Public Shared Dim costCenterTotal as Decimal Public Shared Dim wor

我有一个复杂的表达式,它根据账单类型计算收入。基本上说,如果账单类型=进度,使用X计算;如果账单类型=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()函数

问题是,当我运行报告时,我在总计行中没有得到正确的总计。它似乎会根据我是否查看报告的每一页而变化,即使我查看了所有页面,总计也不正确。它似乎重置了。有人能告诉我我做错了什么吗。
谢谢

你在多页上重复总数吗?我认为它会在每次使用后重置,因为GrandTotal=0。也许试着删除那行。我会在你的SQL中重现计算结果。