SSRS 2008 R2 Globals!RenderFormat.Name = EXCELOPENXML

时间:2013-12-04 17:39:10

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

在现有的2008R2报告中,我担心报告会导出到Excel。我有这个问题,因为结果与Tablix,列和行的可见性有关,基于用户选择的导出选项。

当我以Excel格式从我的visual studio 2008R2 IDE导出SSRS 2008R2时,Globals!RenderFormat.Name = EXCEL 的值。但是,当我以Excel格式从测试报告服务器导出SSRS 2008R2报告时,Globals!RenderFormat.Name = EXCELOPENXML 的值。

因此,我有以下问题,包括以下内容:

  1. 您能告诉我为什么我的visual studio IDE和测试报告服务器之间的值不同吗?如果是这样,有什么我可以做的任何environmnet使价值相同?如果是这样,我该怎么做才能使价值相同?
  2. 我担心将RDL部署到生产报告服务器。我怎么知道来自Globals!RenderFormat.Name的值是EXCEL,EXCELOPENXML还是你告诉我的预期值?我可以在报表服务器上设置和/或在SSRS中有一些选项(设置)吗?如果是这样,该选项会是什么?
  3. 如果无法确定生产报告服务器上会发生什么,我是否应该将报告部署到生产中并查看我得到的内容?我是否只需在报表服务器上放置一个“临时”文本框,并将表达式=Globals!RenderFormat.Name放在该文本框中?你推荐什么?

1 个答案:

答案 0 :(得分:6)

您的测试服务器似乎是SSRS 2012 - 这是获得该呈现格式的唯一方法。 EXCELOPENXML 呈现扩展程序在该版本中引入:

  

Reporting Services Excel呈现扩展插件,是SQL Server中的新增功能   2012年,将报告呈现为与之兼容的Excel文档   Microsoft Excel 2007-2010以及Microsoft Excel 2003   适用于Word,Excel和PowerPoint的Microsoft Office兼容包   安装。格式为Office Open XML,文件扩展名为   XLSX。

See What's New (Report Services 2012)

我肯定会确认测试和生产服务器的SQL Server版本。

如果要确保测试和生产服务器使用与IDE相同的导出格式,可以在Reporting Services配置文件中重新启用旧的旧版 EXCEL 格式化程序。在SSRS 2012中,相关的配置文件部分将类似于:

<Render>
    ...
    <Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering" Visible="false"/>
    <Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>
    ...
</Render>

您可以根据需要设置Visible元素。

有关详细信息,请参阅RSReportServer Configuration File

但实际上,我认为您不应该更改默认的Report Server设置 - 最好的办法是升级IDE以匹配服务器,即使用BIDS 2012进行开发。

在评论后修改

如果您只是在寻找适用于SSRS 2008R2和SSRS 2012的可见性表达式,请执行以下操作:

=IIf(Globals!RenderFormat.Name Like "EXCEL*", True, False)

适用于两个版本。