当前位置:  开发笔记 > 数据库 > 正文

在Microsoft Reporting Services中创建计算行的总和

如何解决《在MicrosoftReportingServices中创建计算行的总和》经验,为你挑选了1个好方法。

这似乎应该很简单,但我还没有找到任何东西.在Reporting Services中,我有一个最多包含6行的表,这些表都具有计算值和动态可见性.我想总结这些行.基本上我有一些发票项目,想要总计.我无法更改数据库端的任何内容,因为我的存储过程在系统的其他地方使用.每行也从不同的数据集中提取数据,因此我无法对数据集求和.我可以用表格页脚汇总所有行吗?与在Excel中累计多行相似?将我的可见性表达式从每行放入我的页脚行以计算总和似乎非常多余.



1> Chris Latta..:

有几种方法可以达到这个目的:

1.在SQL中进行计算并对该字段求和,如下所示:

SELECT Quantity, Amount, Quantity * Amount As TotalAmount FROM MyTable

然后只需使用Detail行中的TotalAmount字段,并在页脚中对其求和.

2.创建第二个数据集,为您计算总数并在页脚中使用该数据集而不是总和:

=Sum(Fields!TotalAmount.Value, "MyTotalingDataset")

3.使用自定义代码执行此操作.右键单击"布局"空间,选择"属性",然后单击"代码"选项卡.输入以下代码:

Public Dim TotalAmount As Double = 0

Public Function CalculateRowTotal(ThisValue As Double, ThatValue As Double) As Double
    TotalAmount = TotalAmount + (ThisValue * ThatValue)
    Return ThisValue * ThatValue
End Function

在Detail band上,将字段汇总的列设为具有以下表达式:

=Code.CalculateRowTotal(Fields!Quantity.Value, Fields!Amount.Value)

这将执行上面的代码并进行计算并计算过程中的总和.

页脚区域显示总和,因此列具有以下表达式:

=Code.TotalAmount

而且你已经完成了.请注意,因为您无法保证代码执行的顺序,并且对于某些报告,它将首先执行页脚(例如,如果您使用详细信息区域中的行的总和),这将使总计为零因为细节带计算尚未发生,但对于一般情况,这应该有效.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有