RDLC-Report中的空白页面

问题描述 投票:39回答:16

我有一个rdlc报告,它有一个tablix,没有别的。 Tablix在水平方向上展开以显示日期,在垂直方向上展示组。

Tablix按预期工作,只要我将内容区域的宽度设置为Tablix的宽度即可。

如果我将内容大小扩展到其固定大小(大约是PageWidth-PageBorders)并运行报表,则每隔一页都是一个空页。 但是Tablix只使用一页。每个奇数页面都是空的。 Tablix似乎将其水平扩展添加到当前定义的内容宽度,然后计算溢出。

reportviewer版本为3(2010 Redistributable)

有人有这种奇怪行为的解决方案吗?

更新

如果我将报告导出到excel,我会看到tablix的右侧站点上有一列与生成的日期一样长。它似乎真的是一个错误或功能,我没有看到如何停用。 我也尝试从表中创建相同的构造,它导致了同样的问题,这并不令人惊讶,因为该表在内部也是一个Tablix。

更新1

如果我将报告的属性“ConsumeContainerWhitespace”设置为true,则上述测试版本可以正常工作。但是,如果我将其他元素放在“白色”区域中,效果就会重新出现。

reportviewer rdlc
16个回答
41
投票

设置页面属性ConsumeContainerWhitespace=true(在属性对话框中,F4)有所帮助。然而,无论如何制作报告都是正确的。在开始时它只有在我将所有额外内容添加到页面页眉和页脚时才起作用。但这是不可接受的。经过大量的尝试,我成功地根据需要制作了报告。但是我并不真正理解背后的逻辑。

我记得我已经做过这样的报告(在两个方向上,水平和垂直一起增长)没有任何问题,我不知道这个报告有什么区别。对于这份报告来说,ConsumeContainerWhitespace属性确实可以重现。但是为什么我从未发生类似的报道,我不知道。另外我不知道为什么在布局引擎接受我的设计之前我先绕圈。


3
投票

您需要将报告宽度属性设置为实际打印页面宽度。在我的情况下6英寸帮助。


3
投票

您需要确保您的RDLC报告具有:

  1. ConsumeContainerWhiteSpace = true(点击F4打开)
  2. 报告正文大小<=页面大小+边距大小。 (按Ctrl + Alt + D打开)

3
投票

页脚也可能导致问题。因此,如果您有一个,最好将它尽可能地放在主要内容上。在这种情况下,您不需要设置Body.Height属性。


2
投票

我的4x2英寸标签为一页报告打印了3页额外页面。

为了解决这个问题,我将Body.Size属性减小到与Report.PageSize相同或更小,减去相应的Report.Margins


1
投票

试试这个,

只需确保所需的所有数据都在报告中,然后选择表格或矩阵并使其向左挤压,如果需要,则向上左上角,直到您的白页问题完成为止。

但要确保细胞以正确的方式挤压,温柔(我希望你明白!)

好的,再见


1
投票

或者,您只需以图形方式将报表设计的大小调整为上一个报表控件或标签的确切底部。

或者添加页脚部分以创建一些空间。

enter image description here


1
投票

我有类似的问题,我这样解决了

例如,对于宽度,应满足以下等式

PageSize >= LeftMargin +  BodySize + RightMargin 

哪里可以找到体型?

按F4 - > CLick里面的某个地方 - >你会找到body属性(查看size属性,取宽度值)

在哪里可以找到报告PageSize?

点击报告外的某个地方 - >你会找到报告属性(查看PageSize(取其宽度值)和marginsLeftright,..),取左右边距值)

从这些属性中获取值,并检查它们是否相符

PageSize >= LeftMargin +  BodySize + RightMargin 

14
投票

解决这个问题的最好方法是,例如对于Width=21 cmHeight=29.7 cm的A4页面

现在保证金Left=1 cmRight=1 cm所以你有一个19厘米的可用宽度。

当您了解此基本计算意味着您的问题已解决。您可以通过右键单击report property => pagesetup来设置报告页面大小属性。


9
投票

检查“主体”尺寸,尝试使其与实际纸张尺寸一样宽和高,但仅减少边距。


7
投票

页面设计存在混淆。开发人员会认为正在设计的报告是WYSIWYG,但实际上并非如此! Microsoft reportviewer将把您设计的页面作为内容!并附加在页面外部定义的边距,结果表明您的页面永远不适合一页!

因此,在设计新报表时,请关注内容区域,客户区域(包括页眉和页脚),并允许将边距附加到外边框上。


7
投票

解决方案是简单的ConsumeContainerWhiteSpace=True(您在属性窗口中找到“报告”),您可以在主菜单/报告/报告属性中将纸张大小设置为“A4”,然后检查纸张尺寸是否大于body + header + footer + margins


6
投票

在我使用报告主体的高度和宽度之前,我遇到了同样的问题。 :)


5
投票

请在窗口顶部的对象选择器中选择“报告”。并且如果同样的问题仍然存在,则使ConsumeContainerWhiteSpace = true,您的rdlc报告大小应该小于您的报告正文。


5
投票

我最近遇到了这个问题。

根本原因可能是: 你的报告的正文有一些空白的上行报告页脚或其他地方。 解决方案是: 1,单击报表正文 2,转到属性窗口,你会看到body size属性 3,检查身体大小,你可能会发现一个奇怪的数字,如9.6654in,1.5625in。 这意味着你的页脚有一些空白,修改高度或宽度大小,直到你看不到空白。


4
投票

我正在处理正在打印额外空白页的RDLC报告。我尝试了所有常用的技巧,以及我能想到的一切,直到我意识到问题是由报告的右边缘区域中额外的可见空白引起的。报告中的一个对象(“矩形”)是一个或两个太宽的像素,这会阻止调整报告的可见空间大小。删除所有额外宽度后,报告开始使用预期的页数打印。

Visual Studio 2017(15.7.5)+ Microsoft Rdlc报表设计器扩展(v14.2)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.