想要在SSRS中显示每页的修订行数

时间:2012-02-09 13:23:04

标签: reporting-services

我搜索谷歌在SSRS中显示每页的行数,并找到解决方案 1)添加组并为视图=CEILING(RowNumber(Nothing)/10).

添加一个表达式

从这个网站http://gauravsqlserver.blogspot.in/2011/03/how-to-fix-number-of-rows-per-page-in.html我得到了信息,并按照所有步骤,但当我编译报告,然后我收到错误,如

Tablix“Tablix5”的排序表达式使用函数RowNumber。 RowNumber不能用于排序表达式。

所以请指导我如何解决这个错误,并告诉我我是在正确的轨道上每页显示10条记录。

2 个答案:

答案 0 :(得分:6)

在群组属性中,转到Sorting

您可能会发现创建了默认排序。

删除它并尝试运行报告。

答案 1 :(得分:3)

几年前,我提出了一个有趣的报告请求,其中涉及检索患者预约记录以放入SSRS报告中。报告的格式必须采用收费单的形式,如下所示。收费单的每个页面不能包含超过10个患者记录,但仍包含10行患者数据的网格/表格...即使从查询中检索到的记录少于10个或在最终页面上显示。 正如您在第一个屏幕截图所示,我们在报告的第2页,共2页,显示剩余的5个患者记录和5个空行。

enter image description here

(请注意,该报告检索了15名患者,因为第1页中有10名患者。)还需要保持报告的顶部和底部静止,并将这些和患者数据放入页面中。 以下是我为实现报告要求而采取的步骤:

  1. 我将一个表对象带到了Layout上并创建了两个表组:一个用于报表的顶部和底部(table1_Group1),还包括从查询中检索的详细数据,以及中间部分(table1_Group2)这将决定要显示的空行数。
  2. enter image description here

    enter image description here

    顶部包含固定区域,这些区域简单地由两个报告标题行组成。请注意,最终报告最小化到前2个组标题行(1,2,高于table1_Group2详细信息行的高位),并在屏幕截图中展开,以显示报告表的构造。

    enter image description here

    底部显示了对费用单的临床程序进行硬编码所需的多个table1_Group1页脚行。并且,在我之间添加了table1_Group2的10个页脚行。如果在详细信息行中填充的记录少于10条,则Group2中的这些页脚行将允许报表模拟报表中所需的剩余空行。

    enter image description here

    但是,你问......你怎么知道将检索多少细节行?如何确定每页显示多少空行?你怎么知道每页不超过所需的10行记录? 这就是表达式的强大功能来操纵报表属性。

    1. 创建表格布局后,右键单击表格轮廓以显示“分组和排序属性”。由于每页显示的记录不超过10条,因此将上限设置为10,以便表格在table1_Group1的详细信息行上分组。天花板表达式如下:= Ceiling(RowNumber(Nothing)/ 10) 此外,在“组和排序属性”中的以下属性中放置一个复选标记: - 包括组头 - 包括组页脚 - 结束时分页 ...然后单击“确定”,如下所示。
    2. enter image description here

      1. 现在,我们正在开始操作table1_Group2中显示的空行数。为table1_Group2选择第一个表格页脚行,如下所示。转到属性,展开Visibility属性,并将以下表达式添加到隐藏属性:= IIF(CountRows(“table1_Group”)> 9,True,False 这个表达式的作用是......当table1_Group1中引用的细节行数大于9时,它将隐藏该行(TableRow6),这意味着当有10个细节行时...从报告中隐藏该行。 这是每个后续table1_Group2页脚所需的逻辑,但是当你向下走每行时,通过在表达式中减去一行直到最后一行来调整表达式。
      2. enter image description here

        因此,例如,对于下一行(TableRow7),隐藏属性表达式为: = IIF(CountRows(“table1_Group1”)> 8,True,False)

        enter image description here

        这一直持续到你到达最后一个Group2页脚行,显示为第10行,其中Hidden属性表达式现在显示为: = IIF(CountRows(“table1_Group1”)> 0,True,False) ...意思是,当存在现有行时,隐藏报表中的第10行。总的来说,表达式将自动调整Group2中可以显示(或隐藏)的页脚行数。

        enter image description here

        最后的屏幕截图将阐明隐藏属性中这些表达式的工作原理:

        enter image description here

        同样,报表属性中的表达式足以满足大多数报表要求,同时还有一些创造力和汗水。