在RDLC的主体中显示页码

时间:2016-12-13 09:28:00

标签: reporting-services rdlc ssrs-2012 rdl

如何在RDLC报告的正文部分中获取页码。 Globals!PageNumber只能在Report Header或Footer中使用。如果我将行号放入我的数据集并获取记录号,该怎么办? 限制每页的记录数量并根据记录数进行可见性计算是迄今为止我听说过的最佳解决方案。 任何人都可以教育我这个逻辑吗? 或者还有其他解决方法吗?

P.S: 其他所谓的使用自定义代码的解决方案并没有为您提供正确的页码。它将始终显示1.

2 个答案:

答案 0 :(得分:1)

在身体中获取页码并不是一种更简单的方法。我认为使用数据集行计数是唯一可靠的方法。

我这里有一个简短的SQL语句来获取项目状态信息:

SELECT * FROM PROJ_STATUS

所以我将行号添加为一个字段,并将其除以每页我想要的记录数并添加1(给我每行的页码)

SELECT * , ((DENSE_RANK() OVER(ORDER BY PRS_ID) -1)  / 3 ) +1  AS [CountRow]  FROM PROJ_STATUS

现在,在我的报告中,我有一张表格,显示状态名称以及它们是否有效......我还会将页码添加为一列。

enter image description here

接下来在报告中放入一个列表并将表格放入其中。

enter image description here

然后单击列表左上角的方角,在属性窗口中将数据集设置为您正在使用的数据集。

enter image description here

enter image description here

然后右键单击列表中的行组,并将分组设置为页码列。

enter image description here

在实例之间放置分页符。

enter image description here

你去了!

enter image description here

@ 4Star的-1的原因。看到没有-1,第三行就在第二页上。

enter image description here

答案 1 :(得分:0)

如果您的数据集是您想要获取页码的任何行,那么

=RowNumber("DataSet1")

会奏效。

这与使用

相同
row_number() over (order by (select null))

因为它为行号提供了任意顺序。