我正在使用 SQL Server2005 报告服务编写报告。我有一个提供数据集的存储过程。
数据在报告中被分成组。每个组页脚都有一个函数(表达式),它是根据表中的字段计算的平均值(让我们将此值称为 X)。在数据的末尾,我希望报告有一个页脚,其中包括所有 X 值的总和。
请注意,我不想要列中所有字段的总和,但我想要组页脚中所有计算值的总和。这在 Excel 中真的很容易做到
这个问题似乎很简单,但我正在努力寻找答案。我会很感激任何帮助,谢谢。
我正在使用 SQL Server2005 报告服务编写报告。我有一个提供数据集的存储过程。
数据在报告中被分成组。每个组页脚都有一个函数(表达式),它是根据表中的字段计算的平均值(让我们将此值称为 X)。在数据的末尾,我希望报告有一个页脚,其中包括所有 X 值的总和。
请注意,我不想要列中所有字段的总和,但我想要组页脚中所有计算值的总和。这在 Excel 中真的很容易做到
这个问题似乎很简单,但我正在努力寻找答案。我会很感激任何帮助,谢谢。
在搜索了 MS 论坛并进行了多次试验和错误之后,我的发现是这是此版本 BIDS 的限制。以下是解决方法:
1) 升级到更高版本的 BIDS。我没有调查我的问题是否会在以后的版本中得到解决,因为此时升级不是一个选项。
2) 向数据集添加一个新的计算字段。这不起作用,因为对于我的应用程序,计算字段需要不支持的聚合函数。
3) 最好的解决方案是在报表属性中添加一个 VB 代码函数,如下所示:
Dim Shared totalBalance
Dim Shared Cnt AS Integer
Public Function AddTotal(ByVal balance )
totalBalance = totalBalance + balance
Cnt=Cnt+1
return balance
End Function
Public Function GetTotal()
return totalBalance
End Function
然后将组页脚中的代码引用为:=Code.AddTotal(Avg(Fields!Amount.Value))
并从报告页脚为:
=Code.GetTotal()
此解决方案在组页脚中运行良好,但在报表末尾的报表页脚中,变量Cnt
和totalBalance
被重置为 0。