几年前,我与参与检索病人预约记录,将它放在一个SSRS报告了一个有趣的报告请求构成。报告的格式必须采用收费单的形式,如下所示。并且收费单的每个页面不能包含超过10个患者记录,但仍包含10行患者数据的网格/表格,即使从查询中检索到或在最终页面上显示的记录少于10条也是如此。 正如您在第一张屏幕截图中所看到的,我们位于报告的第2页,显示其余5个病人记录和5个空行。
(请注意,该报告检索15位患者,因为有10名患者在一个页)。另外需要的是,以保持该报告的顶部和底部部分的静态和具有那些和患者数据拟合进入一个页面。 下面是我把以实现用于报告的要求的步骤:
- 我带过来的表格对象到布局和创建了两个表组:一个用于报告的顶部部分和底部部分(table1_Group1)还包括从查询中检索的详细数据,以及将确定要显示的空行数的中间部分(table1_Group2)。
顶部包含其简单地由两个报告标题行的固定区域。请注意,最终报告将最小化到前2个组标题行(1,2 - 高于table1_Group2详细信息行highligted),并在屏幕截图中展开以显示报表的表格结构。
底部显示需要进行硬编码用于电荷滑模临床程序多重table1_Group1尾行。并且,在我之间添加了table1_Group2中的10个页脚行。 Group2中的这些页脚行将允许报告在细节行中填充少于10条记录的情况下,在报表中模拟所需的剩余空行。
但是,你问...你怎么知道的时间提前多少细节行将被检索?如何确定每页显示多少空行?您如何知道每页不超过所需的10行记录? 这是表达式的力量来操纵报表属性的地方。
- 创建表格布局后,右键单击表格轮廓以调出分组和排序属性。由于要求每页显示不超过10条记录,因此要将表格设置为10,以便表格在table1_Group1的详细信息行中分组。上限表达式如下:=上限(RowNumber(Nothing)/ 10) 此外,在组和分类属性中的以下属性中放置复选标记: - 包含组标题 - 包含组页脚 - 分页符在末尾 ...并单击确定,如下所示。
- 现在,我们在步骤开始操纵空的行数在table1_Group2显示。如下所示为table1_Group2选择第一个表格页脚行。转到属性,展开Visibility属性,并将以下表达式添加到Hidden属性中:= IIF(CountRows(“table1_Group”)> 9,True,False 该表达式的作用是...它将隐藏此行(TableRow6) table1_Group1中引用的详细行数大于9,这意味着当有10个明细行时......将该行从报告中隐藏起来 这是每个后续table1_Group2页脚所需的逻辑,但是当您沿着每行下行时,调整通过在表达减去一行直至最后一行表达。
因此,例如,对于下一行(TableRow7),隐藏属性表达式是: = IIF(CountRows(“table1_Group1“)> 8,真,假)
这正好和直到你到达最后第2组尾行,显示为10行,其中隐藏属性表达式现在读为: = IIF(CountRows(“table1_Group1”)> 0,True,False) ...意思是,当存在行时,隐藏报告中的第10行。总体而言,表达式将自动调整Group2中可以显示(或隐藏)的页脚行数。
这最后的屏幕快照将阐明如何将这些表情在隐藏属性的工作:
再次,在报告属性表达式非常强大,足以满足大多数报告的要求,随着一点创意和汗水。
如果他有同样的问题,我不得不删除在排序选项卡中自动创建的表达式。 – 2014-06-18 13:14:23