SSRS 2008 r2 Globals!RenderFormat.Name = EXCELOPENXML

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

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

因此,我有以下问题,其中包括:

  1. 你能告诉我为什么我的Visual Studio IDE和testing报告服务器之间的值是不同的? 如果是这样,有什么我可以做的环境,使价值观是一样的? 如果是这样,我能做些什么来使价值相同?
  2. 我担心将RDL部署到生产报表服务器。 我怎么知道Globals!RenderFormat.Name的值是EXCEL,EXCELOPENXML,还是你所说的东西? 在SSRS中可以设置和/或在报表服务器上有一些选项(设置)吗? 如果是这样,那么选项是什么?
  3. 如果没有办法告诉生产报表服务器会发生什么情况,我应该只将报表部署到生产环境中,看看我得到了什么? 我只是将一个“临时”文本框放在报表服务器上,并将expression式=Globals!RenderFormat.Name放在该文本框中? 你有什么build议?

这似乎是你的testing服务器是SSRS 2012 – 这是获得该渲染格式的唯一方法。 该版本中引入了EXCELOPENXML渲染扩展:

Reporting Services Excel呈现扩展(SQL Server 2012中的新增function)将报表呈现为与Microsoft Excel 2007-2010兼容的Excel文档以及带有用于Word,Excel和PowerPoint的Microsoft Office兼容包的Microsoft Excel 2003。 格式是Office Open XML,文件扩展名是XLSX。

查看最新消息(Report Services 2012) 。

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

如果要确保testing和生产服务器使用与IDE相同的导出格式,则可以在Reporting Servicesconfiguration文件中重新启用旧的EXCEL格式器。 在SSRS 2012中,相关的configuration文件部分将如下所示:

 <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元素。

有关更多详细信息,请参阅RSReportServerconfiguration文件 。

但是,真的,我不认为你应该改变默认的报表服务器设置 – 真正你最好的select是升级你的IDE来匹配服务器,即开发使用BIDS 2012。

在评论之后编辑

如果您只是在寻找可用于SSRS 2008R2和SSRS 2012的可见性expression式,如下所示:

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

应该适用于两个版本。