访问报告正文中的页码在SSRS中

时间:2011-01-21 12:29:44

标签: reporting-services ssrs-2008 ssrs-2008-r2

我想在报告正文部分中使用Globals!PageNumber。如何访问报告正文?

我正在使用SQL Server Reporting Service 2008 R2

4 个答案:

答案 0 :(得分:13)

在报告属性下的代码中创建函数:

页码:

Function PageNumber() As String    
    Return Me.Report.Globals!PageNumber    
End Function

总页数:

Function TotalPages() As String   
    Return Me.Report.Globals!TotalPages    
End Function

通过表达式在身体中访问它:

=code.PageNumber & " of " & code.TotalPages

查看Sample Usage of the Concat Function

答案 1 :(得分:8)

遗憾的是,在Reporting Services(最高为RS2008)中,这将在每个页面上生成“第1页1”。问题是在页眉和页脚之前渲染了正文,因此代码无法访问正确的分页,因为它是在正文中的所有元素之后确定的。

如果您的报表基本上是一个在每个表上都有预定义行数的大表,请尝试在SQL中使用row_number作为解决方法来手动计算页码:http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/c2047eee-41a8-4d79-ae58-dbf60f6e7554/

答案 2 :(得分:5)

你不能在身体中使用页码。仅在报告页脚或标题中使用它。

答案 3 :(得分:1)

为此您需要使用报告变量

从Visual Studio的主菜单转到Report Menu> 点击Report Properties > 添加新变量 - 名为{{ 1}} (默认值为0)

然后在页脚标题内创建一个文本框并设置下面的表达式

PageCount

每页都会自动增加。

注意: 请勿将其隐藏在页眉或页脚中,如果隐藏该框,则=Variables!PageCount.SetValue(Variables!PageCount.Value+1) 将无效,因此请将文本框的字体更改为白色。 (做你想做的任何事情,但不要隐藏它。然后你可以使用下面的表达式来获取报告正文中的页面编号值。

SetValue

我参考了这个answer