在SSRS中如何访问报表正文中的页码

13

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

我正在使用 SQL Server Reporting Service 2008 R2

4个回答

20

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

页码:

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

总页数:

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

可以通过表达式在 body 中访问它:

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

查看Concat函数的示例用法


你说得对。我们需要实现自定义代码来访问头部的正文部分值。谢谢。 - Mike
3
嗨,我在报告属性->代码区域中编写了两个函数,并在报告正文部分的文本框中编写了“= code.PageNumber&" of "& code.TotalPages”,但当总页数为6时显示“1 of 1”...可能是什么问题?请建议... - hemanth
10
为什么这个答案被接受了?它行不通,因为报告正文中无法使用页面编号。 - pabrams
13
无论我需要多少页,它总是只显示第1页,对我来说没用。 - Kevin
我正在使用这个方法来隐藏报表第一页上的文本框,该报表有可能跨越多个页面,并且它是有效的。我使用的表达式是: =IIF(code.TotalPages = 1 OR (code.TotalPages > 1 AND code.PageNumber <> code.TotalPages), true, false) - Neil

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

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


请参阅相应的MS Connect项目 - Jeroen

3

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

从Visual Studio的主菜单中选择报表菜单> 点击报表属性 > 添加一个名为PageCount的新变量(默认值为0)

然后在页眉或页脚内创建一个文本框,并设置以下表达式:

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

每页的页码将会自动增加。

注意:请不要从页眉或页脚中隐藏它,如果隐藏了文本框,SetValue 将无法工作,因此请将文本框字体更改为白色。(可以做任何想做的事情,但不要隐藏它。然后,您可以使用以下表达式在报告正文中获取页码值。

=Variables!PageCount.Value

I have taken reference from this answer.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接