只用最适合的!全面对比主流 .NET 报表控件

图片描述

前言

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

为何须要报表控件

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

而数据报表,做为商业系统中必不可少的功能(或者成为模块),随着这些年大数据、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数据,并能够对数据进行分类排序、数据过滤。只支持数据库单连,不支持同一张报表中跨多个数据源。

图片描述

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

图片描述

  • 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 对于表的数量没有限制,并且只须要拖拽数据表到 UI 界面,作相关键的关联就可自动生成 SQL 语句。这也为不熟悉SQL 语法的开发人员提供了方便。
图片描述工具

与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 项目。

图片描述
图片描述

  • Stimulsoft Report:支持 Visual Studio 全平台,可是在安装集成后,须要用户手动添加到工具箱。对于在MVC 中和 ASP.NET 中使用HTML5 不少功能不支持,如建立动态报表,钻取功能。因此若是考虑使用HTML5做为输出的话,可能就须要考虑其余产品。
    对于全部内部的报表格式,并非在各个平台通用的,如内部的MDZ、MDX、MRX 格式,只能在 WinForms、WPF、ASP.NET、MVC 使用。因此要想从一个平台迁移到另外一个平台,须要考虑建立通用的报表文件格式。

图片描述

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

图片描述

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

报表设计过程(设计器)

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

图片描述

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

图片描述

  • StimulSoft Report:设计器风格和体验也是与Office 保持一致,因此初次接触 StimulSoft Report不会感受很陌生。 但要是要开始建立报表,可能得须要跟着文档一步一步作。
    StimulSoft Report不提供与Visual Studio的集成报表设计器,因此致使用户没法在Visual Studio中进行报表设计。

图片描述

  • ActiveReports:报表设计器总体风格与 Visual Studio 一致,显得比较专业,使用上会稍微有点难度,但还好 ActiveReports 提供设计器源码,开发人员可根据需求去自定制整个设计器。包含了报表设计,报表预览,报表导出功能。设计器面向用户群为非技术人员,采用拖拽编辑便可实现全类型的报表设计。
    ActiveReports支持四种报表类型,基于代码的区域报表,基于模板的区域报表,页面报表,RDL报表,用于知足不一样的报表设计需求。
    ActiveReports提供集成VS的报表设计器和独立的报表设计器,这样用户在打开 Visual Studio 中就不须要离开Visual Studio 去设计报表。大大提高了开发便利。

图片描述

中文支持程度

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

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

中文UI 支持

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

图片描述

  • FastReports:支持简体中文,除中文以外还支持其余27种经常使用语言,这些语言资源文件已经内嵌在产品中;可直接使用。
  • Stimulsoft:内嵌了28种语言支持,设置本地化语言,很是简单,只须要经过切换语言,整个界面会当即切换成当前语言版本,这个使用起来会特别方便,也不须要开发人员去作特殊的本地化设置,再根据操做系统自动切换。

图片描述

  • ActiveReports 对于语言支持没有限制,已内置好的资源包包含英文,日文,简体中文,若是须要支持其余语言,ActiveReports提供了本地化资源包的要求,这样无论最终用户是什么语言,均可以定制出不一样的 UI界面。

中文技术支持

  • 水晶报表:如今属于SAP 公司下的报表工具,在国内没有专门的技术服务团队,相关资料以及服务支持是英文的。所以可能在寻找技术支持过程当中会比较耗费时间。并且没法经过直接的沟通来解决,如电话,会议,现场培训等。另外官方网站也是在国外,由于网络问题,可能会致使下载试用过程不畅。水晶报表常见问题手册(英文)
  • FastReport:在中国没有专门的技术团队负责产品的售前、售后支持,没有对应丰富的中文资料例如:视频、中文文档,实例demo、论坛。产品提供商也不提供售后技术支持,在购买前须要本身先彻底评估好产品,开发中遇到任何技术上的问题都只能本身解决。
  • Stimulsoft:是俄罗斯报表控件厂商,暂时尚未专门的国内支持团队,全部的网站资源均为英文,资源比较全面,若是语言没有障碍的话,资料使用起来也是没有任何问题。与水晶报表存在一个一样使人头疼的问题就是没有国内的支持团队,有任何技术问题要么本身查资料解决,要么得用英文去邮件或线上沟通。

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

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

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

表格类报表的支持程度

国内的系统中,大量存在表格类(Excel类、文档类)的数据报表开发,如统计汇总、检测报告、表单等。
可否很好的支持此类报表的设计和开发,每每是可否采用此控件的决定性因素

  • 水晶报表:提供交叉表控件,OLAP报表控件,能够建立于Excel 中相似的单维度和多维度数据透视表。但灵活性不强,只能建立单表头的数据透视表。没法修改或添加总计,汇总公式,或是自定义单元格合并。更没法支持中国复杂报表的表角斜线及无规则的单元格合并。

图片描述

  • FastReports:提供矩阵(Matrix)控件,用来进行复杂报表的设计,能够实现单维度和多维度的数据透视表,能够进行自动合计和警示功能,可是它设计起来比较复杂,灵活性差。而且不支持单元格的自动合并,不能进行复杂表头的设计。

图片描述

  • Stimulsoft:提供了表格控件和交叉表(Cross Tab)分别解决列表泪报表和数据透视表的需求。可是表格控件并非严格意义的表格,没有表头表尾详细数据的概念,是用单元格拼起来的,因此没法控制每一行的显示。交叉表能够建立多维合计透视表,可是在合计表达式只能选择默认的Sum,并且没法建立复杂的表头。

图片描述
图片描述

  • ActiveReports:提供表格控件、矩表控件专为建立Word 类报表及Excel类表格报表以及各式复杂中国式报表。
    建立复杂报是ActiveReports 特长,使用已提供的表格和矩表,便可灵活的实现单元格合并,多为复杂表头报表。

图片描述
图片描述
图片描述

图表类报表的支持程度

随着业务系统中对图表、Dashboard、大屏类应用需求的不断加强,图表的支持类型和外观也是考量报表控件的重要方面
图表类型(注: 红色标注是各品牌特有的)

  • 水晶报表支持图表类型包括:条形图、柱形图、折线图、面积图、饼图、散点图、气泡图、甘特图、量表图、漏斗图、三维图表、雷达图

图片描述

  • FastReport支持图表类型包括:条形图、柱形图、折线图、面积图、饼图、散点图、气泡图、甘特图、量表图、漏斗图、三维图表、雷达图

图片描述

  • Stimulsoft 报表支持图表类型:支持38 种类型,图表UI 采用扁平化设置,并且也为设计人员提供了多套的UI 主题选择,因此在美观程度上作的是最好的。

图片描述

  • ActiveReports 报表支持图表类型:条形图,柱形图,折线图,面积图,饼图,散点图,气泡图,甘特图,漏斗图,三维图表,金融图,三维图表,多Y轴图表复合图表四象限图

图片描述

图表设计步骤

  • 水晶报表
    水晶报表必须为图表准备数据,数据准备完成后,才可使用图表控件,对于运行时报表数据源的报表,建立图表就不会很方便。

图片描述
图片描述

  • FastReports

FastReports 在建立图表时,首先插入图表,而后绑定对应的数据源。
图片描述

  • Stimulsoft Report

图片描述
图片描述

  • ActiveReports

ActiveReports 在建立图表时,只须要为报表提供可用的数据字段便可,所以在数据绑定中相对方便。
图片描述
图片描述

浏览器的兼容性

  • 水晶报表:支持 IE 10 及以上,Firefox ESR 52.0 及以上,Edge14.14及以上,Chrome 浏览器,不支持IE 10如下的浏览器。
  • FastReport:报表支持当前全部的浏览器 IE、谷歌、火狐、Safari 等
  • Stimulsoft:支持IE 、Firefox 、Chrome、Safari ,但要求在网页端浏览报表须要安装不一样的插件,如Flash,ActiveX等。
  • ActiveReports: IE 9+、Firefox 20 +、Chrome 30 +、Safari 6.0+

部署后的修改

从事项目开发的同窗,确定对发布后的修改深恶痛绝,每每发布后的频繁修改会形成项目迟迟没法交付、改的越多Bug越多的状况,对于报表模块,相似发布后的修改更是屡见不鲜,如何在项目发布后快速的对应需求变动并保证质量,这是每一个项目负责人必需要考虑的问题

  • 水晶报表:报表需求不管变化多么微小,都须要在修改后从新编译部署整个项目,因此在后期维护成本是很是大的,而且没有单独的设计器提供给最终用户新增报表。
  • FastReport:非开发客户没法自主进行报表的设计,当报表程序发布后客户若是想要进行简单的修改都是须要返回从新设计及编译。
  • Stimulsoft:是针对不一样的平台,须要将设计好的报表文件根据要发布的平台去编译成对应的文件,因此发布后,若是有须要更改报表的需求,整个项目也须要从新发布维护,另外同一张报表文件,没法在不一样平台无障碍使用。
  • ActiveReports:报表设计文件做为独立的XML格式的文件,同时也为开发人员提供最终用户设计器,可修改报表,修改完成后只须要替换旧文件,就可正常使用,不须要从新编译发布

所有打分

图片描述

如何选型

不管是哪个报表控件,都有其最适合的场景,只有明确了项目中的明确需求,才能使控件真正节约开发成本,提升产品质量。如下是在选型时,须要考虑的几个方面:

浏览器兼容性

浏览器的兼容性,水晶报表是基于IE浏览器内核开发的,因此对IE浏览器有很好的兼容性,可是对于其余的主流报表如:谷歌、火狐、游猎等浏览器的兼容性就不是很好,在网页端展现的时候亲和度比较低,可是ActiveReports,FastReport,Stimulsoft在浏览器支持方面特别是IE、谷歌、火狐、游猎浏览器具备很好的兼容性,在网页端展现的有很好的亲和度不会出现偏差。
浏览器兼容性
在网页端的展现,水晶报表须要安装一个ActiveX的插件,而且交互性差。Stimulsoft Reports须要在客户端安装Flash,ActiveX等插件才能够预览。ActiveReports和FastReport 在网页端不用安装任何插件,支持 HTML5,HTML Viewer,Flash Viewer,Raw HTML,Acrobat Reade等
支持移动端
现在愈来愈多的用户倾向移动办公,所以对移动端的需求也是大幅度增加,而水晶报表由于如今主要为SAP 辅助数据分析,因此对移动端报表支持几乎没有,FastReport 支持移动端报表展现。Stimulsoft基于HTML5技术实现移动端,但HTML5Viewer 功能会有所限制,比原生的 .NET 功能少了不少。ActiveReports 提供了基于HTML5技术HTML5Viewer 实现响应式报表功能,具备很好的交互性。
快速建立复杂报表
应用于中国市场中,须要根据国内的特征确适应市场需求,而中国式的复杂报表就是考验报表工具,是否知足市场的一大标准,不管是复杂运算的会计报表,仍是复杂表头的汇总统计报表,仍是自由度极高的单元格合并报表,每一种典型的报表都是中国报表设计人员的痛点,也是考验报表工具可否知足需求的重要标准。Stimulsoft, FastReport,均提供了 交叉表控件,但这种控件只能支持建立多维透视表,没法去灵活的去自定义或修改。若是要实现复杂的报表展现,必须依赖 TextBox 去拼凑实现。ActiveReports提供了一种独特的控件“矩表,只须要拖拽设计以及自动合并,便可实现中国复杂报表。
多数据源支持
信息系统通过多年积累或新系统的业务数据都是愈来愈庞杂的,为了安全可能同时存在于不一样的数据库中,所以报表工具必定要同时支持多种主流数据库,要兼容新型的数据库源,并且要处理同时支持多数据源的应用场景,而水晶报表目前没法作到多数据源支持,Stimulsoft, FastReport,均不支持同一报表中绑定多个数据源并展现。ActiveReports 支持在同一张报表中绑定多个数据源,并在同一数据控件中展现。
技术服务与支持
不管选择哪一种报表工具,开发人员都须要快速上手和使用,并且会随着系统的深刻开发会有新的需求产生,因此可以随时快速获取技术支持,也是企业选择的一大重要因素,不然在遇到问题时,开发人员只能本身花费大量的时间和精力去寻找解决方案。相反,若是有专业的技术团队,可轻松有效的解决产品问题。4个产品中,只有ActiveReports 在国内有厂商级别的支持,FastReport和Stimulsoft在国内有代理商,但没法提供技术支持。
维护升级成本低
选择报表工具就是为了有效的减小开发成本,因此须要选择最合适的报表工具,而若是后期系统升级或迁移会带来大量的工做量时,则会带来重构的危险,若是报表工具可以有很好的向上及向下的兼容性,则大大减小了系统升级和迁移的成本。ActiveReports和水晶报表的报表文件是一种文件格式,方便服用及升级。

总结

如题目所讲,没有最好的,只有最适合的,但愿报表开发人员可以经过此篇文章对 .NET 报表控件的选型有所帮助。
本文做者:葡萄城《转载请申明》

相关文章
相关标签/搜索