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

标签 sql reporting-services

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

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

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

我已经实现了这个解决方案,但有一些问题。

然而,此方法的问题在于,该逻辑仅在假设表中的每一行仅占用 1 行(即简短描述,因此该行不会溢出到下一行)时才有效。一旦行有多行,行的高度就会发生变化,并且由于高度不是 1 行的倍数(即单行是大小 1,双行应该是大小 2,而是大小 1.5 或其他东西),我无法考虑我应该在 SPROC 中添加多少行。

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

这种方法会很好,除了使用这种方法时,空白区域总是显示出来,阻止表格扩展到该区域。

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




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

最佳答案

所有这些都可以在报表设计本身中实现。以下是你所知道的:

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

  • 所以你可以算出页面上的剩余空间有多大:P - ((C*R) + S + F + H)

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

    因此,您将需要报告中的隐藏部分来进行高度计算,并需要在任何其他详细信息行下方为间隔物设置两个详细信息行。

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

    为此,请查看销售发票 5。

    关于sql - SSRS 报告 - 强制表格扩展到页面底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866318/

    相关文章:

    php - 我可以在执行 UPDATE 时从 mySQL 数据库检索变量吗?

    reportingservices-2005 - URL级联参数如何传入?

    asp.net - 如何将多个报告添加到同一ReportViewer?

    sql-server - 如何确定 SSRS 页面上使用的存储过程?

    sql-server - 在 Visual Studio 2017 中升级报表服务器项目时出错

    sql - 如何获取最新日期的行?

    sql - 根据 SQL 中的项目排名过滤掉整个组

    sql - 查询仅返回具有有效电子邮件的行并仅输出电子邮件

    php - 选择具有多个条件(MAX)的MySQL

    vb.net - 在 SSRS 中执行 .AddDays() 之前如何检查空值?