随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一份全方位的参考。
数据报表,作为商业系统中必不可少的功能(或者成为模块),随着这些年大数据、BI、数据决策的流行,数据报表也逐渐成为商业系统中的核心功能(模块)。
于是,报表控件的出现就是为了极大地简化开发人员完成复杂数据报表的设计、调试、预览、打印、导出等功能代码开发,让开发人员能够将精力和时间投入到数据整理、准备以及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 语法的开发人员提供了方便。
与VS的集成度
基于 .NET 平台开发,Visual Studio IDE 是开发人员最熟悉的工具,如果能够与 Visual Studio IDE 紧密集成,将极大的减少开发时的窗口切换损耗,同时在 IDE 中以熟悉的操作方式能够极大的提高效率。
报表设计过程(设计器)
中文支持程度
报表控件发布后,最终用户会看到多个和报表控件相关的多个UI组件,参数面板、打印预览、工具条等,除了中文和英文,对其他语种的支持也是考量报表控件适用程度的一个点。
同时,对于报表控件这样入门比较困难的控件,是否能够轻松的获得中文资源、帮助、文档、技术支持,也会决定此控件在项目究竟能否发挥其该有功能的重要前提。
中文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 报表控件的选型有所帮助。
作者:发现数据价值
出处:https://www.cnblogs.com/reporting/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。