ActiveReports 6:如何升级旧版本的项目

ActiveReports for .NET 6.0是报表控件ActiveReports的最新版本,在丰富报表设计功能的同时,还增加了Visual Studio 2010支持、Flash报表浏览器、水晶报表文件转换、PDF文件输出、可再分发的最终用户报表设计器等一系列新特性。如果现有的项目基于ActiveReports的旧版本开发,但现在希望使用ActitveReports for .NET 6.0的新功能,就需要把现有的项目升级到6.0上。ActiveReports 6.0提供了一些方便的工具和方法帮助现有用户平滑升级。

升级ActiveReports for .NET 3.0 项目

如果现在的项目使用的是ActiveReports for .NET 3.0,那么有两种升级方式:

  • 一是使用ActiveReports 6.0附带的转换工具(参见下面“升级ActiveReports for .NET 1.0 或2.0项目”);
  • 二是在Visual Studio中打开工程,用新版本的DLL替换掉旧版本的DLL引用,并且修改代码的编译错误。

替换工程的DLL引用

  1. 在Visual Studio中打开需要升级的报表工程。
  2. 在解决方案资源管理器中,点击“显示所有文件”按钮。
  1. 展开“引用”文件夹,记录下来工程中当前引用的ActiveReports DLL的名字。
  2. 右键点击每个 ActiveReports3引用,选择“移除”。
  3. 右键点击“引用”文件夹,选择“添加引用…”。
  4. 在弹出的添加引用对话框中,选择版本为6.x.xxx.x 的ActiveReports引用。注意,除了与ActiveReports3对应的ActiveReport6引用外,还需要添加GrapeCity ActiveReports Document引用。
  5. 点击“确定”按钮增加这些引用并关闭对话框。许多错误出现在Visual Studio的错误列表窗口。

修改代码错误

  1. 如果Visual Studio的错误列表窗口没有显示出来,在视图的下拉式菜单中选择“错误列表”。
  2. 在错误列表窗口中,双击ActiveReports3没有被定义的警告信息。
  3. 在报表代码中,ActiveReports3被高亮显示。把ActiveReports3 改为ActiveReport,这样应该可以消除错误列表中的大部分错误。
  4. 在错误列表窗口中,双击ActiveReports3.FetchEventArgs没有被定义的警告信息。
  5. 在报表代码中,把ActiveReports3 改为ActiveReport。
  6. 关闭报表的设计视图并再次打开,升级完成。

升级ActiveReports for .NET 1.0 或2.0项目

因为ActiveReports 6用C#或Visual Basic.NET代码描述报表布局,用ActiveReports for .NET 1.0和2.0生成的RPX文件需要被转换后才能在新版本上运行。ActiveReports 6包含了一个转换工具来帮助用户轻松完成此转换。

注意,转换工具不支持使用了报表继承的1.0或2.0报表。为转换这些报表,需要先执行如下操作:

  • 把继承报表对象的基类改为ActiveReport
  • 确认报表对象的InitializeReport方法能够被重载。

ActiveReports从NET 3.0版本开始改变了控件命名规则。在1.0和2.0版本中,控件的名称可以用大小写区分,比如可以用”Test”和”test”表示两个不同的控件,但ActiveReports 6(和3)要求控件的名称必须是唯一的且不区分大小写。如果装载的RPX文件中包含两个仅用大小写区分名字的控件,装载将会失败。为了避免此问题,需要给每个控件一个单独的名字,并且把代码做相应修改。

运行转换工具转换老版本的RPX文件:

  1. 在Visual Studio中打开现有的ActiveReports for .NET 1.0 或2.0工程,报表RPX文件将出现在解决方案资源管理器中。
  2. 在工具菜单下,选择 Convert to ActiveReports 6.0 打开ActiveReport报表转换工具,转换工具会列出工程中的所有RPX文件。
  1. 点击OK转换报表文件。报表会以C#或者VB文件的形式出现在解决方案资源管理器中,所有ActiveReports老版本的引用也已经被更新。
  2. 如果项目代码中使用了rpt.Show方法,错误信息将会出现在错误列表窗口中。为修正次错误,用rpt.Run 代码替代,然后增加一个Viewer control到Form上,并且设置viewer.Document = rpt.Document。

移植ActiveReports 2.0(COM)项目

ActiveReports 6 能够使用ActiveReports 2.0 (COM) 的报表布局文件(RPX),但需要对其中的脚本代码进行一些修改。必须在ActiveReports 2.0设计器中先把ActiveReports 2.0 的设计文件(DSR/DSX)保存为RPX文件,然后才能被装载到ActiveReports 6当中。因为ActiveReports不会装载RPX文件中的VB代码或脚本代码,这些代码需要用.NET环境中的相应语言进行重写。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Linux命令行:find的26个用法示例

作者 | Wray 来自 | http://www.codebelief.com/ Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根...

377130
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我...

367130
来自专栏蓝天

配置VIM语法高亮及自动缩进

原文:http://blog.sina.com.cn/s/blog_601331150100gjmk.html

22640
来自专栏全华班

“码码”再也不用担心我的代码被反编译了!

自己辛辛苦苦写出来的代码,被别人无情的反编译了怎么办? ? 一、背景 Java是一种跨平台的、解释型语言,Java源代码编译成中间“字节码”存储...

81360
来自专栏网络

深入理解php底层:php生命周期

文章来自:博客 http://blog.csdn.net/hguisu/article/details/7377520 1、PHP的运行模式: PHP两种运行模...

49590
来自专栏码农阿宇

dot watch+vs code提升asp.net core开发效率

在园子中,已经又前辈介绍过dotnet watch的用法,但是是基于asp.net core 1.0的较老版本来讲解的,在asp.net core 2.0的今天...

37350
来自专栏iOS开发攻城狮的集散地

iOS 打包Framework

27350
来自专栏xiaoheike

Linux下部署solrCloud

这里我只是把我的师兄教我的关于Solrcloud搭建的过程,以及需要注意的地方文档化了。感谢他教会了我很多。

20730
来自专栏技术碎碎念

Http请求与响应

Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定。 请求部分由三部分组成: Requset line:请求...

29460
来自专栏逸鹏说道

Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)

Linux基础:https://www.cnblogs.com/dunitian/p/4822808.html#linux

18240

扫码关注云+社区

领取腾讯云代金券