有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)
有没有办法编写上面的代码而无需列出列出的每个导出选项?包含所有出口选项的方式?如果是这样,您将如何编写该代码?
答案 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本身中提到过。因此它确实有效!