【问题标题】:ssrs 2008 r2 export to csv displays column all the timessrs 2008 r2 导出到 csv 一直显示列
【发布时间】:2014-01-03 16:54:50
【问题描述】:

SSRS 2008 R2 报告中,用户将数据导出到:csv(逗号分隔)excel

我正在使用以下内容来显示列是否可见:

=IIF(Mid(Globals!RenderFormat.Name,1,5)="EXCEL" AND First(Len(Fields!CustomerNumber.Value)) > 0,False,true)

我为显示值的文本框设置了DataElementOutput=Output

我为包含列标题的文本框留下了DataElementOutput=Auto

当导出到csv(逗号分隔)excel时,我基本上希望当字段中有数据时该列可见并且当没有数据时该列不可见。

代码适用于excel,但代码不适用于逗号分隔。

因此,您能告诉我我能做些什么,以便在将数据导出到 csv(逗号分隔)时不会显示该列吗?

【问题讨论】:

    标签: reporting-services ssrs-2008 export-to-excel export-to-csv ssrs-2008-r2


    【解决方案1】:

    您可以尝试通过继续使用“CSV”输出类型的报表来执行此操作。

    =IIF( (Mid(Globals!RenderFormat.Name,1,5)="EXCEL" OR Mid(Globals!RenderFormat.Name,1,5)="CSV") AND First(Len(Fields!CustomerNumber.Value)) > 0,False,true)
    

    或者一个switch语句:

    =Switch(Mid(Globals!RenderFormat.Name,1,5)="EXCEL" AND First(Len(Fields!CustomerNumber.Value)) > 0,False, Mid(Globals!RenderFormat.Name,1,5)="CSV" AND First(Len(Fields!CustomerNumber.Value)) > 0,False,true)
    

    但是....

    问题可能是由于 csv 文件的性质是一种更简单的格式,无法在输出中处理此问题。如果在写入操作之前硬写入输出,则取决于 SSRS 如何处理输出。由于 CSV 格式的限制,它可能根本不起作用。如果是这种情况,您可以简单地获取 Excel 输出并将其以代码或手动操作的形式保存为 CSV。

    【讨论】:

    • 我尝试了您的建议,但没有奏效。因此,您能告诉我为什么这只是 csv 的问题吗?那是一种无法处理逻辑的更简单的格式吗?这是 ssrs 导出到 csv 文件的问题吗?
    • 我不知道是什么问题,我希望我这样做了。我只是猜测,由于 CSV 是一种更简单的逗号分隔值格式,它无法处理更困难的演示。我认为您可能已经能够通过希望 SSRS 在应用表达式后创建来解决这个问题,但似乎不会。您可以坚持使用 Excel,或者如果需要使用 CSV,手动转换 Excel 文件或在 C# 或 VB 等代码中进行保存。
    • 好吧,取决于布局的简单程度,您可以进行简单的重命名,看看是否可行。然后获取一段 C# 代码,将文件操作“移动”或“复制”到同一目录。如果您想获得更详细的信息,可以创建一些方法来确定文件中的所有内容,如以下线程:stackoverflow.com/questions/2536181/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多