在 s-s-rS 中访问报表正文中的页码

Posted

技术标签:

【中文标题】在 s-s-rS 中访问报表正文中的页码【英文标题】:Access Page number in report body In s-s-rS 【发布时间】:2011-01-21 12:29:43 【问题描述】:

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

我正在使用SQL Server Reporting Service 2008 R2

【问题讨论】:

【参考方案1】:

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

页码:

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

【讨论】:

你是对的。我们需要实现自定义代码来访问标题上正文部分的值。谢谢。 嗨,我正在报告属性->代码区域中编写这两个函数,并在报告正文部分的文本框中编写“=code.PageNumber &” of “&code.TotalPages”。当总页数为 6 时,它显示“1 of 1”.. 可能有什么问题?请建议... 为什么这个答案会被接受?它不起作用,因为页码不能在报告正文中使用。 对我不起作用,无论有多少页,总是给出第 1 页,共 1 页。 我在表达式中使用此方法来隐藏报表第 1 页上的文本框,该文本框有可能转到多个页面并且它有效。我使用的表达式是:- =IIF(code.TotalPages = 1 OR (code.TotalPages > 1 AND code.PageNumber code.TotalPages), true, false)【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

另见corresponding MS Connect item。【参考方案4】:

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

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

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

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

每页都会自动增加。

注意: 不要将其隐藏在页眉或页脚中,如果隐藏框,SetValue 将不起作用,因此请将文本框的字体更改为白色. (做任何你想做的事,但不要隐藏它。然后你可以使用下面的表达式来获取报告正文中的 pagenumber 值。

=Variables!PageCount.Value

我参考了这个answer。

【讨论】:

以上是关于在 s-s-rS 中访问报表正文中的页码的主要内容,如果未能解决你的问题,请参考以下文章

需要子报告上的页码从 s-s-rS 中的 2 开始

怎样使word页码中的总页数不包括封面和目录(文章正文中包含很多节)

怎样使word页码中的总页数不包括封面和目录(文章正文中包含很多节)

Pdf怎么设置页码,从正文开始

rdlc报表,如何在组内设置页码?

WPS2012 正文部分怎么页码总数怎么才能不算上封面和目录的