RDLC 报告隐藏矩形创建空白页

RDLC Report Hidden rectangles Creates Empty Pages

我在 link 上发现了一个类似的问题:,但没有帮助。

我有两个部分需要在数据不存在时隐藏。然而,在事故信息部分添加了一个新部分后,我收到了错误。我的页面大小是 8.27 英寸,11.69 英寸。交互尺寸为 8 英寸、11 英寸。

在那个部分,以前的高度是 7.8 英寸,现在增加到 8 英寸。减去 header 和页脚后 8.4 英寸 space 可用于页面。如果边距被认为只有 0.1 英寸,所有边都有边距。 ConsumeContainerWhitespace 也是如此。

对于这两个矩形不可见的某些数据,会生成一个空白页面。这不应该是这样的,因为将它们从表达式中隐藏后小部件会自动向上移动。在某些部分 属性 “PageBreak”设置为 BreakLocation=Start。这是因为有些部分需要保存在一个新的页面中。

分页前

分页后的页面

这里是 RDLC 的示例代码

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <ConsumeContainerWhitespace>true</ConsumeContainerWhitespace>
  <rd:ReportUnitType>Inch</rd:ReportUnitType>
  <rd:ReportID>38832df4-093b-4332-b811-4e31095617ec</rd:ReportID>
</Report> 

抱歉,由于超出了 body 限制,我无法加载完整的 RDLC。 我使用的是报告版本 8。

我认为如果将文本框的内容移动到 Tablix 中可能会起作用。

然后使用 Row Visibility 隐藏/显示该行而不是文本框本身。

如果你的设计比较复杂,比如隐藏/显示文本框的多种组合。

您将需要使用 Show or hide based on an expression 函数来检查所有文本框的可见性。

首先感谢@HardcoreGamer 的支持。在这种情况下,我尝试仅使用具有行可见性和基于表达式的小部件可见性的 Tablix 小部件。 None 的方法奏效了。我有一个概念错误,即隐藏小部件或 Tablix 报告不需要 space。该报告采用小部件之间的 space。 我也尝试了两种不同的架构,即 RDL 2008 和 2016,但两者都发生了同样的事情。 我也在 Microsoft 表单上发布了类似的问题:RDLC Report Hidden rectangles Creates Empty Pages

最终起作用的是我将前一页的矩形缩小了 1 英寸的边距,不包括 A4 尺寸页面的填充、页边距和页脚。小部件之间的 space 是 0.5 英寸。要隐藏两个小部件,需要额外 space 1 英寸,这样就不会生成新页面。

Final image with changes

如果数据增加然后生成新页面dosent,我仍然必须找到出路。