【发布时间】:2015-07-14 19:11:16
【问题描述】:
我最初认为这将是一项简单的任务,但经过几个小时的研究,我正在阅读在将隐藏字段导出到 CSV 时可能存在 SSRS 错误,这无法实现?
我想要做什么:
我有一份包含几列的报告(比如 50 列)。我有一个 REPORT_VERSION 的参数下拉列表,允许用户选择“标准”(所有 50 列)或“快速”(只有 10 列)。我已经能够正确显示这 2 个版本,但是当我将(快速版本)导出到 CSV 时,它会显示所有列(和/或 tablix),而不是结果的样子。
我已经阅读并尝试过:
如果我创建 2 个 tablix 并根据参数值隐藏一个,导出到 CSV 时仍会同时显示可见和隐藏的 tablix。
如果我使用
=IIF(Globals!RenderFormat.Name="CSV", True, False)- 这不适用于 CSV 输出更改 DataElementOutput = NoOutput。这会隐藏 CSV 输出中的列或表,但不能根据参数值动态更改。
这可以通过 vbscript 在“自定义代码”部分完成吗?
我阅读的许多文章和线程都可以追溯到 2010-2012 年,希望现在有解决方案吗?我真的在这里。
我们将不胜感激。谢谢
【问题讨论】:
-
能否将所有列添加到一个矩阵并设置列的隐藏属性。
-
我已经尝试过了,我可以让报告根据版本吐出正确的结果 - 我无法弄清楚的问题是将报告导出到“CSV”。当我尝试这样做时,它会忽略隐藏的列并显示所有违背整个目的的列。我还尝试过使用 2 个不同的 tablixes 并隐藏其中一个表。一样。它适用于报告结果,但是当我导出到“CSV”时,它会显示两个 tablix,甚至是隐藏在结果中的那个。谢谢!
-
只是一个想法,但如果将 Express 列的表达式设置为类似 --> =IIF(Globals!RenderFormat.Name="CSV", "",qryMain!Fields. MyField.Value)
-
嗨 lrb - 我尝试了你的建议(即 =IIF(Globals!RenderFormat.Name="CSV", "",Fields!FIELD_TO_HIDE.Value) 但我收到错误“使用的隐藏表达式在 tablix 中返回的数据类型无效”。在这种情况下,FIELD_TO_HIDE 只是一个常规的 varchar 字段。不确定我是否正确地按照您的建议进行操作。谢谢您的回复!
标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix