前言

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

为什么需要报表控件

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

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

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

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

常见 .net报表控件介绍

  • :它是来自微软的产品。作为sql server上的加载项创建。此报表生成器在t-sql开发人员中非常流行,主要是因为它包含在ms sql server数据库中。
  • : 微软自带的 rdlc 报表,集成到 visual studio 当中,是visual studio 自带的报表工具,简单易用,也在很多系统开发中得到了广泛的应用。
  • :具有悠久历史的俄罗斯开发商的产品。fr.net生成器与microsoft visual studio一起工作,并基于.net框架。当您安装该程序时,其组件将被添加到vs调色板中。我们在应用程序中使用fr,方法是将组件放置在表单上或通过在代码中连接库。就像ssrs一样,它有一个单独启动的报表设计器,但您可以使用reportdesigner组件将设计器嵌入到应用程序中。
  • : 已经有20余年历史的老牌报表控件,是 .net 平台的全方位的报表欧洲杯足彩官网的解决方案,其特点是无须编码实现各类报表设计。特有的矩表控件,旨在解决中国式复杂报表,另在报表打印,呈现等方面行业领先。
  • :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 db2、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 全平台开发,html5、 winforms、asp.net、asp.net mvc、wpf。

  • activereports 支持 visual studio 2010 及以上版本,支持 visual studio 全平台开发,html5、 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界面。

只用最适合的!全面对比主流 .net 报表控件 -欧洲杯足彩官网

  • 水晶报表:现在属于sap 公司下的报表工具,在国内没有专门的技术服务团队,相关资料以及欧洲杯足彩官网的服务支持是英文的。因此可能在寻找凯发推荐的技术支持过程中会比较耗费时间。而且无法通过直接的沟通来解决,如电话,会议,现场培训等。另外官方网站也是在国外,因为网络问题,可能会导致下载试用过程不顺畅。
  • fastreport:在中国没有专门的技术团队负责产品的售前、售后支持,没有对应丰富的中文资料例如:视频、中文文档,实例demo、论坛。产品提供商也不提供售后凯发推荐的技术支持,在购买前需要自己先完全评估好产品,开发中遇到任何技术上的问题都只能自己解决。
  • stimulsoft:是俄罗斯报表控件厂商,暂时还没有专门的国内支持团队,所有的网站资源均为英文,资源比较全面,如果语言没有障碍的话,资料使用起来也是没有任何问题。与水晶报表存在一个同样令人头疼的问题就是没有国内的支持团队,有任何技术问题要么自己查资料解决,要么得用英文去邮件或线上沟通。

 

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

   

表格类报表的支持程度

国内的系统中,大量存在表格类(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 支持在同一张报表中绑定多个数据源,并在同一数据控件中展示。
技术服务与支持
无论选择哪种报表工具,开发人员都需要快速上手和使用,而且会随着系统的深入开发会有新的需求产生,所以能够随时快速获取凯发推荐的技术支持,也是企业选择的一大重要因素,否则在遇到问题时,开发人员只能自己花费大量的时间和精力去寻找欧洲杯足彩官网的解决方案。相反,如果有专业的技术团队,可轻松有效的解

来自:
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 0540-1-14-hp減らない 0541-1-2f-使いのhp減らない 0074-1-99-rest99回 0075-2-9999-お金最大 007d-1-10-無敵(穴に落ちたりしたらoff) 009a-1-0-いぬぶえ所持 0099-1-0-てんけんじゅっぽう(ひのもと)所持 009b-1-0-鏡所持 0079-1-1-きそくほうじゅ(かっとびぐつ)所持 0762-1-14

  •  作者/安宁(《中国青年报》2005年12月18日) 弟弟第一次到北京读大学的时候,与我是同样的年龄。在父母的眼里,17岁,只不过是个孩子,而且,又是没出过县城连火车也没有见过的农村少年。母亲便打电话给我,说要不你回来接他吧,实在是不放心,那么大的北京,走丢了怎么办?我想起这么多年来,一个人走过的路,很坚决地便拒绝掉了。我说有什么不放心的,一个男孩子,连路都不会走,考上大学有什么用?! 

  • 一元运算符 自增和自减运算符 逻辑运算符 赋值运算符关系 相等运算符 条件运算符运算符的优先级运算符的优先级

  • 转载请注明。谢谢!        这篇文章的主要步骤是: > 进入livecd > 格式化分区(hda1, hda5, hda6), 最后系统装在hda1上 > 把livecd上的文件系统拷贝到分区 /dev/hda1上 > 安装grub 和 内核 > 重新启动 > 进入一些设置 > 添加2个快捷脚本 补充: 网上还有另外一篇文章,也是把livecd安装到虚拟机中。 不同的是,他是通过livecd

  • 作者:张华  发表于:2016-03-22欧洲杯足彩官网的版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本欧洲杯足彩官网的版权声明( http://blog.csdn.net/quqi99 )第一件和kernel相关的work, 在hp dl360p gen8服务器上运行openstack时发生crash。先排除apic问题apic(advanced programmable interrupt c

  • 用了我一下午的时间终于写完并整理好了利用.net来发送即时消息的材料(当然了,还有上午的数据库设计:)    数据库设计:info表:id fromstu_id tostu_id content term   其中id是主键,fromstu_id是发送信息的用户的学号(这是和我做的学友录连在一起的),tostu_id是接受信息的用户的学号,content是消息的内容,term是判断是否为新消息。

  • udev 是一个用户空间系统,它使操作系统管理员能够为事件注册用户空间处理程序。udev 守护程序接收的事件主要由 (linux) 内核生成,以响应与外围设备相关的物理事件。因此,udev的主要目的是对外设检测和热插拔采取行动,包括将控制权返回给内核的操作,udev 可提供所需的基础结构来动态维护 /dev 目录中的设备节点文件和符号链接。udev 规则提供了将外部工具插入内核设备事件处理的方式。

  • ipv6 ospf and ipv6 bgp -- ipv6 unicast-routing

  • usb转串口

  • 二个服务器,我这里用虚拟机.131为主数据库,135为从数据库 1.配置ip地址,关闭防火墙systemctl disable firewalld 2.进入主数据库的my.cnf文件(每个人安装的目录可能不同,一般在/etc目录下面,如果不知道可以find / -name my.cnf查找位置) 添加二个参数 log-bin=mysql-bin(主从复制依赖于二进制日志文件,简称为b...

  • 上次给大家分享了一个springboot vue的校园招聘系统,视频教程加项目源码,都是开源的,应该说很香了,今天再给大家分享一个不错的springboot的项目。 老规矩,开源,开源,开源!!! 金九银十来了,小伙伴们,冲啊!前面已经整理了很多的面试题,拿去学习吧! 1,❤️爆肝!整理了一周的spring面试大全【含答案】,吊打java面试官【建议收藏】!❤️ 2,❤️肝完了,一天掌握数据结构和算法面试题,吊打面试官,建议收藏❤️ 3,❤️集合很简单?开什么玩笑?肝了一周,全是精华,

  • 镜像资源 新建一个文件 ~/.cargo/config [source.crates-io] replace-with = 'tuna' [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" 构建帮助文档 cargo doc --open 语法 :: 语法 表示静态方法调用, 例如: string::new(), 这个静态方法是定义在 structure 中的一个 function

  • 我需要币

  • 如下介绍一个并发回射客户端/服务器的雏形,所谓回射:就是客户端输入一条数据,服务器端读取并显示,然后服务器端再把刚读取的信息发送回客户端进行显示。示意图如下: 所谓并发服务器:就是一个服务器可以同时为多个连入的客户端提供服务,示意图如下: 如下主要介绍两种实现并发回射服务器的方式,一种是通过子进程方式实现并发,一种是通过i/o多路转接实现并发。 并发服务器(1)[子进程方...

  • 例题:ch0103 最短hamilton路径 题意: 给定一张n(<20)个点的带权无向图,点从0~n-1编号,求起点0到终点n-1的最短hanmilton路径; h路径的定义为0~n-1不重不漏的经过每个点恰好一次 解法: 二进制状态压缩f(i,j)表示点被经过的状态对应的二进制数为i,且目前处于点j时的最短路径。 最终目标为f((1<<n)-1,n-1)...

  • mime-version: 1.0 content-type: multipart/related; boundary="----=_nextpart_01d6eb7a.25ccbb00" ????????????????????????????web ??????????????????????????????????????????????????????web ???????????????...

  • typescript 函数、数组、对象、接口等一些内容~

  • 本次的游戏代码是使用lua完成,所以接入第三方的sdk也和c 层的方法稍有区别,首先来说明整体的思路。我们是在android应用平台接入的微信分享,所以在这个平台下,也就是java层实现接入逻辑,留下给c 层调用的接口,c 层通过jni来调用java层实现业务逻辑的接口,而我们是在lua中完成的游戏逻辑,所以我们还需要做的一个步骤就是,将c 的接口导出给lua层来使用,这个过程需要使用lu

  • 问题 a: lyklyk?lyklyk! 时间限制:1 sec内存限制:256 mb 题目描述 lyk得到了一个1~n的全排列。txm每次会交换第i个数和第j个数,对于每次交换,lyk需要回答该全排列的逆序对数为多少。“1、2、3、4......248289469!”lyk如是回答道。“最后答案取模2......” 输入 第一行一个数,n第二行...

  •   /*字字珠玑*/ 墨西哥《成绩》周刊6月6日一期发表了比尔 ? 盖茨写给即将走出学校、踏入社会的青年一代的11点忠告:      1.生活是不公平的,你要去适应它。      2.这个世界并不会在意你的自尊,而是要求你在自我感觉良好之前先有所成就。      3.刚从学校走出来时你不可能一个月挣6万美元,更不会成为哪家公司的副总裁,还拥有一部汽车,直到你将这些都挣到手的那一天。    

global site tag (gtag.js) - google analytics
网站地图