Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS:基于参数值有条件地隐藏列-CSV导出忽略_Reporting Services - Fatal编程技术网

Reporting services SSRS:基于参数值有条件地隐藏列-CSV导出忽略

Reporting services SSRS:基于参数值有条件地隐藏列-CSV导出忽略,reporting-services,Reporting Services,在SSRS 2008中,我有一个简单的基于表格的报告,共有10列,每列都有一个相应的参数,用于确定是否应显示该列。我通过设置在设计模式中右键单击列标题时获得的列可见性选项来实现这一点。在本例中,我选择“基于表达式显示或隐藏”,并将表达式设置为布尔类型的参数值 该功能在初始渲染期间按预期工作,但是,当我选择将报告导出到CSV时,可见性表达式要么被忽略,要么不被计算,因为不管设置如何,列都会显示 “可见性”对话框有三个选项,“显示/隐藏/显示”或“基于表达式隐藏”-如果我显式设置“隐藏”选项,CSV

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

该功能在初始渲染期间按预期工作,但是,当我选择将报告导出到CSV时,可见性表达式要么被忽略,要么不被计算,因为不管设置如何,列都会显示

“可见性”对话框有三个选项,“显示/隐藏/显示”或“基于表达式隐藏”-如果我显式设置“隐藏”选项,CSV导出不会像您预期的那样包含列,但是如果我使用表达式,它将包含列-我甚至将表达式显式设置为“=True”,但仍然忽略了它


如何获得导出选项以正确计算此值?

不能使用表达式隐藏或忽略导出列。这是因为表达式将只在报表本身中计算,而不会在导出中计算

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

很抱歉,上述声明毫无意义。似乎您需要做的是创建一个参数来显示要隐藏或显示的列,然后当报表运行时,不显示这些列中的任何数据。还可以基于这些参数更改列标题的值


唯一的其他选择是创建尽可能多的具有不同列组合的报告,然后动态加载正确的报告。

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


从逻辑上讲,它们的行为应该是相同的。

这是卡伦在文章中提出的解决方案

基本上,您可以在要隐藏的控件上设置数据元素输出

这对我在导出到CSV时隐藏表很有用


我实际上也尝试过这种方法,将可见性切换表达式添加到列本身、列标题和数据字段中。不走运。看起来它只是没有计算表达式。如果正确,您必须实际将数据更改为nothing,而不是切换可见性表达式。因此,作为一个参数,您可以决定显示或隐藏哪些列,然后数据集将不会返回这些列的数据(或只是一个空白字符串)。我正在尝试执行相同的操作,您在2008年或以下的版本中不能返回这些数据,但如果有帮助,如果您可以升级到2008 R2,则可以在可见性表达式中使用Globals.RenderFormat。