日期:2014-05-18  浏览次数:21088 次

reporting services 中如何对数据进行分页合计?
我是用reporting services来做报表,我现在要做报表的页合计,我在网络上面看了很多做页合计的方法,但是都是在水晶报表里面实现的,水晶报表提供的参数是reporting services没有的,所以请高手指点下,怎么在reporting services的报表里面做页合计!立马给分!

------解决方案--------------------
顶哈!~
------解决方案--------------------
本来两个东西就不是很一样嘛,reporting services的分页合计好像直接是取不到的
除非你在外部以参数的形式将页数传进去
------解决方案--------------------
需要用到report code. 设定一个变量保存合计
在每行(最好有一个隐藏列)的expression中里调用一个函数 这个函数把当前的单元格的值加到那个合计变量里
在footer里调用另一个函数 这个函数返回合计变量并把它清零

现在的问题是body和footer使用不同函数域 它们会分别计数 所以body里计算的结果反映不到footer里 正在想办法 当前的效果 第一列和最后一列是使用了report code的
RowIndex Company Name Contact Name Contact Title Quantity
1 Vins et alcools Chevalier Paul Henriot Accounting Manager 12 12 
2 Vins et alcools Chevalier Paul Henriot Accounting Manager 10 22 
3 Vins et alcools Chevalier Paul Henriot Accounting Manager 5 27 
4 Toms Spezialitäten Karin Josephs Marketing Manager 9 36 
5 Toms Spezialitäten Karin Josephs Marketing Manager 40 76 
6 Hanari Carnes Mario Pontes Accounting Manager 10 86 
7 Hanari Carnes Mario Pontes Accounting Manager 35 121 
8 Hanari Carnes Mario Pontes Accounting Manager 15 136 
9 Victuailles en stock Mary Saveley Sales Agent 6 142 
10 Victuailles en stock Mary Saveley Sales Agent 15 157 


------解决方案--------------------
搞定 使用静态变量即可
public shared Dim _rowCount As Int32=0
public shared Dim _sum as Int32=0

public Function AddToRowCount() as Int32
 _rowCount = _rowCount + 1
 return _rowCount 
End Function

public Function AddToSum(ByVal quantity as Int32) as Int32
 _sum+=quantity 
 return quantity
End Function 

public function GetSum() as Int32
 Dim currentSum= _sum
 _sum=0
 return currentSum
end function

public Function GetCurrentCountAndReset() As Int32
Dim currentRowCount = _rowCount
_rowCount = 0
Return currentRowCount
End Function


步骤如上 如果计算行数使用一个隐藏列调用AddToRowCount 如果计算合计就使用AddToSum 不同的列得使用不同的变量存储 在Footer调用GetCurrentCountAndReset和GetSum

结贴吧