概述

本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft,给所有报表开发人员在做产品选型时一份全方位的参考。

前言

随着 .NET 平台的出现,报表相关的开发控件随着而来,已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一份全方位的参考。

为什么需要报表控件

因为微软在中国几十年的推广,.NET作为很多开发团队开发商业项目时首选的开发平台。随着对 Visual Studio IDE的使用,很多开发人员已经习惯了在 VS中完成大量代码的可视化设计、测试以及调试。

而数据报表,作为商业系统中必不可少的功能(或者成为模块),随着这些年大数据、BI、数据决策的流行,数据报表也逐渐成为商业系统中的核心功能(模块)。

于是,报表控件的出现就是为了极大地简化开发人员完成复杂数据报表的设计、调试、预览、打印、导出等功能代码开发,让开发人员能够将精力和时间投入到数据整理、准备以及UI方面。

从最早的微软报表SSRS(SQL Server Reporting Services),水晶报表,到如今市场各式各样的报表工具,如今各有千秋的报表控件,如何为自己的项目选择最适合的控件成为每个开发人员必须考虑的问题。

常见.NET报表控件介绍

  • SQL Server Reporting Services(SSRS):它是来自微软的产品。作为SQL Server上的加载项创建。此报表生成器在T-SQL开发人员中非常流行,主要是因为它包含在MS SQL Server数据库中。

  • RDLC: 微软自带的 RDLC 报表,集成到 Visual Studio 当中,是 Visual Studio 自带的报表工具,简单易用,也在很多系统开发中得到了广泛的应用。

  • FastReport.NET:具有悠久历史的俄罗斯开发商的产品。FR.NET生成器与Microsoft Visual Studio一起工作,并基于.NET框架。当您安装该程序时,其组件将被添加到VS调色板中。我们在应用程序中使用FR,方法是将组件放置在表单上或通过在代码中连接库。就像SSRS一样,它有一个单独启动的报表设计器,但您可以使用 ReportDesigner 组件将设计器嵌入到应用程序中。

  • ActiveReports: 已经有20余年历史的老牌报表控件,是 .NET 平台的全方位的报表解决方案,其特点是无须编码实现各类报表设计。特有的矩表控件,旨在解决中国式复杂报表,另在报表打印,呈现等方面行业领先。

  • Stimulsoft Report:Stimulsoft 拥有大量的报表相关工具,比如报表生成器,报表设计器,Reports for.NET 、Web、MVC、WPF、Silverlight、Flex、PHP、Java、Mobile、WinRT 等。

  • 水晶报表:是由 Crystal Services 公司开发的,主要用于设计及产生报表。经过多次收购,已经被 SAP 公司收购,从12版本发布到16版本,现在因为水晶报表为SAP 服务,所以更加注重数据分析,而不注重报表易于设计。

全面对比

本文将从以下几个维度对比每款 .NET 报表控件

  • 数据源连接(是否支持跨数据源)
  • 与 Visual Studio 的集成度
  • 报表设计过程(设计器)
  • 中文支持程度
  • 表格类报表开发能力
  • 图表类报表开发能力
  • 浏览器的兼容性
  • 授权及部署

数据源支持以及能否跨数据源链接

在实际的项目中,往往数据会存在各种不同的数据库或文件系统,甚至是在线的动态数据,是否能够支持更多的数据源以及能否同时在一张报表中支持多数据源得数据同时显示并关联,这将极大的简化开发人员的工作。

  • 水晶报表支持常用的数据库 Access, Excel,XML 文件,OLE DB驱动,ODBC 驱动,JDBC 驱动的任意数据库,SalesForce数据等

水晶报表支持常用的数据库

水晶报表支持常用的数据库

  • FastReport支持常用的数据库:FastReport使用ADO.NET数据源,号称支持连接到任何数据库,如Access、OLE DB驱动、ODBC驱动、SQL、和XML、CSV数据,并可以对数据进行分类排序、数据过滤。只支持数据库单连,不支持同一张报表中跨多个数据源。

FastReport支持常用的数据库

  • StimulSoft Report 支持常用的数据库,Access、Oracle、MySQL、PostgreSQL、SQLite、XML 等,除此之外还支持如Firebird、IBM Db2、Sybase Adaptive Server Enterprise 等。不支持同一张报表中跨多个数据源。

StimulSoft Report 支持常用的数据库

  • ActiveReports 支持常用的数据库:Oracle、SQLServer、Access、XML、CSV、JSON、ODBC驱动、即OLE DB 驱动所支持的数据库 .除了常用的关系型数据库外, ActiveReports 支持运行时绑定数据源,如DataTable 数据源,Object 数据源,Json 数据源等。

ActiveReports 在连接常用数据库SQL Server,Access,Oracle,Json 等提供的可视的链接窗口,用户不需要记住每一种数据库的连接字符串,的写法,只需要输入对应的用户名和密码,ActiveReports 会自动生成连接字符串,所以对于用户来说如此可以节省很多时间,这点是所有.NET 报表控件中最易用的。并且,ActiveReports是唯一一个自同一张报表支持跨数据源的报表控件

ActiveReports 支持常用的数据库

ActiveReports 支持常用的数据库

ActiveReports还有一个亮眼的地方就是【可视化数据查询设计器】,对比了这几个产品的类似设计器后,其他产品最多只能提供两个表的关联,而 ActiveReports 对于表的数量没有限制,而且只需要拖拽数据表到 UI 界面,做相关键的关联就可自动生成 SQL 语句。这也为不熟悉SQL 语法的开发人员提供了方便。

ActiveReports 支持常用的数据库

与VS的集成度

基于 .NET 平台开发,Visual Studio IDE 是开发人员最熟悉的工具,如果能够与 Visual Studio IDE 紧密集成,将极大的减少开发时的窗口切换损耗,同时在 IDE 中以熟悉的操作方式能够极大的提高效率。

  • 水晶报表:支持 Visual Studio 2010及以上版本,支持开发WPF、WinForms、ASP.NET 项目模板。

水晶报表

  • FastReport:支持Visual Studio 最新版,支持Visual Studio 2005及以上版本,支持开发WPF、WinForms、ASP.NET、MVC 项目。

FastReport

FastReport

  • Stimulsoft Report:支持 Visual Studio 全平台,但是在安装集成后,需要用户手动添加到工具箱。对于在MVC 中和 ASP.NET 中使用HTML5 很多功能不支持,如创建动态报表,钻取功能。所以如果考虑使用HTML5作为输出的话,可能就需要考虑其他产品。

对于所有内部的报表格式,并不是在各个平台通用的,如内部的MDZ、MDX、MRX 格式,只能在 WinForms、WPF、ASP.NET、MVC 使用。所以要想从一个平台迁移到另一个平台,需要考虑创建通用的报表文件格式。

Stimulsoft Report

  • ActiveReports 支持 Visual Studio 2010 及以上版本,支持 Visual Studio 全平台开发,HTML5、 WinForms、ASP.NET、ASP.NET MVC、WPF。

ActiveReports

报表设计过程(设计器)

  • 水晶报表:设计器风格同 Word 编辑器的风格,多了数据源管理等窗口。习惯使用Word编辑器的用户,可以快速上手。水晶报表设计器只支持一种报表类型,按照区域划分的报表类型,将报表分为不同的保镖头,页眉详细数据区域,报表尾,页脚。

水晶报表

  • FastReport:报表设计器顶部有五个选项可以进行切换的选择需要的设置左边是工具栏的选择,通过双击进行控件的选择,FastReport只支持一种报表类型,按照区域划分的报表类型简称区域报表,将报表分为报表头、页眉、明细、页脚。

FastReport

  • StimulSoft Report:设计器风格和体验也是与Office 保持一致,所以初次接触 StimulSoft Report不会感觉很陌生。 但要是要开始创建报表,可能得需要跟着文档一步一步做。

StimulSoft Report不提供与Visual Studio的集成报表设计器,所以导致用户无法在Visual Studio中进行报表设计。

StimulSoft Report

  • ActiveReports:报表设计器整体风格与 Visual Studio 一致,显得比较专业,使用上会稍微有点难度,但还好ActiveReports 提供设计器源码,开发人员可根据需求去自定制整个设计器。包含了报表设计,报表预览,报表导出功能。设计器面向用户群为非技术人员,采用拖拽编辑即可实现全类型的报表设计。

ActiveReports支持四种报表类型,基于代码的区域报表,基于模板的区域报表,页面报表,RDL报表,用于满足不同的报表设计需求。

ActiveReports提供集成VS的报表设计器和独立的报表设计器,这样用户在打开 Visual Studio 中就不需要离开Visual Studio 去设计报表。大大提升了开发便利。

ActiveReports

中文支持程度

报表控件发布后,最终用户会看到多个和报表控件相关的多个UI组件,参数面板、打印预览、工具条等,除了中文和英文,对其他语种的支持也是考量报表控件适用程度的一个点。

同时,对于报表控件这样入门比较困难的控件,是否能够轻松的获得中文资源、帮助、文档、技术支持,也会决定此控件在项目究竟能否发挥其该有功能的重要前提。

中文UI 支持

  • 水晶报表:支持简体中文,除中文之外还支持其他27种常用语言,这些语言资源文件已经内嵌在产品中;可直接使用。

水晶报表

  • FastReports:支持简体中文,除中文之外还支持其他27种常用语言,这些语言资源文件已经内嵌在产品中;可直接使用。

  • Stimulsoft:内嵌了28种语言支持,设置本地化语言,非常简单,只需要通过切换语言,整个界面会立即切换成当前语言版本,这个使用起来会特别方便,也不需要开发人员去做特殊的本地化设置,再根据操作系统自动切换。

Stimulsoft

  • ActiveReports 对于语言支持没有限制,已内置好的资源包包含英文,日文,简体中文,如果需要支持其他语言,ActiveReports提供了本地化资源包的要求,这样不管最终用户是什么语言,都可以定制出不同的 UI界面。

中文技术支持

  • 水晶报表:现在属于SAP 公司下的报表工具,在国内没有专门的技术服务团队,相关资料以及服务支持是英文的。因此可能在寻找技术支持过程中会比较耗费时间。而且无法通过直接的沟通来解决,如电话,会议,现场培训等。另外官方网站也是在国外,因为网络问题,可能会导致下载试用过程不顺畅。水晶报表常见问题手册(英文)

  • FastReport:在中国没有专门的技术团队负责产品的售前、售后支持,没有对应丰富的中文资料例如:视频、中文文档,实例demo、论坛。产品提供商也不提供售后技术支持,在购买前需要自己先完全评估好产品,开发中遇到任何技术上的问题都只能自己解决。

  • Stimulsoft:是俄罗斯报表控件厂商,暂时还没有专门的国内支持团队,所有的网站资源均为英文,资源比较全面,如果语言没有障碍的话,资料使用起来也是没有任何问题。与水晶报表存在一个同样令人头疼的问题就是没有国内的支持团队,有任何技术问题要么自己查资料解决,要么得用英文去邮件或线上沟通。

Stimulsoft report在线帮助文档   常见问题手册

  • ActiveReports:在中国有专业的业务团队,中文资料全面,如中文帮助手册,中文入门视频,中文博客,中文社区支持,金牌服务电话,中文培训等。因此在帮助国内的企业快速上手,快速解决使用上的困难,占有极大的优势。

中文技术支持论坛   常见问题手册(中文)   学习视频   Demo代码

继续查看下半部分