gpt4 book ai didi

sql-server - 如何在SSRS 2008 R2的报告正文中显示页码?

转载 作者:行者123 更新时间:2023-12-02 12:19:25 27 4
gpt4 key购买 nike

我认为很多开发人员都面临着尝试使用 SSRS 2008 R2 显示页码的问题

有一个替代解决方案需要 SSRS 2010 + 版本。否则你将一直得到 1。

转到“报告” -> “报告属性” -> “代码”

自定义代码部分中,输入以下内容:

Public Function PageNumber() as String
Dim str as String
str = Me.Report.Globals!PageNumber.ToString()
Return str
End Function

Public Function TotalPages() as String
Dim str as String
str = Me.Report.Globals!TotalPages.ToString()
Return str
End Function

现在您将能够在报告中的任何位置(页眉、正文或页脚)访问这些功能。因此,要在正文中的文本框中输出页码和总页数,只需输入以下值:

="Page " + Code.PageNumber() + " of " + Code.TotalPages()

<强> This该解决方案不适用于 SSRS 2008 R2。

但是有一个解决方法,它适用于任何高于 2008 R2 的版本(包括 2008 R2)。我将作为答案发布,希望它可以帮助一些遇到此问题的人。

最佳答案

首先您需要使用报表变量:右键单击报表的空白处 -> 变量 -> 创建一个变量,例如 PageCount(将默认值设置为 0)

然后在页眉或页脚中 -> 创建一个文本框并设置表达式 ->

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

每页它会自动增加。(重要:不要将其隐藏在页眉或页脚中,如果隐藏该框,SetValue 将不起作用,因此将字体更改为 1 或将文本更改为白色,无论做什么,只是不要隐藏它 (当设置发生时,它将打印“True”))

然后你可以使用:

=Variables!PageCount.Value

在报告正文的任何​​部分访问页码。

重要提示:请注意,我尝试使用 Globals!PageNumber 来设置变量,但最终无法从报告正文访问它。因此,它必须是可以从页眉/页脚或正文访问的内容。

就我而言,我必须重置组中每个实例的页码。所以我只是在组的末尾设置了一个触发器。(例如,我检查是否有总值(value)返回,因为我知道对于我的组的每一端,我都会显示总值(value)。

因为函数 IIF 中 True 和 False 部分都会被处理,所以如果你将 setter 放入 IIF 中,如下所示:

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),Variables!PageCount.SetValue(0))

)

您最终的值将始终为 0,因为报告将先检查 True 部分,然后检查 False 部分,两个 setter 都将被执行(值将被设置两次)

所以我们需要 2 个盒子和类似的东西:(您必须隐藏检查条件中不必要的框)

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),"")
)

NOT IsNothing(ReportItems!TotalBox.Value) 时,您需要隐藏此框

=IIF(NOT IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(0),"")
)

再次,当IsNothing(ReportItems!TotalBox.Value)时,您需要隐藏此框

当然,您可以使用其他方式来确定组实例的结束,例如:在组表末尾创建一个仅包含固定值的文本框。并隐藏它。当您检查触发器时,只需执行与我类似的方法即可。

它适用于 2008 R2(包含)以上的所有版本。

关于sql-server - 如何在SSRS 2008 R2的报告正文中显示页码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com