行业软件开发商(以下简称开发商)是我国最常见的软件公司了,其本身具备较强的技术能力,而且每年都会承接很多项目,在选择报表工具时的关注点与技术能力不强(大部分)、且在较长时间内只选购一次产品的行业终端用户有很大不同。
开发商关心报表工具,以及一切工具性产品,主要都是两条:
1. 可用性。功能再多再强,如果在自己的体系下不可用,那没有意义。
2. 低成本。在可用的提前下,要选择成本尽量低的方案。这里的成本是指整体成本,不只是构成产品的成本,还包括要各种其它配套事务的成本,如需要自身投入的人员成本。
对于报表工具而言,可用性主要是指集成性。开发商向用户提交的是自己的解决方案,报表是其中一部分,甚至是某些页面的部分。集成性不仅包括集成报表工具,还包括报表工具提供的 API 甚至开源以供进一步开发。任何产品都不可以解决一切问题,某些情况还必须要自己开发特定功能以补充,如果缺乏 API 接口,即使功能很全的报表工具也可能被一件很小的事卡住而不能在某项目中使用。
低成本又有分为两个方面,功能全面和产品价格。功能不全面,就经常要动用人员再去补充功能,经常会造成更多的成本;产品价格当然很容易理解了,这是直接的成本。
目前市场主流报表工具可以分成这样几类:开源产品、国外商用产品、国内商用产品,其中国内商用产品又可以按照产品诞生时功能侧重点分为国内报表产品和国内 BI 产品。下面我们就从集成性和使用成本等方面来比较一下这几类报表产品有哪些适合开发商使用。
集成性
如前面提到的,集成性对开发商非常关键,报表需要集成嵌入到系统中作为系统的一部分使用。这要求报表工具提供非常强的嵌入的方式和丰富的 API。
在集成性方面,显然开源产品是最好的。因为提供源代码,报表可以根据需要任意修改使用。虽然有时修改源码并不是一件简单的事,但毕竟“源码在手,天下我有”。
对于国外商用产品,在集成性方面表现就很差了。国外产品通常只能以独立部署甚至 SaaS 方式使用,基本无法嵌入已有系统。这也正常,国外产品向来不以集成性见长,这是由其产品在世界范围内的使用习惯决定的。
国内 BI 产品的情况跟国外产品类似,因为通常都是以一个完整系统独立交付给用户使用,很难将产品中的某些功能嵌入系统,当然也无法将其他业务功能再加到 BI 系统中。这样做的好处是对支持端用户开箱即用,但对需要集成性的开发商来说就不是一个好消息了。
反观国内以报表为核心功能的商用产品在集成性方面就表现很好了。一般国内报表产品都会提供 taglib 的集成方式,使用者只需要在页面上引入标签库,再使用相应的 tag 就可以发布报表,这样就可以非常方便地在应用中引用报表,甚至将其作为页面的一部分使用。
在集成性方面,国内大多数报表产品表现都很不错,如果单从集成性来看,开发商的选择范围很广。而在众多国内报表产品中,润乾报表的集成性表现最佳。原因是由于润乾报表定位于纯粹的中间件工具(主要用来被集成)。所以我们看到在润乾报表中看到很多集成方式,多种 tag 以及丰富的 API,甚至其产品体系内提供的 BI 相关功能都能被集成到应用页面中。另外,润乾报表还提供了开源的 BI 分析前端以及开源的报表中心,这对开发商来说就非常便利了。
润乾报表的缺点是不合适开箱即用(这正是其他产品的优点),需要集成使用,对于没有技术能力的终端用户而言润乾报表并不是一个好选择,但对于开发商来说良好的集成性非常重要。润乾报表是商用产品中唯一主要面向开发商的产品。
产品功能
这点很好理解,功能越丰富使用越省劲,也不会带来额外的开发成本。那么哪些报表功能是开发商关注的?
中国复杂报表支持
复杂报表包括常规的斜线表头、动态拉伸、行列对称、不规则分组、多源分片等,还有动态列、折叠报表、动态合并格等(啥是复杂报表:传说中的中国复杂报表都长什么样?有什么特点?)。报表工具对复杂报表的支持程度恐怕是所有国内报表用户最关心的一点了,由于中国报表的特殊性,包括开源报表在内的国外产品都不支持,因此也做不出来这类报表。而国内报表产品大都支持这类报表,其中以润乾报表和帆软报表支持得最好。润乾是最早提出解决中国复杂报表方案的厂商,其提出的“非线性报表模型”至今仍然是解决中国复杂报表的利器,这个模型也成了国内报表行业的通用标准。
导出打印、图表呈现等通用功能
除了复杂报表,报表中常用的功能也同样重要。导出 PDF、WORD、EXCEL 等;可以根据报表、文字、图片等内容生成完整 WORD 报告;提供 Flash、PDF 等多种打印方式,支持套打、批量打印、不预览直接打印。支持图表混合呈现,能够对接第三方图形(如 ECharts,D3)以实现更酷炫的呈现效果;提供了 DashBoard 可用于 PC 或大屏端图表组合呈现;支持 H5 适配移动端……
这些通用功能仍然是国内报表工具支持的最好,不过国内各家产品的差异性并不大。
多样性数据源支持
报表作为常用的分析型应用形式,涉及的数据范围可以很大,需要对接的数据源种类也会很多。因此报表工具对各类数据源的支持尤其重要,否则开发商每遇到一种数据源就要开发接口成本会很高。目前除开源报表外,各家商用商品或多或少都提供了多样性数据源支持,这方面还是润乾报表支持的种类比较丰富,除常规的 RDBMS,NoSQL、Hadoop、本地文件等全部提供支持。
扩展阅读:什么是报表的多样性数据源问题?如何解决?
性能
性能包括两方面,一是报表引擎的性能,包括报表解析计算速度、HTML 渲染速度等;二是对大数据量的支持,是否支持基于海量数据的快速呈现。在引擎性能方面,润乾报表表现更优,这得益于其理论模型的先进性。
海量数据支持方面,各产品都提供了相应特性,但绝大部分都采用数据库分页机制来实现,这会导致翻页效率差(尤其是页码大的时候),还可能出现数据不一致(分页查询时伴随数据删除)。另外由于依赖数据库进行分页,如果数据源是文本或其他类型就不支持了。在这方面,润乾报表提供了一种大报表的支持,将取数和呈现线程分开,呈现线程在读取第一份缓存数据后就立刻呈现,这样前端就可以快速得到查询结果;取数线程则在后台慢慢缓存数据,这样就可以解决上面提到的问题。在其他国内外产品中尚未发现这类机制。
扩展阅读:什么是大报表?如何解决大报表的问题?
安全性
对于独立系统,如果要和现有系统进行交互,需要实现跨系统调用,这样会存在安全隐患,为了消除安全隐患就要投入很大的精力进行管控,对于开发商来说成本并不低。而集成嵌入就不存在这样的问题,报表作为嵌入整个应用的一部分可以遵循工程内安全保证机制,这样就不存在额外的管理成本,这是集成性在安全性方面提供的帮助。另外,报表工具本身是否提供诸如防 SQL 注入等安全机制也非常重要。
从功能的全面性来看,开源报表的功能最简单,因此在这方面表现最差;国外商用产品和国内 BI 产品对复杂报表支持和一些通用功能(如各种打印)上的欠缺对于开发商来说也不是好选择。最适合开发商使用的是国内报表产品,其中润乾报表又是最突出的一个。
易用性
报表工具良好的集成性和全面的功能对开发商固然重要,而开发工具易用性则会直接影响开发效率,进一步影响开发成本。
从报表开发方式来看,开源报表产品通常采用控件式开发方式,有时想要做一些对齐、布局等操作都比较困难,因而在开发使用上最难上手。有些开源产品汉化不完全,中文文档和中文社区缺失也是影响使用的一大障碍。
国外商用产品要好很多,虽然操作上仍然不太符合中国用户的使用习惯,但已经比开源产品好很多了。不过,在上手难易程度上仍然远逊色于国内产品。
国内 BI 产品充分考虑了本土用户的使用习惯,因此相较国外产品更近一步,只是在集成性和功能上有所缺失并不满足开发商的需要。
国内报表产品大多采用类 Excel 设计,提供独立的 IDE,无论在开发方式还是开发环境方面都比较迎合国内用户习惯。其中又以润乾和帆软两家报表产品最为易用。帆软报表的易用性较突出,其在设计阶段提供了很多比较精细的设计,这样可以让报表开发新手迅速上手。润乾报表在这方面较帆软要差一些,上手稍难,适合熟悉报表开发的老手来用。原因是润乾报表为了更好的集成性牺牲了一定的易用性,不过对于重复做项目的开发商来说二者并无太大差异,但对于时间比较紧又没有具备报表开发经验人员的项目,帆软更为适合。
计算层
在报表开发效率方面,除了报表呈现端的设计,报表数据准备的效率也不容忽视。
我们知道报表开发有两个阶段,首先是数据准备,就是为前端的报表呈现提供数据支持;然后才是使用准备好的数据进行图表呈现、导出打印等。报表呈现的数据从原始数据到报表可用还有很长的路要走,这个过程会涉及大量的硬编码(复杂 SQL/ 存储过程 /JAVA),带来的工作量有时远远大于报表呈现模板设计。因此提升报表数据准备阶段的效率对整体报表开发效率尤其重要。
主流产品仍然只在解决呈现环节的问题,而对报表数据准备无能为力。目前仅润乾报表提供了计算层脚本专门用于解决报表数据准备环节的效率问题。润乾报表提供的计算层可以用来替代原来数据准备工作中使用的复杂 SQL/ 存储过程 /JAVA 代码,简单理解就是一个就是内置在报表中具备强计算能力的计算引擎。画个简单的结构图大概是这样:
提升开发效率
计算层最大的作用是大幅提升报表的开发效率。其脚本中提供了丰富的结构化计算类库,可以简化数据准备算法实现,比 SQL 和 JAVA 更简单。不仅开发效率提高,对人员要求也进一步降低,报表开发工作就可以交给初级技术人员来做,从而有效降低成本(扩展阅读:用存储过程和 JAVA 写报表数据源有什么弊端?)
计算层的算法实现脚本是解释执行的,这样报表修改上传后就可以实时生效,做到热切换(原来用 JAVA 做数据准备的报表修改还要重启应用才行)。支持热切换后,在开发阶段就不用每次修改报表重启应用,大量节约开发时间,提升开发效率。(扩展阅读:报表热切换是什么意思?如何做到?)
从数据库方面来看,有了计算层以后,报表和数据库完全解耦,多复杂的数据准备代码不再依赖数据库。由于不同项目可能使用不同数据库(这经常由业主方说了算),报表不依赖数据库就可以做到在不同项目中复用报表代码,有效节约开发成本。(扩展阅读:中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?)
应对报表没完没了
报表没完没了在实际业务中很常见,在项目初期开发的报表会随着项目的进行不断新增和修改,即使在项目上线运行以后,报表需求仍然源源不断。报表没完没了是个常态,是客户业务不断变化使然,所以没办法消除只能适应。以往为了应对这样的问题,项目组往往会安排高级程序员来做,由于报表开发涉及 JAVA、存储过程这些复杂的技术手段,普通的技术人员往往无法胜任,报表和业务其他模块以及数据源紧耦合在一起也无法拆分独立维护。
通过润乾报表提供的报表计算层,加上原来已有的呈现能力,就可以把报表模块独立出来单独运维。理想一点的方式是组建专门的报表运维团队来应付没完没了的报表。运维人员不需要会写 JAVA/ 存储过程,具备一般技术能力即可,这样成本就可以得到进一步控制。(扩展阅读:报表为什么会没完没了?怎么解决这个问题?)
报表计算层是润乾报表独有的特性,其他报表工具没有这样功能,自然也无法解决数据准备环节带来的高人力成本问题了。从这一点上,可以说润乾报表带来的成本下降是完胜其它报表产品的。
价格体系
最后,对于商用产品来说,开发商还会非常关心产品价格。
国内商用产品大多按服务器计费,一次性购买永久授权。但由于价格不透明,最后成交价比较依赖“砍价”本领。不过竞争下来,各家产品的成交价格差异也不是很大,一般不会低于每服务器 10 万元。
这里重点说一下润乾报表的销售模式,因为绝对是个奇葩。
润乾报表没有采用传统不透明价格的销售 - 客户模式,而是执行了无销售人员的在线直销模式,产品价格透明,直接公布在官网上,用户可以从网上下单采购产品,没有现场售前交流,也没有销售人员跟单,全程标准化。
润乾报表的价位比同类产品低了一个数量级。最低版本售价是 1 万,功能已与其他国内商用产品售价 10 万以上的版本相当,而且已经包括相对完整的开源 BI 组件;前面说的有计算层的版本也才只 2 万;而拥有众多独创特色的最高版本售价也只 6 万,各版本功能特点可以参考润乾报表版本解析 —- 朴实无华的功能列表背后藏了哪些不为人知的东西
针对开发商,润乾报表还提供了年买断方式。用户在购买后一年内可以不限量使用产品,俗称随便用。这一年内取用的授权都是永久使用的,年买断里的“年”是指取用授权这个动作的期限。
年买断价格从 8 万起, 如果一年做 20 个项目,每个项目平均成本不到 5000 元,这是其它商用产品无论怎么谈判也不可能降到的价位了。
事实上,价格还可以更低。润乾还附带互联网营销推出了一系列打折的方法。官方宣传中包括致电客服就能获取 9 折优惠券、通过积分兑换可以获得最低 5 折优惠券。这样可以获得更低的使用成本。
润乾报表这个价格意味着什么?
按照专业程序员月薪 2 万,年薪 24 万(不考虑社保公积金)来算,而润乾报表的买断价格只有 8 万,这意味着用不到半个员工的成本就可以拥有不限量使用的报表工具,这已经低于使用开源产品的成本了,相当于拥有了一个自己的报表研发部。这样无论什么样的项目都可以采用同一工具,竞争激烈时报表工具可以低价甚至免费,反正成本固定,怎么卖都很灵活。
同时,对于开发商来说,全公司可以使用同一款报表工具,技术统一意味着更低的学习成本。这样就可以避免因为项目大小不同需要使用不同报表工具带来的额外学习成本。
这种价位和模式,其实其它报表工具是没法竞争的,至少对于开发商来讲是这样。不过,其它报表工具的价格大都不透明,说不准有时也能砍出极低的价格来,那可能也合适。
润乾这种模式也有个缺点,由于价格透明中间商很难通过转卖赚取差价,而不透明的价格体系可以支持这种“玩法”,具体是要低成本,还是转卖获利,就要看开发商如何权衡了。
不过,大多数情况下使用纯粹面向自己、高性价比的报表工具应该是最优选择!
延伸阅读:行业软件开发商怎样来抢 BI 这块蛋糕?