s-s-rS 在每组末尾显示页脚
Posted
技术标签:
【中文标题】s-s-rS 在每组末尾显示页脚【英文标题】:s-s-rS Show footer at the end of each group 【发布时间】:2011-12-07 12:54:12 【问题描述】:我有一个运行一批发票的 SQL Server Reporting Services 报表。每张发票都有页眉、正文和页脚。报告按发票编号分组,因此每张发票都打印在单独的页面上。
我的问题是,当发票正文超过一页时,页脚会在每一页上重复。我只希望它显示在发票(组)的最后一页。
我尝试取消选中“页脚:在第一页上显示”选项,但这只会从整个批次的第一页中删除页脚,而不是组。
我也尝试将页脚信息放入正文中,但由于这些发票打印在预印纸上,因此页脚位于页面的最底部很重要。
【问题讨论】:
【参考方案1】:我设法实现了我想要的,但这只不过是一种变通方法。据我所知,在 s-s-rS 2005 中无法做到这一点。
我的解决方案是计算每组返回的行数并限制每页上的行数。这允许我推断存储过程中的页码并返回每行的组页码和最大组页码。
SELECT CEILING((sum(1) over (Partition by sClientInvoiceNo))/ @MaxRowsPerPage) as GroupMaxPage,CEILING((row_number() over (Partition by sClientInvoiceNo order by iSortOrder,apportionmentID desc))/ @MaxRowsPerPage) as GroupPage
然后我按报告中的组页码对数据进行分组,并专门检查最后一页的页脚数据
=IIF(fields!GroupPage.Value <> fields!GroupMaxPage.Value, "", Fields!iBalanceDue.Value
【讨论】:
【参考方案2】:我设法让Page Footer
仅在组结束后可见。
-
您需要在
Group Footer
末尾添加一个字段。
为该字段指定名称和值(例如:名称 = txtShowFooter,值 = False)
价值无所谓,只要有价值就行。
在您要显示或隐藏的Page Footer
项(通常是矩形中的全部内容)中,在隐藏属性中设置以下表达式:=iif(IsNothing(ReportItems!txtShowFooter.Value), true, false)
。
说明:
如果您位于存在txtShowFooter
的页面中,则会显示Page Footer
。
在详细信息页面中,文本框将不存在,因此隐藏了页脚。
希望这对其他人有所帮助!
【讨论】:
以上是关于s-s-rS 在每组末尾显示页脚的主要内容,如果未能解决你的问题,请参考以下文章
在强制 s-s-rS 显示每页中的限制记录数后,将在每页而不是整个组上计算聚合