报表工具——开源还是商用

【摘要】
        报表工具选择开源还是商用?历来也是见仁见智,搞清需求是首要的。表样复杂度,输出方式,填报,维护成本,性能等等都可能成为您关注的重点,如果您还在考察纠结中,不妨去乾学院看看:报表工具——开源还是商用,也许能帮到您!

——小二,来几套报表工具!

——客官,您是要开源的,还是商用的?

……

关于报表工具的选择,开源还是商用的争论一直没有消停过,其实不管选择哪一种,都应该不忘初心、按需选择。正因为需求不同,选择也不一样,所以在做出选择之前,先让我们搞清楚自己的需求是什么,答案就会自然见分晓。

一般来说,选择报表工具可以从以下几个方面进行综合考虑:

  • 表样复杂度

  • 输出方式

  • 参数

  • 制作界面的可操作性

  • 填报

  • 维护成本

  • 多变需求

  • 性能

  • 扩展接口

  • 产品更新

表样复杂度

不是说能做一个网格式报表,这个工具就算合格了。用工具制作报表,必须考量报表表样的复杂度,因为这将直接决定你选的工具是不是足以帮你搞定要面对的问题!比如下面这个报表:

undefined

这是标准的多源分片报表。这张表的数据一共来自 6 张物理表,左表头来自订单表,雇员表,订单明细表,上表头来自客户表,产品表,类别表,交叉项需要根据表头数据分组汇总。也就是说,在这一张表里出现了多数据集、多级表头、斜线表头、表头名称代替 ID 显示、分组汇总、条件汇总等等“中国式报表”中很常见的元素。对于开源工具来说,要快速制作这样一个报表还是很困难的,单就多数据集这一个问题,可能就需要程序猿写一个庞大而复杂的 sql 语句,利用各种 join,group by,where,sum…把 n 个数据表的数据整合成一个。而对于商用报表,比如润乾报表,由于报表端是有计算能力的,所以 sql 准备可以很简单,写几个 select * from table 就可以了,而表间关联,分组,汇总运算,都可以在报表端不同的格子里写表达式实现。

undefined

例如上图红框中的表达式,是不是比看一长段 sql 语句要清晰的多?少费了脑子,更保护了眼睛,即使是对 sql 不那么精通的菜鸟,做起来也不太费功夫。

这还是数据准备阶段,接下来是画表格。对于复杂格式支持不够的开源报表,通常就得写代码了。而写代码来画表格,然后再把准备好的数据挨个儿填进去,程序猿们都清楚,那可不是一二十行代码就能做好的。而润乾报表,简单设置一下,几分钟就能做好一个,并且连带高亮显示、格式、对齐、字体等样式也同步完工,节约的时间成本可想而知。

输出方式

制作好的报表,除了在页面展现,更多的时候是需要打印,或者导出成 word,excel,pdf 等格式的文件。一款报表工具,能否满足打印和导出需求,不需要二次开发,也是需要重点考虑的。对于简单的打印导出,开源报和商用报表都基本 OK,但很多时候,我们会遇到一些比较苛刻的需求,开源报表就不一定能搞定了。比如:导出 word、导出 excel/pdf 不失真、导出加权限加密码、导出统计图保持高美观度,动态控制指定行分页、行后分页、末页补足空行、一页打印多页、套打、批量直接打印等等。

参数

参数在报表中运用的非常普遍,事实上每个系统都有参数的身影。但在应用系统中,参数表单的传递及保持,需要写大量的代码,如果参数改变,修改的地方会比较多,进而造成代码维护困难。对于商用报表来说,通常自己都有一套参数机制,从表单制作到参数传递和保持,都可以实现零代码,就连参数表单都可以直接用设计器制作。当然,现在有了全栈开发,对于参数的传递及保持前端已不再那么痛苦,但后台的处理依然需要写几行代码的。

制作界面的可操作性

在实际制作报表的过程中,设计界面操作是否方便,很大程度上也影响了报表制作的效率。在一些主流开源报表中,提供的是可视化的拖拽式制表模式,这种模式比较直接,上手容易,但通常格线对齐困难,还有字体等格式调整麻烦,表达式不能随着行列变化自动调整,不能直接导入 excel 等一些问题,这将直接影响制表耗时。而有些先进的商用报表采用的是更加规范的制作方式,比如润乾报表,采用的是类 excel 的制表方式,上述问题通过简单设置就能搞定。同时也正因为是类 excel 式的表格,所以也能够比较轻松地支持 excel 表格的直接导入导出,支持局部表格复制粘贴。而且,鉴于目前 excel 办公软件的普及,以及中国特色的报表需求,类 excel 式的制表方式也会在一定程度上降低学习成本,让用户更加省时省力。

填报

报表除了有展现的需求,web 端填写、自动提交也是常见的报表需求,如果您选择了开源报表,那肯定没有填报功能,只能通过代码实现数据填报,遇到逐级上报等需求,程序开发起来一般都比较困难。而如果系统已经应用到了生产环境,但很不幸遇到需求变更造成字段更改的情况,除了要更新代码程序,还要停下服务器进行升级,就更麻烦了。但润乾报表支持普通填报、逐级上报等高级功能,还能实时更新上传,更厉害的还提供了业务人员都能制作的业务填报,砍掉了业务员对程序员的依赖。

维护成本

通过前面的介绍,我们可以了解到对于开源报表,不是界面端要费点功夫,就是需要代码行来帮忙,说不好啥时候还会碰石头。相对于商用报表的易用性,不但开发耗时会成倍增加,如果经验不足遇到问题,还得靠自己去找资料查文档,慢慢钻研。再倒霉些,一旦碰到某个开源报表帮助文档不全,或者文档更新与产品不同步,那就更得考验智商和运气了。而商用报表,很多时候完全不需要资深程序员介入,一个刚毕业的菜鸟都能搞定,再不济,还可以求助供应商的技术支持,有个头疼脑热,很多时候只要 Q 个 Q,一问一答就解决了。

多变需求

报表报表,其实就是对系统数据的一个统计和总结,为驾驶者带来驾驶舱中一切尽在掌握的感觉。但在不同的阶段,驾驶者对数据的观察重点会有所不同,这就造成需求的不确定,甚至变化莫测,因此也就给报表提出了更高的要求,希望能够做到随需而动。在这一点上,商用报表相比开源报表的适应度要更高一些,正如我们上面提到的,商用报表设计简单,操作方便,零代码,能在不改动代码,不重启系统的情况下,快速适应需求变化。

性能

有的报表工具,在功能上都基本满足,但后来都死在了性能上。机器歇菜了,功能再全也没有用武之地了。报表作为系统点睛之笔,需要大量加载、汇总数据,大报表的内存使用率、报表的并发和缓存也是需要考察的,上面提到的任何一项出毛病,引起的问题大伙估计都懂——希望大家不要半夜被叫到公司,家里老婆孩子热坑头,多好。

扩展接口

扩展接口,感觉只要是个程序产品,理论上就可以扩展,最弱至少可以加个插件,开源的就更不用说了——源码都在你手上,你还不能扩展?但是,你真的能扩展?你确信你能扩展吗?事实上,正因为源码在你手上,大量的程序文件反而会造成学习成本高,扩展难以下手,扩展后无法再升级等问题……兄弟朋友呀请务必三思!而润乾报表以多年的行业经验,提取了很多标准的扩展接口,不仅文档丰富,易于找到接口,而且程序升级,也不会造成扩展的程序出错,真正做到无后顾之忧。

产品更新

一些主流的开源产品,虽然可能满足了当前的一些需求,但一旦发现 bug,或者遭遇需求瓶颈,那就捉急了。有兴趣可以了解一下开源产品的更新时间,很多主流品牌的最新版本都是几年前的了,即便有更新比较勤快的,也都小一年了……

说一千道一万,您可以放心地选择开源报表,只要您的需求里没有复杂报表,或者您的研发团队持续精良,能扛得住未知问题带来的影响,同时不在乎开发成本和周期。

不过,如果有一款足以应对各种复杂问题的商用报表,能帮您缩短开发周期,让您的研发团队专注于更高端更核心的任务,使您能够在一个高效智能化的世界里适应变化莫测的新需求,而且白菜价就能买到,是不是更值呢?

喏,记住了,这个物美价廉的报表就是润乾报表!

——小二,那还是来润乾的吧!