5

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

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

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

  1. 你能告诉我为什么我的 Visual Studio IDE 和测试报告服务器之间的值不同吗?如果是这样,我可以对任何一个环境做些什么来使值相同吗?如果是这样,我该怎么做才能使值相同?
  2. 我担心将 RDL 部署到生产报表服务器。我怎么知道 from 的值Globals!RenderFormat.Name是 EXCEL、EXCELOPENXML 还是您告诉我期望的值?我可以在 SSRS 中和/或在报表服务器上设置一些选项(设置)吗?如果是这样,选择是什么?
  3. 如果无法判断生产报表服务器上会发生什么,我是否应该将报表部署到生产环境中看看我得到了什么?我会在报表服务器上放置一个“临时”文本框并将表达式=Globals!RenderFormat.Name放在该文本框中吗?你有什么建议吗?
4

1 回答 1

7

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

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

请参阅新增功能(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 配置文件。

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

评论后编辑

如果您只是在寻找适用于 SSRS 2008R2 和 SSRS 2012 的可见性表达式,例如:

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

应该适用于两个版本。

于 2013-12-04T17:53:33.733 回答