1.水晶报表
水晶报表(Crystal Reports)是Business Objects公司出品报表分析与生成软件,历史比较长,使用比较广泛。最新版为11版,该版又分为三个版本:专业版、开发版和服务器版。
l 访问任何数据源
包括:Oracle, DB2, Sybase, NCR, SQLServer, MySQL, MS Access, ODBC, JDBC, OLEDB, XML, Javabean, ADO.NET, COM, MS Excel, MS Exchange, Informix, Pervasive SQL, Lotus Notes, ACT!6, Borland Database Engine, Text, File System, xBase, MS Outlook, NT Event Log, Microsoft IIS Log, Web Log等35余种。
l 设计报表
报表使用者可以使用视觉化报表设计工具来设计高度格式化、互动式以及有专业质感的报表。
l 在 web 上发布和管理报表
通过开发版提供的SDK,可以将报表轻易的发布到网络,让组织内的各成员都能作出更好的决策,可以将报表输出成最终用户便于使用的格式(Excel、RTF、PDF、Word等)。
l 将报表与接口和应用集成
水晶报表可以直接产生HTML文件,允许开发人员将精力用于设计应用程序的商务逻辑上,而非复杂耗时的程序设计工作。将应用程序开发与报表设计工作明确区分,让开发人员专注于应用程序开发,而报表撰写者则更专注于报表设计。
l 数据呈现的通用标准
作为跨平台的报表标准,Crystal Reports很好地与主流的Java和.NET IDE集成在一起。开发人员使用一种通用标准的报表技术就可以满足所有的数据呈现和信息发布的需求。现有的水晶报表文件也可以被你的J2EE应用程序重用。
l 集成在.net开发环境中
可以在熟悉的应用程序设计器中直接建立报表。应用程序中使用Crystal Reports强大的报表创建、集成和传递工具代替手工编码,提高劳动效率。在.net项目中通过使用已经存在的水晶报表以及报表创建技巧能够节省时间并且只用写很少的代码。
l 所见即所得的集成报表设计器
在Visual Studio .net、Delphi和C# Builder开发环境中可以直接无缝地创建高质量的报表
l 导出到常用格式
允许最终用户生成、打印以及导出报表到一个可选择的行业标准格式,包括Excel、PDF、RTF文件,而且不需要任何的编程工作。
l ADO.NET 数据集支持
连接任何动态实时的数据,使用各种可控数据源,并可以连接到XML报表WEB服务。
l WebForm和WinForm报表查看器控制
通过在应用程序中使用WebForm和WinForm,可以快速集成并显示报表。
l 运行对象模块
通过该模块可以实现程序运行时对报表的自定义设置,可以改变报表的大小和位置,还可以传递参数以及进行登陆身份验证。
l 集成的帮助系统
快速解决问题,学习技术以及使用开始向导、实例和API参考。在Visual Studio .net中有动态帮助和F1支持。
l XML报表WEB服务(*该特性只在Visual Studio .net中可用)
只需要鼠标一点就可以将水晶报表发布为XML报表WEB服务
l Crystal Enterprise Web服务(*该特性只在Visual Studio .net中可用)
为了快速的报表集成,Crystal Enterprise Web服务允许将在Crystal Enterprise中管理的报表应用到您的应用程序中去。
2.Reporting Service
Microsoft® SQL Server™ 2000 Reporting Services 是一种基于服务器的新型报表平台,可用于创建和管理包含来自关系数据源和多维数据源的数据的表格报表、矩阵报表、图形报表和自由格式报表。可以通过基于 Web 的连接来查看和管理您创建的报表。
l 支持广泛的数据源
Microsoft SQL Server Oracle 数据库任何与
ODBC 或 OLE DB 兼容的数据源
l Reporting Services提供两种编程模式: IDE和API
微软的报表可以象VB那样通过拖拉以及填写一些必要的信息来一步步的创建,这点功能对非专业的用户可能比较有用,但专业开发人员可能更喜欢用调用API的方式来实现,演讲中微软的专家现场用VB.NET编写了代码,很简便,例如myReportSystem.deleteItem(…)表示删除报表.
l 同Outlook集成实现报表的自动发送
因为Outlook是微软自己的产品,因此实现同Outlook的集成是情理之中,显然这也是Reporting Services的一个很大的优势,相当于包含了一部分工作流的功能,对于企业高层用户来说,时间宝贵,当然不可能总是到ERP中手工获取报表,Reporting Services可以事先定义好报表规则,然后可以按月按季度定时把报表自动发送到用户邮箱中.
l 提供权限控制功能
分管理员/高级用户/普通用户等等权限,创建报表的人可为该报表分配权限
l 提供快照和历史记录功能,减少了报表服务器的负荷
快照实际上就是在数据库服务器和报表服务之间又加了一层Cache,也就是说有些报表可以直接在缓存里调出来使用,不用每次都查询。历史纪录就象IE里的历史纪录一样,提供了一个索引功能
l 提供便利的接口允许用户自定义报表规则
非专业用户不需要写SQL语句来实现报表规则,只需要在一个列表中填写规则(例如 > < = 等规则).这也是微软一贯的风格,微软的软件都是“傻瓜”型的,这也是许多非专业用户喜欢微软软件的重要原因。
l 同Office集成,而且可以直接转换为PDF格式
产生的报表最初是显示在IE里,也可以转换为Excel等格式,另外还可以转为PDF格式 同Office集成是可以理解的,但让人意外的是,微软现在也开始提供PDF格式,PDF是WORD的有力竞争者,我想第一是PDF有很多免费的二次开发工具,第二是微软也认识到越来越多的用户在使用PDF格式,PDF的优点是体积小、格式清晰美观、保密功能强.
l Reporting Services是.NET开发环境中的一个插件,
必须在安装.NET开发环境后才能安装Reporting Services,在BI(Business Intelligence)组件库中可以找到Reporting Services项目.然后就可以按照Step by step的步骤来建报表,一般的要从控件库里拖拉一个Table放在界面里,然后指定行列以及各自对应字段.
l 报表文件通用性强
报表定义文件是一个扩展名为RDL的XML文档。它保存了报表的样式定义和数据源的定义,是微软自己定义的一种描述报表定义的XML文档,结构是公开的,因此第三方厂商可以编写兼容报表服务的报表设计器。
水晶报表和Reporting Service功能比较
功能 |
Reporting Service |
水晶报表 |
报表设计方面 |
|
|
简单的数据列表 |
支持 |
支持 |
分组报表 |
支持 |
支持 |
交叉表 |
支持 |
支持 |
图表 |
支持 |
支持 |
动态生成列 |
实际不支持,但是可以利用多数据源产生一个动态生成的假象。 |
支持,但是很困难,需要通过编写源代码来实现。 |
子报表 |
支持多层 |
支持,一般两层,横向表不可自动摆位 |
格线制作 |
制作方便 |
制作方便 |
套打 |
支持 |
支持 |
是否能放底纹(背景图)? |
支持 |
支持 |
是否能放置图片? |
支持 |
支持 |
是否能生成图表报表? |
支持 |
支持 |
打印是否方便? |
方便,RS 2000中在连续打印时有问题,RS 2005未测试。 |
方便,连续打印无误 |
|
|
|
|
|
|
报表展现方面 |
|
|
HTML方式展现 |
支持 |
支持 |
精确打印 |
支持 |
支持 |
导出至PDF |
支持 |
支持 |
导出到Excel |
支持 |
支持 |
|
|
|
集成、性能、部署与价格方面 |
|
|
访问速度? |
采用单独得Web 服务来管理报表。因为目前公司一直使用这种工具,所以速度未测试。 |
开发版的报表显示无须专门的IIS和web服务,所以速度只跟机器配置、网速、数据库有关。 服务器版本使用的是Web服务,速度未测试。 |
用于给用于修改和创建报表的API |
支持 |
支持 |
是否能把开发工具嵌入web程序? |
不支持,但是在RS 2005的报表管理器里面本身自带了一个简单的报表制作、维护工具。 |
仅支持VB 6.0进行嵌入开发。 |
部署 |
需要上传报表,建立数据源连接,当报表文件更改后,必须重新上传文件才能够显示修改后的效果。 |
开发版无须部署,只需要在发布程序的时候把水晶报表相关的几个动态链接库添加进去即可。当报表文件修改后,随之会反映到显示中。 |
权限 |
支持权限管理 |
开发版没有权限管理 |
价格 |
随MS Sql Server附带,无须另外购买 |
开发版近万,服务器版七万以上 |
|
|
|
水晶报表服务器版由于价格过于昂贵,成本上不太划算,所以就算要也只可能使用开发版。那么水晶报表的优势主要是在部署方面,部署起来比较简单,修改也比较方便,但是还是需要另外购买,增加了成本。
Reporting Service 2000显然是在部署方面比较繁琐,导致后期维护不方便,还存在如连续打印错误,异机数据库配置麻烦,无法改变端口等毛病,但是在2005版中异机数据库配置麻烦,无法改变端口这些问题已经解决,而且Reporting Service管理器所提供的API可以让用户重新建立一个自己风格的报表管理机制。这样部署和维护起来就会方便很多。而且他是附带在Sql Server程序集中,无须另外购买,可以降低软件开发成本。