SSRS 报告未正确抑制白色 space
SSRS Report not correctly suppressing white space
在我使用 SSRS 报告的几年里,我看到了一些令人费解的情况,而且我已经能够围绕大多数问题进行设计并让它完成我被要求做的所有事情。
但显然,不是什么极其简单的事情!
我正在使用 Visual Studio 2019 版本 16.7.2 和 Microsoft SQL Server Reporting Services Designers
安装版本 15.0.19124.0。报表没有数据绑定,这只是一个简单的设计概念。
我有一份报告,其中包含静态自定义页面大小(以厘米为单位)、交互式大小和无边距 (12.8 x 17.8cm)。
正文大小特意设置为两页报告(2 x 页高)。
'ConsumeContainerWhiteSpace' 报告属性设置为 true。
第 1 页有一张图片,占据了第 1 页的整个 space(大小为 12.8 x 17.8),在图片右下角附近放置了一个文本框(覆盖它,但不超过页面的宽度或高度,并设置为不增长)。
第 2 页完全相同,内容从第 2 页应该开始的位置 (0, 17.8) 开始。但是,第 2 页内容设置为隐藏(隐藏 = true,在图像和文本框上)。
预览时,报表呈现两页,其中一页是空白的。
如果我关闭第 2 页的内容文本框并进行预览,报表将呈现为一页(正如我需要的那样)。
如果我将文本框替换为矩形或 Tablix(我真正需要在此报告中使用的两个对象以及位于它所在位置的文本框)并将它们设置为隐藏,则会出现同样的问题。
将这些对象中的任何一个移动到第 2 页的顶部,仍然会导致相同的行为。
似乎某些对象尽管被隐藏,但已分配 space 不能 'rolled up / truncated / shrunk'。这是'by design behaviour'吗?
是否有某种形式的魔术--我在这里缺少使它起作用的技巧,或者只是我不理解的东西...?
感谢阅读!
注意:到目前为止,我已经按照这些思路尝试了其他帖子中提到的 'Switch to inches, then back to centimeters' 解决方案,改变了 'Keep together' 属性,检查了 'CanGrow' 和 'CanShrink' 属性 变化 - 所有这些都没有帮助找到解决方案。
报表正文的宽度最多应设置为适合您的输出页面,长度应足以容纳所有报表项目。当您希望不同的项目出现在新页面上时,将它们放在一个容器中,并在之前或之后(以最合适的为准)设置分页符。这也可以使用 table 组上的分页符以数据驱动的方式处理。
在您的报告设计中,'fill up' 渲染报告页面的其余部分不需要有白色 space。
如果您希望在报告底部显示任何内容,只需将其放在页脚部分即可。如果你想让特定的东西出现在不同页面的不同高度的页面底部,那是一个更大的挑战,通常需要一些聪明的数据驱动 spacers 在报告正文中。
在我使用 SSRS 报告的几年里,我看到了一些令人费解的情况,而且我已经能够围绕大多数问题进行设计并让它完成我被要求做的所有事情。
但显然,不是什么极其简单的事情!
我正在使用 Visual Studio 2019 版本 16.7.2 和 Microsoft SQL Server Reporting Services Designers 安装版本 15.0.19124.0。报表没有数据绑定,这只是一个简单的设计概念。
我有一份报告,其中包含静态自定义页面大小(以厘米为单位)、交互式大小和无边距 (12.8 x 17.8cm)。 正文大小特意设置为两页报告(2 x 页高)。
'ConsumeContainerWhiteSpace' 报告属性设置为 true。
第 1 页有一张图片,占据了第 1 页的整个 space(大小为 12.8 x 17.8),在图片右下角附近放置了一个文本框(覆盖它,但不超过页面的宽度或高度,并设置为不增长)。
第 2 页完全相同,内容从第 2 页应该开始的位置 (0, 17.8) 开始。但是,第 2 页内容设置为隐藏(隐藏 = true,在图像和文本框上)。
预览时,报表呈现两页,其中一页是空白的。
如果我关闭第 2 页的内容文本框并进行预览,报表将呈现为一页(正如我需要的那样)。
如果我将文本框替换为矩形或 Tablix(我真正需要在此报告中使用的两个对象以及位于它所在位置的文本框)并将它们设置为隐藏,则会出现同样的问题。
将这些对象中的任何一个移动到第 2 页的顶部,仍然会导致相同的行为。
似乎某些对象尽管被隐藏,但已分配 space 不能 'rolled up / truncated / shrunk'。这是'by design behaviour'吗?
是否有某种形式的魔术--我在这里缺少使它起作用的技巧,或者只是我不理解的东西...?
感谢阅读!
注意:到目前为止,我已经按照这些思路尝试了其他帖子中提到的 'Switch to inches, then back to centimeters' 解决方案,改变了 'Keep together' 属性,检查了 'CanGrow' 和 'CanShrink' 属性 变化 - 所有这些都没有帮助找到解决方案。
报表正文的宽度最多应设置为适合您的输出页面,长度应足以容纳所有报表项目。当您希望不同的项目出现在新页面上时,将它们放在一个容器中,并在之前或之后(以最合适的为准)设置分页符。这也可以使用 table 组上的分页符以数据驱动的方式处理。
在您的报告设计中,'fill up' 渲染报告页面的其余部分不需要有白色 space。
如果您希望在报告底部显示任何内容,只需将其放在页脚部分即可。如果你想让特定的东西出现在不同页面的不同高度的页面底部,那是一个更大的挑战,通常需要一些聪明的数据驱动 spacers 在报告正文中。