SSRS 2008 R2 Globals!RenderFormat.Name=EXCELOPENXML SSRS 2008 R2 全局变量!RenderFormat.Name=EXCELOPENXML

5
在一个已有的2008R2报告中,我担心报告被导出到Excel时的问题。我之所以担心是因为结果与用户选择的导出选项有关,这会影响表格、列和行的可见性。
当我在Visual Studio 2008R2 IDE中以Excel格式导出SSRS 2008R2时,Globals!RenderFormat.Name的取值为EXCEL。但是,当我从测试报告服务器以Excel格式导出SSRS 2008R2报告时,Globals!RenderFormat.Name的取值为EXCELOPENXML
因此我有以下问题:
  1. 您能告诉我为什么我的Visual Studio IDE和测试报告服务器之间的值不同吗?如果可以,是否有什么方法可以使两个环境的值相同?如果可以,应该采取什么措施?
  2. 我很担心将RDL部署到生产报告服务器。如何知道Globals!RenderFormat.Name的值是EXCEL、EXCELOPENXML还是其他值?在SSRS上是否有某些设置可以设置此选项?如果可以,应该设置什么选项?
  3. 如果无法预测在生产报告服务器上会发生什么,那我应该只是将报告部署到生产环境并观察结果吗?我是否应该在报告服务器上放置一个“临时”文本框,并在其中放置表达式=Globals!RenderFormat.Name?您有什么建议?
1个回答

7
看起来你的测试服务器是SSRS 2012 - 只有这种方式才能得到那种呈现格式。 EXCELOPENXML 呈现扩展是在该版本中引入的:

报告服务 Excel 呈现扩展是 SQL Server 2012 中新推出的,它将报告呈现为与 Microsoft Excel 2007-2010 兼容的 Excel 文档,以及安装了 Word、Excel 和 PowerPoint 的 Microsoft Office 兼容性包的 Microsoft Excel 2003。该格式为 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)

应该适用于两个版本。


你不觉得将可见性值更改为以下检查在两个IDE中都能起作用吗:= IIF(Mid(Globals!RenderFormat.Name,1,5)=“EXCEL” - user1816979
当然,这样做应该是可以的(没有特别测试),即它应该能够捕获两种情况。我认为这更多是一个关于为什么环境可能不同的一般性问题。你的表达方式在两个版本中都能工作,很可能完全没问题——我已经加入了自己的建议。 - Ian Preston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接