【问题标题】:SSRS - Adding empty cells under a tablix to fill empty spaces on the page (if any)SSRS - 在 tablix 下添加空单元格以填充页面上的空白区域(如果有)
【发布时间】:2015-10-12 01:53:35
【问题描述】:

我在矩阵/tablix 中使用带有动态行数据的 ssrs。当我有超过一页(比如说两页)时,数据可能只填满第二页的一半并在下面留下空白区域(第二页上的半页空白区域)。如何用空行填充这个空白空间? (无论是在 tablix 中渲染空行,还是插入背景图像,或者任何东西。我还没有任何解决方案,因为它是动态数据,页面上的空白空间大小有很多可能性)

【问题讨论】:

  • 你为什么要出于好奇?在我看来,将这些额外的行放入其中没有任何内容,以及将汇总行中的汇总数据与分组相结合的可能性会产生比这种奇怪要求更多的问题。

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix


【解决方案1】:

很遗憾,报告器中没有任何设置支持这种行为。但是,您可以使用多种解决方法来获得想要的结果。

[1] 您可以确定适合第一页和第二页的行数,以防万一您有高于 第一页上的表格。在将数据源发送到 记者计算总行数并检查它是否超过第一页。 然后计算缺少的行数以填充一整秒 页(或第三/第四……如果您获得更多数据)。最后你添加 数据源末尾的空行/对象,这当然是 导致页面被填满。

如前所述,此解决方案仅在工作时才有可能 具有固定的行高。如果某些列可以有多行单元格 那么这些也可以检查并考虑到 计算页面上显示的行数。这使得 它稍微复杂一些,但如果可以的话,它仍然是一个有效的解决方案 预测哪些列可能会很麻烦。


[2] 第二种解决方案是隐藏表格边框并将表格放置在一个矩形内,该矩形跨越 页。这个矩形的边框可以用来显示表格 可以通过在内部添加线条来显示外部边框和列 长方形。这将导致列填充最后一页 自动报告。不幸的是,这不是显示的解决方案 水平网格线。


[3] 第三种方法是直接在您的表格下方添加一个额外的表格 具有相同大小的列。使用与第一个相同的方法 解决方案,您可以填充第二个表来表示空行。 您可能会遇到与第一个解决方案相同的问题 处理多行行。


我相信解决方案 [1][3] 将提供最精确的解决方案,如果您愿意进行数学计算的话。如果您不想要任何水平线,那么我建议使用方法 [2]
使用图像覆盖边框当然是另一种选择,但是在处理多行行时会遇到同样的问题。如果您计划使用固定的行高,为多行单元格留出空间,那么这将成为一种有效的方法,但解决方案 [1][3].

更新:
如果您只需要填充的页面进行打印,您可以确保添加足够的空行以至少填充整个最后一页,这些可能会转到新页面(1 个新页面,而不是 2 个......您可以使用简单的计算猜测)并在打印时排除最后一页。

【讨论】:

  • 我只是认为,如果表中的一行有很长的数据,将在报告中呈现为多行,那么您的方法解决方案将不合适。由于未计算“真实呈现”行数,将出现一个包含空行的无用新页面
  • 如果这些场景是可能的,那么我同意这不是一个有效的解决方案,除非您使用固定高度的行。类似的计算,都稍微复杂一点,可以用于检查每列的长度以检查多行并将其考虑在内。还有另一种解决方案,对每一列使用 Rectangles,它允许垂直线增长到页面的末尾,但对于绘制水平线没有价值,如果你有兴趣,我可以用更详细的解释来更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多