SSRS 2008 R2 Globals!RenderFormat导出方法

时间:2013-11-27 14:50:32

标签: reporting-services ssrs-2008

有7种内置选项可用于导出SSRS 2008报告。

我想知道在选择导出选项时是否有更简单的方法在SSRS中编码以下内容:

=IIF(Globals!RenderFormat.Name="WORD" OR Globals!RenderFormat.Name="XML" OR  
  Globals!RenderFormat.Name="CSV" OR Globals!RenderFormat.Name="TIFF" OR   
  Globals!RenderFormat.Name="PDF", Globals!RenderFormat.Name="MHTML" OR 
  Globals!RenderFormat.Name="EXCEL",true,false)

有没有办法编写上面的代码而无需列出列出的每个导出选项?包含所有出口选项的方式?如果是这样,您将如何编写该代码?

3 个答案:

答案 0 :(得分:11)

由于表达式和其他报表项的处理和呈现顺序,ShellNinja的建议不能用作可见性表达式。

TechNet上的文章Built-in Globals and Users References在RenderFormat子标题下暗示了这一点(尽管是一个非常模糊的提示),它说:

  

Globals!RenderFormat.Name在报告处理/呈现周期的特定部分可用。

在评估表达式之前未填充

Globals!RenderFormat.Name,它在当前渲染请求完成时填充,这就是为什么它不能在可见性表达式中使用,而是在文本框中显示名称。

在表达式评估之前填充

Globals!RenderFormat.IsInteractive,这是在呈现报表之前隐藏/显示报表项的唯一方法。 RPL和HTML被认为是完全交互式格式,所有其他格式不支持或仅支持某些交互功能。有关这方面的更多信息,请参阅TechNet上的文章Comparing Interactive Functionality for Different Report Rendering Extensions

答案 1 :(得分:3)

使用“RPL”表示更简单的IIF表达式,以便任何其他格式为“EXCEL”,“CSV”,“WORD”等。当报表显示在报表服务器查看器或ReportViewer控件中时,RenderFormat为“ RPL”。

    =IIF(Globals!RenderFormat.Name = "RPL", true, false)

设置为可见性表达式时的上述代码将在SSRS中显示时显示该字段,并在导出时隐藏它。

提示:如果你有一个很长的IIF表达式,请使用切换表达式Reporting Services Expression Examples,它们更清晰,更易于管理。

答案 2 :(得分:0)

下面的表达式放置在选定列的“列可见性”对话框中,仅在将报表导出到Excel时显示该列;否则,该列将被隐藏。

=IIF(Globals!RenderFormat.Name = "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", false, true)

这在MSDN本身中提到过。因此它确实有效!