65.9K
CodeProject 正在变化。 阅读更多。
Home

在开始将sql server reporting services 2005迁移到2008之前做好准备

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (2投票s)

2012年10月31日

CPOL

5分钟阅读

viewsIcon

30678

本文可能对那些正在考虑迁移或在SQL Server Reporting Service (SSRS) 2005到2008迁移过程中遇到麻烦的开发人员有所帮助。

引言

迁移本身很简单,但如果现有的SSRS 2005报表包含以下任何功能,您可能会遇到大问题:自定义代码、注释、自定义图例项和/或Dundas控件。

我曾计划将我们的报表服务器从SSRS 2005迁移到SSRS 2008。我做了一些研究,了解迁移的起因和影响,以便知道迁移可能出现的问题,老实说,我没有找到任何解释迁移经验的文章。这就是为什么我分享我的经验,以便开发人员在进行迁移之前,能够对报表可能产生的影响有一个大致的了解。

为什么要迁移? 

基本上,我们考虑迁移的主要原因是: 

  1. 使用改进的渲染效果,因为我们的一些报表加载缓慢且非常耗时。
  2. 扩展报表导出功能。
  3. 使用Tablix来表示表格类报表。
  4. 弃用Dundas图表、仪表和其他控件,因为它们已集成到SSRS 2008中。
  5. 此外,我们正从Windows Server 2005迁移到2008,所以我们认为同时迁移SSRS将是最好的选择。

总而言之,这次迁移并不容易,反而花费了很多额外的、意想不到的精力。

迁移很简单,但请为可能出现的问题做好准备。

  • 我拥有用SSRS 2005开发的旧报表。
  • 我安装了SQL Server 2008 R2,它提供了SQL Server Business Intelligence Development Studio。
  • 打开Business Intelligence Development Studio 2008。
  • 转到文件 -> 打开 -> 项目/解决方案,浏览SSRS 2005解决方案。
  • Visual Studio转换向导将打开并转换所有报表。

Boom!!呼呼,报表已转换并准备就绪。

顺便检查所有报表的页眉、页脚和分页符,因为SSRS 2008的渲染方式已发生变化,这些可能会出错。 

但是问题出在Dundas控件、自定义代码、注释和自定义图例项上。这些没有被转换,在某些情况下,转换甚至移除了它们。

Dundas控件和SQL Server报表服务器

SSRS 2005在自定义代码、注释、自定义图例项和许多其他重要的报表对象方面功能不强。但Dundas控件功能强大,在SSRS 2005中添加Dundas控件非常容易。因此,许多人在SSRS 2005报表中使用了Dundas控件。

微软于2007年4月收购了Dundas Data Visualization的知识产权,并将其技术集成到不同的微软产品中。新的图表和仪表报表项已作为SQL Reporting Services 2008的一部分发布。

好消息是,在从SSRS 2005迁移到SSRS 2008时,所有的Dundas控件都已自动转换。但坏消息是:包含自定义代码、注释和自定义图例的报表会出错,或者这些功能未被转换。因为2005年Dundas图表中未作为原生2008报表项包含的功能是:自定义代码、注释和自定义图例项

最糟糕的部分是:SSRS 2008从我的报表中删除了这些功能。 

转换后修复报表 

转换后修复报表  

如果您的报表中包含图表,那么图表系列图例很可能显示不正确,在某些情况下,我发现数据系列不正确,这意味着图表显示的数据错误。在我的情况下,我逐一检查了包含图表的每个报表,并检查了系列数据和图例,将自定义图例代码和系列属性从旧报表(SSRS 2005)复制到新报表(SSRS 2008)。

修复自定义代码和注释  

我没有找到直接在SSRS 2008中修复自定义代码和注释的方法。

  • 所以我下载了SSRS 2008的Dundas控件。
  • 安装SSRS 2008的Dundas控件。
  • 将旧的自定义代码从报表服务器2005复制粘贴到报表服务器2008。

如果您的自定义代码包含任何外部程序集,那么您应该重新生成dll,删除它,然后从计算机的私有程序集路径重新添加它。

请记住,在SSRS 2008的情况下,旧的自定义代码、自定义dll路径将无法工作,因为您需要使用Visual Studio 9的私有程序集目录,而不是Visual Studio 8。.

UI修复  

许多UI功能已发生变化,因此您的报表看起来可能与以前略有不同。不是报表数据,而是报表的背景、轴、图例位置等。这些功能比SSRS 2005丰富得多。但如果您的客户期望旧的用户体验,您可以随时进行更改。

关于报表查看器转换   

如果您在网站上显示报表,最好转换报表查看器控件。我们在网站上显示报表,以便客户能够轻松登录并查看每日报表。在我们的例子中,在将报表服务器从2005转换为2008后,我安装了报表查看器10,并将其替换了报表查看器9。

报表查看器10生成基于div和table的报表,而不是基于iframe的报表,因此它对浏览器更具兼容性。它具有JavaScript客户端API,因此可以通过JavaScript轻松修改客户端UX问题。此外,它的渲染速度更快。

顺便说一下,您无法在报表查看器10中加载SSRS 2005报表,它支持在SSRS 2008及更高版本中开发的报表。

转换中的沮丧 

由于我的报表包含特殊功能,我不得不安装SSRS 2008的Dundas控件,并使用Dundas控件修复报表,尽管Dundas控件已集成到SSRS 2008中。

由于报表文件数量巨大,测试和修复花费了很长时间。

最终,一切都完美地转换了。 

请注意

  • 转换前,请确保您有备份。
  • 请确保您的旧服务器仍然运行,以便进行测试和比较。
  • 最后,在将报表部署到生产服务器之前,请进行详细测试,因为某些功能可能会丢失。 

历史

V 1.0 - 2012年10月31日 - 文章初稿。

© . All rights reserved.