使用ActiveReports for .net 进行报表开发(十一)—迁移到3.0

转帖|其它|编辑:郝浩|2012-01-15 23:48:57.000|阅读 398 次

概述:在这里先介绍下ActiveReports。ActiveReports是.net下出色的报表开发工具,我最喜欢它的地方就是提供了单独的代码文件,你能够操作数据源,也可以控制报表的显示等等,很灵活。但是可能由于宣传不足,国内用的比较少,这两天用上了最新的ActiveReports for .net 3.0,发现比起2.0,变化是比较大的,要从2.0迁移到3.0,还要费一点功夫。下面说说升级后的主要区别和要注意的几个地方,其中包含了一些朋友在本系列前面的随笔的评论中提到的问题。

  在这里先介绍下ActiveReports。ActiveReports是.net下出色的报表开发工具,我最喜欢它的地方就是提供了单独的代码文件,你能够操作数据源,也可以控制报表的显示等等,很灵活。但是可能由于宣传不足,国内用的比较少,这两天用上了最新的ActiveReports for .net 3.0,发现比起2.0,变化是比较大的,要从2.0迁移到3.0,还要费一点功夫。下面说说升级后的主要区别和要注意的几个地方,其中包含了一些朋友在本系列前面的随笔的评论中提到的问题。

  安装:

  我的安装过程可谓是一波三折。先卸载掉了2.0,安装3.0后发现VS2005每次启动后都提示“包加载错误”,要求使用“devenv /resetskippkgs”重新加载的提示。所有的窗体都无法打开设计器,而且给项目添加新项的时候也没有显示ActiveReports的文件。根据提示在网上搜了一遍,按照微软提供的资料也无法解决,无奈之下只好修复VS2005,完成后窗体设计器可以打开了,这才松了口气,重新安装ActiveReports,这次没有出现什么问题,一次OK。

  安装完了,第一件事就是打开帮助看看有什么新的变化,但是很不幸,帮助无法打开,只好又执行了一次帮助安装目录下的H2Reg.exe /r,才把帮助搞定。

  这下整个安装过程才完成,可以正式开始了。

  可视化设计器:

  设计器中最明显的变化就是添加了“Preview”的Tab页,可以设计好布局后直接在这里预览。3.0版 本还在工具栏里提供了在设计期放大,缩小浏览布局的按钮,刚安装后并不显示,需要在工具栏配置中选中。这是个很方便的功能,因为在作一些表格式的报表时, 经常在设计期看到线都是对齐的,但是在打印出来后常常有中断或者偏差,有了这个功能,在设计期就能方便地检查这些错误。

  还有就是在2.0中,打开报表设计器的时候会显示ReportExplore,现在ReportExplore设计成和类解决方案,属性等窗口一样的模式,可以和这些窗口重叠在一起显示。ReportExplore中的Fileds节点增加了下级:Bound和Caculated。

  代码迁移:

  在3.0版本中,程序集名称,命名空间都已经变了,以前用2.0写的报表都编译不了,如果仍然要使用rpx+cs文件的方式,就要自己修改代码,重新添加项目引用。3.0中也提供了工具,用来转换2.0下的报表。该工具是“工具”菜单下的ActiveRepots File Convert,根据向导转换完成后,你会发现,原先的报表的图表变成了和组件一样的图标,原来的Rpx文件已经不存在了,一个报表的文件组成变成了.cs + resx,同样你如果新建一个报表,也是cs+resx这样的文件组合。这应当是3.0中最大的变化了,所以如果你安装了3.0后,看到原来的rpx文件的图标是未知文件类型的,请不要奇怪。

  3.0中还提供了从Access导入报表的功能,你可以在给项目添加新项的时候看到“ActiveReports 3.0 Access Import Wizard”的项,提供了一个向导来从指定的Access库中导入报表。

  问题

  ActiveReport提供了一个很重要的功能-End User,并且有一个示例程序,实现了一个报表设计器。在这个示例程序中,如果使用了中文字段名,并且显示在Report Explore的Fileds节点中,从Report Explore向报表上拖放的时候会产生一个错误,提示控件名不合法。

  这是因为在拖放的时候会自动生成一个和字段名相像的TextBox框,名字为“txt+字段名”,所以会报出错误。但是在2.0中却没有这个错误,当出现中文字段名时,生成对应的TextBox会自动更名,使用合法的名字。所以这应当是3.0中的一个bug。

  要重现这个bug,只需要在EndUser示例的窗口的Load事件中添加下面的代码:

DataTable dt = new DataTable();

dt.Columns.Add("中国");

dt.Columns.Add("123123");

dt.Columns.Add("asdf");

dt.TableName = "table1";

DataSet ds = new DataSet();

ds.Tables.Add(dt);

this.arDesigner.Report.DataSource = ds;

  this.arDesigner.Report.DataMember = ds.Tables[0].TableName;

  程序启动后会在Report Explore中看到添加的字段,直接拖放到报表上就能看到错误了。

  虽然有这个问题,但是并不妨碍使用中文字段,只要不使用拖放功能就可以了。

  粗略的看了下,捡自己觉得重要的写了。完整的更新列表还请看帮助里的“What’s New”。最新版的ActiveReports for .net 3.0可以在DataDynamic的官方网站上下载,已经是带SP1的了。



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:网络转载

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
ActiveReports

亚洲畅销的.NET报表控件,20万用户的选择,可在应用程序中生成各种报表,十多年来一直荣获应用程序的优秀报表生成控件。

ActiveReports COM

ActiveReports COM是一款强大和极易使用的ActiveX报表控件,完全集成在Visual Basic开发环境,提供了强大的报表设计器

购物车 在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat