SSRS:根据参数值有条件地隐藏列 - CSV导出忽略

时间:2010-01-20 21:42:32

标签: reporting-services

我在SSRS 2008中有一个简单的基于表的报告,有10列,每列都有相应的参数来确定是否应该显示该列。我通过设置在设计模式下右键单击列标题时获得的列可见性选项来实现此目的。在我的情况下,我选择“基于表达式显示或隐藏”,我将表达式设置为一个布尔类型的参数值。

在初始渲染期间,功能按预期工作,但是当我选择将报告导出为CSV时,可见性表达式会被忽略或不会被评估,因为无论设置如何,列都会显示。

可见性对话框有三个选项,基于表达式显示/隐藏/显示或隐藏 - 如果我明确设置隐藏选项,CSV导出不包括您期望的列,但是如果我使用表达式它将 - 我甚至到目前为止,使表达式显式为'= True',但仍被忽略。

如何让导出选项正确评估?

3 个答案:

答案 0 :(得分:4)

这是KarenH在文章Hide/Show Items Dependant On Export Format

中的解决方案

基本上,您可以在要隐藏的控件上设置 DataElementOutput = NoOutput

导出为CSV时,我可以隐藏表格。

screenshot

答案 1 :(得分:1)

使用表达式无法隐藏或省略导出列。这是因为表达式只会在报表本身进行评估,而不是导出。

一种解决方法是默认隐藏列,并使用表达式显示所有其他列。

我道歉,上述陈述毫无意义。看来您需要做的是创建一个参数来显示要隐藏或显示的列,然后在报表运行时只显示这些列中的任何数据。您还可以根据这些参数更改列标题的值。

唯一的另一个选择是使用不同的列组合创建尽可能多的报表,然后动态加载正确的列表。

答案 2 :(得分:1)

我相信这可能是一个错误。我已使用Reporting Services导出,其隐藏列依赖于运行时的参数。如果我运行隐藏列的报表,然后将结果导出到Excel或PDF或大多数导出格式,则不会导出隐藏的列。如果我将报告导出为CSV文件,则会导出隐藏列。当然这是CSV导出中的一个错误。

从逻辑上讲,他们都应该以同样的方式行事。