2009-07-01 125 views
2

我有一个具有多个表格的RDLC,并且对于每个表格,我都有一个切换文本框项目来隐藏报告中的相应表格。它完美的工作,但是,我不希望这些文本框在打印/导出的报告中可见。它们确实意味着禁用报告中的内容,而不是内容本身。有没有办法隐藏这些切换框只有打印版式和导出版本的报告?从rdlc报告的打印/导出中隐藏报告项目

我查看了报表文本框的所有属性以及可用于切换可见性的表达式,但没有找到任何可用于隐藏项目的内容。 DataElementOutput属性似乎是我想要的,但我相信它只对XML有用。

回答

1

晚,但也有一个解决方案。您可以在报表中添加一个参数来处理控件可见性,并在Print事件中更改参数值,然后刷新报表(ReportViewer1.RefreshReport())。

0

你可以做一些黑客试图实现这一目标,如: - 设置文本和边界上的文本框是白色的,使他们不vislble但仍然可点击 - 使报告比打印尺寸(纸张尺寸)大和将文本框移出打印区域(它们将被打印/导出,但不会像您的表格那样在相同的页面上) - 将文本框放在顶部并将它们设计为看起来像启用不同视图的选项卡(我知道,这不是你要求的:-))

但解决这个问题的最好方法是将你的报告分成几个报告 - 每个报告一个表。

希望这有助于!

欢呼声,

佩罗

1

这可以使用简单的可见性切换来实现。您可以使用RenderFormat.IsInteractive变量来确定报表是在报表查看器中显示还是正在导出。一个MSDN article此外解释了这个关于这个全局变量,

,布尔标志(=全局!RenderFormat.IsInteractive) 确定呈现扩展是否是一个交互式的渲染器, 即,不是导出格式。预览(GDI/Winforms)和HTML浏览是 被认为是交互式渲染器。

设置要在出口隐藏在下面的表达式文本框的可视性

=NOT(Globals!RenderFormat.IsInteractive) 

请参考下面的图片(共blog.hoegaerden.be提供)知道分配给RenderFormat.IsInteractive值 RenderFormat.IsInteractive