随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在经过从不一样维度对比目前最流行的4款 .NET报表控件,给全部报表开发人员在作产品选型时一份全方位的参考。php
数据报表,做为商业系统中必不可少的功能(或者成为模块),随着这些年大数据、BI、数据决策的流行,数据报表也逐渐成为商业系统中的核心功能(模块)。sql
因而,报表控件的出现就是为了极大地简化开发人员完成复杂数据报表的设计、调试、预览、打印、导出等功能代码开发,让开发人员可以将精力和时间投入到数据整理、准备以及UI方面。数据库
从最先的微软报表SSRS(SQL Server Reporting Services),水晶报表,到现在市场各式各样的报表工具,现在各有千秋的报表控件,如何为本身的项目选择最适合的控件成为每一个开发人员必须考虑的问题。浏览器
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 的集成度
· 报表设计过程(设计器)
· 中文支持程度
· 表格类报表开发能力
· 图表类报表开发能力
· 浏览器的兼容性
· 受权及部署
在实际的项目中,每每数据会存在各类不一样的数据库或文件系统,甚至是在线的动态数据,是否可以支持更多的数据源以及可否同时在一张报表中支持多数据源得数据同时显示并关联,这将极大的简化开发人员的工做。
ActiveReports还有一个亮眼的地方就是【可视化数据查询设计器】,对比了这几个产品的相似设计器后,其余产品最多只能提供两个表的关联,而 ActiveReports 对于表的数量没有限制,并且只须要拖拽数据表到 UI 界面,作相关键的关联就可自动生成 SQL 语句。这也为不熟悉SQL 语法的开发人员提供了方便。
基于 .NET 平台开发,Visual Studio IDE 是开发人员最熟悉的工具,若是可以与 Visual Studio IDE 紧密集成,将极大的减小开发时的窗口切换损耗,同时在 IDE 中以熟悉的操做方式可以极大的提升效率。
报表控件发布后,最终用户会看到多个和报表控件相关的多个UI组件,参数面板、打印预览、工具条等,除了中文和英文,对其余语种的支持也是考量报表控件适用程度的一个点。
同时,对于报表控件这样入门比较困难的控件,是否可以轻松的得到中文资源、帮助、文档、技术支持,也会决定此控件在项目究竟可否发挥其该有功能的重要前提。
国内的系统中,大量存在表格类(Excel类、文档类)的数据报表开发,如统计汇总、检测报告、表单等。
可否很好的支持此类报表的设计和开发,每每是可否采用此控件的决定性因素
随着业务系统中对图表、Dashboard、大屏类应用需求的不断加强,图表的支持类型和外观也是考量报表控件的重要方面
从事项目开发的同窗,确定对发布后的修改深恶痛绝,每每发布后的频繁修改会形成项目迟迟没法交付、改的越多Bug越多的状况,对于报表模块,相似发布后的修改更是屡见不鲜,如何在项目发布后快速的对应需求变动并保证质量,这是每一个项目负责人必需要考虑的问题
评分项目(5分为最佳) |
水晶报表 |
FastReport |
Stimulsoft |
ActiveReports |
数据源支持以及可否跨数据源连接 |
4 |
4 |
5 |
4 |
与VS的集成度 |
3 |
3 |
3 |
5 |
报表设计过程(设计器) |
3 |
4 |
5 |
5 |
中文支持 |
2 |
3 |
4 |
5 |
表格类报表的支持程度 |
3 |
3 |
3 |
5 |
图表类报表的支持程度 |
5 |
4 |
5 |
4 |
浏览器的兼容性 |
3 |
5 |
5 |
5 |
受权和部署 |
3 |
4 |
4 |
5 |
下载附件查看“四种.net 报表控件分析.xlsx”
不管是哪个报表控件,都有其最适合的场景,只有明确了项目中的明确需求,才能使控件真正节约开发成本,提升产品质量。如下是在选型时,须要考虑的几个方面:
浏览器兼容性
浏览器的兼容性,水晶报表是基于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和水晶报表的报表文件是一种文件格式,方便服用及升级。
如题目所讲,没有最好的,只有最适合的,每一个项目都具有不一样的特色,
· 财务系统中,对表格类的报表的要求很高,
· 管理决策系统,偏重于图表和大屏的展示
· 生产系统,偏重数据类型的支持
· 事业单位或政府们的内部系统,因存在低版本的IE浏览器,须要考虑浏览器支持的通用性
· 数据分析部门,要考虑报表在最终用户处的频繁修改和定制
· ……
最后,但愿报表开发人员可以经过此篇文章对 .NET 报表控件的选型有所帮助。