【问题标题】:SSRS - how to remove textbox white space on subsequent pages?SSRS - 如何删除后续页面上的文本框空白?
【发布时间】:2015-10-03 12:24:28
【问题描述】:

SSRS 2014 SP1 似乎很基本并且肯定解决了,但我无法在打印布局(最终适用于 PDF,但这是简单的显示)中找到一种方法来允许 tablix 在以下顶部呈现当文本框显示在第一页上时的页面(例如,在由 tablix 结果填充的每个后续页面上都不需要的地址详细信息)。这会导致在第一页之后的每一页上的结果上方不专业地浪费空白。

tablix 似乎“卡住”了,因此它只在您将其放在设计布局上的页面上开始(使用 Report Builder,因为 SSDT 不能与 VS2015 一起使用,但同样的事情应该适用)。那就是它上面的文本框自然甚至不会显示在后续页面上 - 为什么会这样,它已经完成了它的工作并且不可重复!毕竟,它不在标题中。

已将文本框设置为 CanShrink=true 但它仍然保留空间(因为它的内容仍然存在,足够公平)。

还尝试隐藏文本框(并且应该能够在后续页面有条件地执行此操作)但空白仍然存在,这很奇怪,可能显示了真正的限制。

在报告级别应用了 ConsumeContainerWhitespace=true(您会认为这可以解决问题),但没有任何乐趣。

甚至将文本框和 tablix 放在同一个 Rectangle 中,这样它们就可以成为“对等体”,也许可以更好地控制空白,但不是。

希望标题重复并且文本框地址仅在第一页上,但另一个烦人的限制是标题只有一个“PrintOnFirstPage”选项,而不是仅在第一页上打印!当然,像SSRS Report Builder - Only Show Header On First Page (With Page Numbers) 这样的解决方法是将文本框移到正文区域并隐藏,但如上所述,这仍然会在每个后续页面上留下愚蠢的空白 - 哦!

肯定有办法解决这个基本要求,还是我遗漏了一些明显的东西?

编辑:记得我以前从未遇到过这个问题,现在才意识到这只是因为每个 Worker 有多个项目(抱歉,图片的代表还不够)。如果我选择只有一个项目的参数周期,则行描述将继续出现在任何后续页面的顶部。仅当 tablix 标题组(项目:[TaskDesc] 和 Worker)发生更改时,才会开始新页面 - 但 tablix 位于原始页面 1 布局位置(即在文本框下方),而不是位于后续页面的顶部应该。希望这可以澄清 - 看起来像一个错误,奇怪的 tablix 行为,但也许是一种解决方法?

【问题讨论】:

    标签: reporting-services whitespace ssrs-2012 ssrs-2014


    【解决方案1】:

    如果您想要一个非重复文本框,只需确保它位于重复报表元素之外。这意味着在 Tablix 或 Rectangle 之外。

    只需将 TextBox 放在页面顶部,然后将 Tablix/Rectangle 放在其下方。当 Tablix/Rectangle 超出最大页面高度时,它将中断并在新页面的顶部继续。

    如果您只是认为页面顶部的空白空间过多,请尝试调整页边距。

    【讨论】:

    • 当然@Oceans,但如前所述,TextBox 高于 Tablix,否则确实会出现这种行为。
    • 我之前在stackoverflow.com/questions/32924076/… 添加了一个 SE 为你忽略的编辑 @Oceans,所以它创建了这个重复的帖子。那是当我意识到错误行为仅在新的分组级别开始时发生 - 如果详细级别继续(确实在下一页顶部,而不是在 TextBox 下方的位置重新开始),那很好。现在将添加该 EDIT。
    • 您可能不小心定义了一个组标题,它在每个新组的开头添加了一个空行。如果是这种情况,这可能会有所帮助:How to: Display Headers and Footers with a Group (Reporting Services)
    • 原来是使用了一个列组(已删除并且很好) - 现在可以看到他们倾向于修复 tablix 的位置,因为后续列继续在右侧 - 最好在正常的非打印布局中看到(并在 Viz Studio 中比较多个版本)。所以文本框是红鲱鱼,没有区别。从技术上讲,作为后续列的错误应该从下一页开始,但几乎可以理解。将此标记为答案感谢@Oceans,因为它都在标题中 - SSRS 比 Access、DevExpress、Telerik 等更可怕!