SSRS报告 - 强制表扩展到页面底部

时间:2014-02-18 21:56:38

标签: sql reporting-services

我正在尝试创建一个发票类型报告,其中我有一个标题,主体带有一个表格(包括一个总计部分)和页脚。

我得到的问题是,主体中的表高度取决于从我的SPROC返回的行数,因此如果没有太多数据,该表将占用页面中间的一小部分“总计”和“免责声明”在页面底部附近没有结束(理想情况下,想把它放在页脚的上方)。

我已经看到了解决这个问题的指南,使用在SPROC中添加空行(空)行的一般方法,强制表格大于预期,从而强制总计和免责声明行靠近底部页面。

我已经实现了这个解决方案但是存在一些问题。

然而,这种方法的问题在于逻辑只能假设表中的每一行只占用1行(即简短的描述,因此该行不会溢出到下一行)。一旦行有多行,行的高度就会改变,并且由于高度不是1行的倍数(即单行的大小为1,双行应该是大小2,而是大小为1.5或者其他),i不能考虑我应该在SPROC中添加多少行。

我尝试了另一种方法,其中我需要的行与主表分开(这本身就给我带来了问题 - 无法计算报告中的总数,但我想我可以通过计算SPROC本身的总数来解决这个问题)并隐藏到最后一页。

除了使用此方法,空白空间始终显示,停止表格扩展到该区域之外,此方法会很好。

我已经添加了一个指向imgur的链接来描述我当前应该更容易理解的问题。

必须有一种更简单的方法来强迫桌子占据整个空间。

4 个答案:

答案 0 :(得分:6)

所有这一切都可以在报告设计中实现。这就是你所知道的:

  • 页面高度(P)
  • 静态数据的高度(S)
  • 标题的高度(H)
  • 数据行的高度(R)
  • 数据行数(C)
  • 页脚高度(F)

因此,您可以计算出页面上剩余空间的大小:P - ((C * R)+ S + F + H)

当我解决我的问题时,我意识到当页面上剩余的空间太小而无法容纳页脚时,我需要两个“垫片”;垫片1填充在页面1的其余部分,而垫片2是第2页的可用空间 - P - (S + F + H)。

因此,您需要在报告中使用隐藏的部分来执行高度计算,并在任何其他详细信息行下方的间隔符中使用两个详细信息行。

我在GitHub上创建了一个演示解决方案,它显示了这个“引脚到底部”的功能,以及重置组的页码,数据驱动的页眉/页脚,标签翻译和国际格式(页面大小,数字格式等)。

了解销售发票5。

答案 1 :(得分:3)

最后,我找到了一个非常接近我需要的解决方案,并涉及使用隐藏元素。 (类似于丹安德鲁斯所建议的 - 但是照顾了我需要的东西)

首先,我已将总数包含在报告的页脚中,以便始终保持在最低点。

如下所示:

What the report looks like

在小计页脚中,我发出了一条消息"接下页"这也是一个隐藏的领域 - 这是我可以在任何有超过1页显示的报告上显示此消息(因此用户知道报告的页面超过1页,因此空白区域没有#39 ;看起来很糟糕。)

要隐藏总计字段,我在"隐藏"中有以下表达式:属性:

=iif(Globals!PageNumber=Globals!TotalPages,false,true)

对于"继续"字段:

=iif(Globals!PageNumber=Globals!TotalPages,true,false)

现在问题在于,由于页脚无法访问报表正文中的表格,页脚不知道表中的值是多少。

为了解决这个问题,我创建了一个"总计"作为表的一部分的部分,它执行我需要在页脚上显示的所有计算。

我在页脚中为每个需要访问的文本框添加了一个名称,如下所示: Setting names for text boxes

在相应的页脚元素上,我有这样的表达式: Setting up the expression

现在页脚包含总数,总计字段总是显示在底部,无论表格有多大(这是我最初的问题 - 页脚被放置在任何想去的地方),只需要小的权衡在任何不是最后一页的页面上留空格。我已经在下一页继续了#34;"相反,它显示报告中有更多页面,因此看起来正在使用空白区域。

这是一个单页示例:

Single page example

这是一个多页面的例子:

Multi page example

答案 2 :(得分:2)

您可以将“总计行”和字词添加到页脚,并显示网格(如果它是报告的最后一页,如下所示:SSRS show value only on last page in body of report,切换“隐藏”属性。

答案 3 :(得分:2)

我的解决方案的基本前提是将“隐藏”元素合并到报表正文中。此元素可以动态增长或缩小,以改变最后一个发票行与付款详细信息部分之间的距离,从而使付款详细信息“固定”在报表底部....

http://blogs.adatis.co.uk/blogs/harding/archive/2013/02/01/absolute-positioning-of-report-elements-in-ssrs.aspx