两种报表组件的功能分析

 

 

一.分析对象html

用友华表Cell 5.0、水晶报表Crystal Report 9.2数据库

 

二.功能描述服务器

1.用友华表功能描述ide

1.1 特色:工具

提供相似于Excel界面的超级报表进行报表设计,包括数据填充、插入图表、单元格修饰等功能;同时提供表格、单元格、打印、记录集等方法和属性为开发者解决报表二次开发。性能

1.2 功能:测试

1.2.1  报表设计编码

超级报表提供了报表的众多设计功能,操做相似于Excel。在开发过程当中,可将Cell50Control控件直接嵌入,利用组件提供的方法,响应用户对报表的操做;spa

1.2.2  与数据库链接插件

华表提供了相应的数据库和记录集方法,但功能不够完善,同时欠缺稳定。能够自定义数据库方法,将数据读入DataAdapter中后,根据华表的行号、列号创建一一对应关系。

1.2.3  打印和打印预览

组件提供了基本的打印方法,可以完成打印预览,翻页,打印设置等诸多功能。尤为提供了设置分页符功能,能够根据开发者或用户须要决定每页所显示的行(列)数。

1.2.4  文件格式兼容性

      华表报表文件格式为.CLL。同时还支持与Word文档、ExcelHtmlPDF等多种格式。

2.水晶报表功能描述

2.1 特色:

水晶报表自己是一个集应用与设计为一体的报表平台。用户在使用报表时,能够直接经过界面操做,不须要编写一行代码便可完成报表对数据表数据的操做。同时还包括统计、分组、插入图表等功能。水晶报表还提供了Crystal语言规范,为高级用户提供处理复杂报表的可能。同时,在Visual Studio.Net中嵌入了Crystal Report组件,为二次开发提供了方便。

2.2 功能:

2.2.1  报表设计

用户能够直接使用Crystal Report来进行报表设计。在开发过程当中,开发者能够经过直接插入新的或已有的报表文件,并与CrystalReportViewer相链接。用户能够在开发者二次开发的平台下进行简单的报表设计或显示、打印已有报表。

2.2.2  自定义模板

水晶报表中的模板实际上是与报表文件是一致的。模板提供了报表数据的显示格式,除系统自己提供的模板文件外,用户也能够自定义模板,或者把已有的报表文件定义为模板。定义好模板,只须要添加或改变模板和数据集之间的链接,便可显示具体内容。

2.2.3  打印和打印预览

CrystalReportViewer工具栏上提供了基本的打印操做。开发者也能够隐藏该工具栏,添加按钮,根据组件提供的Page ObjectPrintStatus Object等对象方法编写代码,实现用户须要的功能。

2.2.4  文件格式兼容性

能够输出包括.PDF.Xls.html等多种格式的文件。水晶报表也支持与XML文件的转换。但转换后的XML文件是水晶报表特定的Xml Schema

三.华表与水晶报表的比较

1.华表的优点与劣势

1.1  华表的优点

1.1.1 设计符合中国人习惯

超级报表的界面和操做都与Excel相相似,同时在设计表格的格式上,包括单元格的拆分和合并都很是方便,容易定制很是复杂的报表。

1.1.2  横向报表的设计

华表对于数据的显示是以行号和列号来定义的,所以在华表中纵向和横向的显示方法是相同的,只须要改变行、列的位置就能够了。因为华表提供了插入分页符的方法,使得横向报表的分页能够很是简单地完成。

1.2 华表的劣势

1.2.1  对数据库的访问能力不足

华表虽然提供了数据库的访问方法,但稳定性不够好。对于SQL语句的支持不够。所以须要自定义数据库方法,经过代码实现,加大了开发者二次开发的代码量。同时,用户在设计报表时,没有直接提供与数据库相连的控件。

1.2.2  用户自定义模板功能

虽然用户能够在超级报表中定义本身的报表格式,以造成模板。可是模板文件不能和数据集的数据创建有效链接。也就是数据须要用户人工输入,而不是直接经过代码从数据集中获得。所以后期的统计等运算功能就没法经过编码实现。

1.2.3  组件稳定性差,为二次开发带来测试隐患

华表组件版本虽然在不断升级中,但总体性能欠缺必定的稳定性。组件所提供的方法虽然可行,但在二次开发中每每会给程序带来意想不到的bug。同时,华表所能承受的数据交换量,也值得怀疑,对大量的数据处理显得能力不足。

2.水晶报表的优点与劣势

2.1 水晶报表的优点

2.1.1 功能强大、操做方便快捷

水晶报表对于报表的设计支持是很是强大的。用户能够根据水晶报表完成显示、统计、分组、插入图表等多种功能。对于子报表、组合报表的设计也很是简单。水晶报表还提供了设计报表的向导,轻松完成报表设计。数据库专家、节专家等功能为用户对数据库的处理提供了直观的操做方法。只须要拖动数据表的字段对象,就能够读取数据表的记录内容,并自动完成分页。

2.1.2 功能完善的组件方法

水晶报表的组件方法很是丰富,涵盖了数据库操做、格式设计、打印、文件转换等多种功能。这些方法为二次开发提供了便利。在Visual Studio.Net中,报表文件是一个项目文件,它以类的形式存在,并经过CrystalReportViewer对报表文件进行显示。CRAXDDRT组件则提供了针对各类对象的方法,例如新建、打开报表,创建、修改数据库链接等。还能够经过FieldObject中的相关对象接受公式或参数对数据表的操做。同时也能够经过TextField在报表中显示不一样的内容。

2.1.3 用户可自定义模板

用户自定义模板与设计报表彻底相同。同时,定义好的模板能够经过数据库方法直接读取数据表的数据。模板的使用能够大大提供报表设计的工做效率。

2.2 水晶报表的劣势

2.2.1 设计报表格式困难

与华表偏偏相反的是,水晶报表对复杂报表的支持远远不够。因为水晶报表不是采用单元格的方式,当用户须要合并或拆分单元格时,没有直接的方法支持。同时,很难实现横向报表。水晶报表是以节(Section)的形式纵向显示。数据表的列名显示在页眉节,列的内容在详细资料节中显示,水晶报表根据条件自动读出数据表数据纵向显示并分页。

2.2.2 不支持对报表文件的直接修改

    CrystalReportViewer只显示报表文件的内容,而不支持对报表内容的实时修改。如要编辑报表数据,只有经过应用程序调用存储过程直接对数据表进行修改,而后Refresh报表显示。

四.总结及个人评价

从各自的功能和优缺点来看,二者的优点和劣势都很是明显,且偏偏相异。从总体性能看,水晶报表更稳定,功能更完善和强大。尤为是水晶报表中对数据库的支持,不管是性能上,仍是提供的方法上,都具备华表所不具有的优点。然而,若是从报表显示格式来看,华表无疑更能知足中国人对报表的要求。

若是要在报表组件的基础上二次开发报表平台,我认为选择水晶报表是更佳方案。缘由以下:

1.组件性能稳定

在进行二次开发时,若是所使用的组件性能不稳定,Bug百出,必然会影响开发进度,同时为系统测试带来很大的困难。

2.对数据库的支持强大

报表与电子表格最大的区别是它的数据处理能力。经过数据库而不是读取单元格的数据来完成诸如排序、统计、分类汇总、查询、更新,使得报表对数据处理的性能能够获得很大的提升。而水晶报表在一点上功能很是强大。

3.支持B/SC/S模式的开发

虽然华表也提供了插件以支持B/S模式开发,但因为其插件是客户端组件,在软件部署时会带来很大的不便。且在客户端和服务器端的数据交换能力方面,水晶报表在技术上很是优秀。

相关文章
相关标签/搜索