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





4.00/5 (2投票s)
本文可能对那些正在考虑迁移或在SQL Server Reporting Service (SSRS) 2005到2008迁移过程中遇到麻烦的开发人员有所帮助。
引言
迁移本身很简单,但如果现有的SSRS 2005报表包含以下任何功能,您可能会遇到大问题:自定义代码、注释、自定义图例项和/或Dundas控件。
我曾计划将我们的报表服务器从SSRS 2005迁移到SSRS 2008。我做了一些研究,了解迁移的起因和影响,以便知道迁移可能出现的问题,老实说,我没有找到任何解释迁移经验的文章。这就是为什么我分享我的经验,以便开发人员在进行迁移之前,能够对报表可能产生的影响有一个大致的了解。
为什么要迁移?
基本上,我们考虑迁移的主要原因是:
- 使用改进的渲染效果,因为我们的一些报表加载缓慢且非常耗时。
- 扩展报表导出功能。
- 使用Tablix来表示表格类报表。
- 弃用Dundas图表、仪表和其他控件,因为它们已集成到SSRS 2008中。
- 此外,我们正从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日 - 文章初稿。