【问题标题】:remove extra blank page from report从报告中删除多余的空白页
【发布时间】:2020-01-16 14:27:15
【问题描述】:

我有这个报告结构

主报告

子报告

如果子报表中没有行,则隐藏子报表中的每个 tablix

隐藏:=CountRows() = 0

此外,每个 tablix 都应该在一个新页面上。因此,我为所有 tablix 添加了 PageBreak 设置,如下所示

问题是,如果最后一个 tablix 有行并且结果是可视化的,我在报告末尾会有一个额外的空白页。

所以我尝试使用最后一个 tablix PageBreak.Disabled 选项,但到目前为止没有成功。我最初的想法是如果当前页面是最后一页,则禁用分页符(映射到 Report.Code 全局参数,以便我可以按照 SO answer 中的建议在正文中使用它们,但返回的页码不正确,因为它们总是1)它没有工作。

【问题讨论】:

  • 为什么要使用子报表?子报表中是否也存在附加页面问题?当页面设置对我不起作用时,我禁用分页符,但在应该在一页上的部分上打开保持在一起,并用换行符填充专用的文本字段,直到页面上没有其他内容(取决于你的行数块)
  • 感谢@Bacon 的评论。我正在使用子报告,因为所有可用实验室的主报告循环。对于每个实验室,可以生成子报告中的 4 个 tablix。每个 tablix 都在一个专用页面中(即使 tablix 有 1 行,它也必须在自己的页面中)
  • 按实验室复制输出也可以通过分组来实现,也可以在组之间进行分页,因此最后没有额外的分页符
  • 好吧,分组似乎可以解决问题。我只用一份报告重写了整个结构。谢谢或您的提示。
  • 我建议你回答自己的问题

标签: reporting-services ssrs-2012 ssrs-tablix reportingservices-2005


【解决方案1】:

最后,正如@Bacon 所建议的,我在每个 tablix 上使用了一个组,将它们直接放在主报告中。

子报表被用作迭代结果集的一种方式,正如建议的那样,使用 tablix 分组可以实现相同的目标。

【讨论】: