【问题标题】:Hide a report item from print / export of an rdlc report从 rdlc 报告的打印/导出中隐藏报告项
【发布时间】:2009-07-01 14:38:36
【问题描述】:
我有一个包含多个表的 RDLC,对于每个表,我都有一个切换 TextBox 项,它从报告中隐藏相应的表。它工作得很好,但是,我不希望这些文本框在打印/导出的报告中可见。它们实际上是为了禁用报告中的内容,而不是作为内容本身。有没有办法仅从报表的打印布局和导出版本中隐藏这些切换框?
我查看了报告文本框的所有属性以及可用于切换可见性的可用表达式,但没有找到可用于隐藏项目的任何内容。有一个 DataElementOutput 属性似乎是我想要的,但我相信它只对 XML 有用。
【问题讨论】:
标签:
visual-studio-2008
rdlc
reportviewer2008
【解决方案1】:
晚了,但有一个解决方案。您可以在报表中添加一个参数以实现句柄控件的可见性,并在 Print 事件中更改参数值,然后刷新报表(ReportViewer1.RefreshReport())
【解决方案2】:
这可以通过一个简单的可见性切换来实现。您可以使用 RenderFormat.IsInteractive 变量来确定报表是显示在报表查看器中还是正在导出。 MSDN article 解释了这个全局变量,
此外,一个布尔标志 (=Globals!RenderFormat.IsInteractive)
确定渲染扩展插件是否是交互式渲染器,
即不是导出格式。预览 (GDI/Winforms) 和 HTML 查看是
被认为是交互式渲染器。
将要在导出中隐藏的文本框的可见性设置为以下表达式
=NOT(Globals!RenderFormat.IsInteractive)
请参阅下图(blog.hoegaerden.be 提供)以了解分配给 RenderFormat.IsInteractive 的值
【解决方案3】:
您可以做一些小技巧来尝试实现这一点,例如:
- 将 TextBox 上的文本和边框设置为白色,使它们不可见但仍可点击
- 使报告大于打印尺寸(纸张尺寸)并将您的文本框移出打印区域(它们将被打印/导出但不像您的表格在同一页面上)
- 将您的文本框放在顶部,并将它们设计为启用不同视图的选项卡(我知道,我知道,这不是您要求的 :-))
但解决此问题的最佳方法是将报表拆分为多个报表 - 每个表一个报表。
希望这会有所帮助!
干杯,
佩罗