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

问题描述 投票:0回答:5

我想在报告正文部分使用

Globals!PageNumber
。如何访问报告正文?

我正在使用

SQL Server Reporting Service 2008 R2

reporting-services ssrs-2008 ssrs-2008-r2
5个回答
20
投票

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

页码:

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

查看Concat 函数的示例用法


11
投票

不幸的是,在 Reporting Services(直至 RS2008)中,这将在每页上生成“第 1 页,共 1 页”。问题是正文在页眉和页脚之前呈现,因此代码无法访问正确的分页,因为它是在正文中的所有元素之后确定的。

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


6
投票

正文中不能使用页码。仅在报告页脚或页眉中使用它。


3
投票

为此,您需要使用报告变量

从 Visual Studio 的主菜单转到

Report Menu
> 单击
Report Properties
> 添加新变量 - 命名为
PageCount
(默认值为 0)

然后在页眉内部创建一个文本框并设置下面的表达式,

=Variables!PageCount.SetValue(Variables!PageCount.Value+1)

每页都会自动增加。

注意:不要将其隐藏在页眉或页脚中,如果隐藏该框,

SetValue
将不起作用,因此将文本框的字体更改为白色。 (做任何你想做的事情,但不要隐藏它。然后你可以使用下面的表达式来获取报表正文中的页码值。

=Variables!PageCount.Value

我参考了这个答案


0
投票

不知何故,当我尝试此操作时,条件可见性仅适用于标题部分中的元素。当我将元素拖到标题部分之外并进入正文部分时,我无法部署/预览报表,因为“报表 [ReportName] 的定义无效。”

我正在测试主体内部元素的条件可见性,而不是标题,因为隐藏除 1 之外的所有页面上的元素效果很好,但标题的指定空间仍然存在。所以现在我想要删除一大堆空白,我正在尝试通过将条件可见性应用于主体元素来实现这一点。

© www.soinside.com 2019 - 2024. All rights reserved.