我正在尝试创建一个发票类型报告,其中我有一个标题,主体带有一个表格(包括一个总计部分)和页脚。
我得到的问题是,主体中的表高度取决于从我的SPROC返回的行数,因此如果没有太多数据,该表将占用页面中间的一小部分“总计”和“免责声明”在页面底部附近没有结束(理想情况下,想把它放在页脚的上方)。
我已经看到了解决这个问题的指南,使用在SPROC中添加空行(空)行的一般方法,强制表格大于预期,从而强制总计和免责声明行靠近底部页面。
我已经实现了这个解决方案但是存在一些问题。
然而,这种方法的问题在于逻辑只能假设表中的每一行只占用1行(即简短的描述,因此该行不会溢出到下一行)。一旦行有多行,行的高度就会改变,并且由于高度不是1行的倍数(即单行的大小为1,双行应该是大小2,而是大小为1.5或者其他),i不能考虑我应该在SPROC中添加多少行。
我尝试了另一种方法,其中我需要的行与主表分开(这本身就给我带来了问题 - 无法计算报告中的总数,但我想我可以通过计算SPROC本身的总数来解决这个问题)并隐藏到最后一页。
除了使用此方法,空白空间始终显示,停止表格扩展到该区域之外,此方法会很好。
我已经添加了一个指向imgur的链接来描述我当前应该更容易理解的问题。
必须有一种更简单的方法来强迫桌子占据整个空间。
答案 0 :(得分:6)
所有这一切都可以在报告设计中实现。这就是你所知道的:
因此,您可以计算出页面上剩余空间的大小:P - ((C * R)+ S + F + H)
当我解决我的问题时,我意识到当页面上剩余的空间太小而无法容纳页脚时,我需要两个“垫片”;垫片1填充在页面1的其余部分,而垫片2是第2页的可用空间 - P - (S + F + H)。
因此,您需要在报告中使用隐藏的部分来执行高度计算,并在任何其他详细信息行下方的间隔符中使用两个详细信息行。
我在GitHub上创建了一个演示解决方案,它显示了这个“引脚到底部”的功能,以及重置组的页码,数据驱动的页眉/页脚,标签翻译和国际格式(页面大小,数字格式等)。
了解销售发票5。
答案 1 :(得分:3)
最后,我找到了一个非常接近我需要的解决方案,并涉及使用隐藏元素。 (类似于丹安德鲁斯所建议的 - 但是照顾了我需要的东西)
首先,我已将总数包含在报告的页脚中,以便始终保持在最低点。
如下所示:
在小计页脚中,我发出了一条消息"接下页"这也是一个隐藏的领域 - 这是我可以在任何有超过1页显示的报告上显示此消息(因此用户知道报告的页面超过1页,因此空白区域没有#39 ;看起来很糟糕。)
要隐藏总计字段,我在"隐藏"中有以下表达式:属性:
=iif(Globals!PageNumber=Globals!TotalPages,false,true)
对于"继续"字段:
=iif(Globals!PageNumber=Globals!TotalPages,true,false)
现在问题在于,由于页脚无法访问报表正文中的表格,页脚不知道表中的值是多少。
为了解决这个问题,我创建了一个"总计"作为表的一部分的部分,它执行我需要在页脚上显示的所有计算。
现在页脚包含总数,总计字段总是显示在底部,无论表格有多大(这是我最初的问题 - 页脚被放置在任何想去的地方),只需要小的权衡在任何不是最后一页的页面上留空格。我已经在下一页继续了#34;"相反,它显示报告中有更多页面,因此看起来正在使用空白区域。
这是一个单页示例:
这是一个多页面的例子:
答案 2 :(得分:2)
您可以将“总计行”和字词添加到页脚,并显示网格(如果它是报告的最后一页,如下所示:SSRS show value only on last page in body of report,切换“隐藏”属性。
答案 3 :(得分:2)
我的解决方案的基本前提是将“隐藏”元素合并到报表正文中。此元素可以动态增长或缩小,以改变最后一个发票行与付款详细信息部分之间的距离,从而使付款详细信息“固定”在报表底部....