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