请考虑此自定义报告:
我想在所有页面上自动生成该页码。我有一些横向页面。我想将页码放在页脚中,但是在横向报告中对此有疑问,因为横向报告中的页脚位于页面底部而不是页面右侧,因此我应该将页码放在正文部分。
如何在正文部分放置页码?
请考虑此自定义报告:
我想在所有页面上自动生成该页码。我有一些横向页面。我想将页码放在页脚中,但是在横向报告中对此有疑问,因为横向报告中的页脚位于页面底部而不是页面右侧,因此我应该将页码放在正文部分。
如何在正文部分放置页码?
除非你有创意,否则我认为这是不可能的。
目前手头没有程序,我希望这可以开始一些思考。
尝试在您的数据中添加一个 exrta 列,计算行数,并每隔 x 行强制分页。如果可行,您可以使用一些格式来使其在视觉上正确。
哇祝你好运!
这篇文章可能有点用:确定SSRS中的页码
确定 SSRS 中的页码
此方法利用 SQL Server 的新排名功能,可用于您的 SQL 报告以确定报告正文中的页码,也可能根据该信息隐藏/显示列。
在以下情况下使用此方法:
- 您对页面上显示的记录数有预设限制
- 您有分组,每个组都显示在自己的页面上
- 可以准确计算每页的记录数
文章中的解决方案使用了SQL中的Ranking Functions,值得一看,看看它是否适用。
所以我提到有 3 个场景可以为你工作。我将举例说明如何做每一个,让你的创造力来做剩下的。这将作为我们的示例销售表:
name sales_amount group_name Scenario #1 Scenario #2 Scenario#3
A 10 A1 1 1 1
B 20 A1 1 1 1
C 30 A1 2 1 1
D 30 A2 2 2 1
E 40 A3 3 3 2
F 40 A3 3 3 2
G 50 A4 4 4 2
H 60 A5 4 5 2
场景#1:
您有一个预设的 # 条记录放置在每个页面上:这是您的 SQL 查询的样子:
DECLARE @rows_per_page INT
SET @rows_per_page = 2
SELECT
employee.name
,page = (Row_Number() OVER ( ORDER BY employee.sales_amount ) / @rows_per_page)
FROM
employee
然后,在 SSRS 中,您可以在 tablix (SSRS 2008) 中创建父组,并设置选项以中断“组的每个实例之间”。(SSRS 2008 中的分页符选项卡)
场景#2:
您有分组,每个组都显示在自己的页面上
SELECT
employee.name
,page = Dense_Rank() OVER ( ORDER BY employee.group_name )
FROM
employee
在您的 SSRS 报告中,在表/矩阵/tablix 的组属性上,设置选项以中断“组的每个实例之间”。(SSRS 2008 中的分页符选项卡)
场景#3:
您可以准确计算每页上的记录数如果您可以准确计算每页上的记录数,那么使用与#1类似的方法将变得很容易。在示例中,该数字是每页 4 条记录。
使用此: 在 SSRS 中访问报表正文中的页码
您只需要为报告创建自定义代码,然后在您想要的位置引用该代码(从第二个链接引用):
在“数据”或“布局”选项卡视图处于活动状态时,选择“报告”->“报告属性” 在“报告属性”对话框中选择“代码”选项卡 在“自定义代码:”中添加新函数以获取页码:
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()