报表开发常用的3种模式,3种角度利弊对比

文 | 商业智能BI相关文章 阅读次数:3,483 次浏览
2022-08-11 9:35:21

报表是企业IT数据建设不可或缺的一个环节,小至一张出入单,大至公司KPI看板,都是公司必不可少的数据资料。

怎么开发报表?有几种开发报表的方法,就是IT写PHP、Python开发,或者用现成的报表工具。

以下就技术角度出发来比较3种常用报表开发模式:Excel报表、代码开发、报表工具

一个报表制作的流程往往是:业务需求—>报表原型设计—>需求确认—>数据整理校对—>报表开发—>需求变更与维护。

这其中和报表开发模式关系最密切的就是报表原型设计、报表开发以及需求变更维护,下面从这三种角度介绍。

1、报表原型设计

原型设计多用于产品需求,简略来说,如果将企业报表视为产品的话,那报表需求也可以视为产品需求,其实公司里已经有数据产品经理这个职位了,数据报表设计就在他们的工作范围内。

至于报表原型设计的必要性,举一个场景来说明一下:如果人力部门提需求说要一个填报页来录入员工信息,那时候我简简单单做了一个页,填入10个信息字段,但信息格式却修改了三四次,结果需求后来频繁更改,先是屡屡提出增加填报的信息内容;然后发现发现数据端那边因为数据结构的变更导致数据乱码、无法填报;再然后还要开放信息修改的权限;再到后面又提出要做工资跳转页、增设多sheet填报。前前后后更改了数十次需求。很大原因就是没有做好需求的确认以及报表需求的原型设计的扩展性。

标准的报表开发流程,怎么做好报表?

数据报表的类型是简单数据表格类还是可视化图表类,是用于填报还是查询还是展示。

一个需求点辐射整块需求,需求点能否合并,报表是单张报表还是可集成到一个页面,页面是否要预设跳转口。

报表的权限,是否要设置多级权限,确定增加、删除、查看、修改、导出的权限。

数据导入关联数据维护功能。数据后台是否有数据库,没有的话是通过定义公式还是要附加数据导入与维护的功能入口。

预计报表用户及其使用场景,是PC端,还是移动端,还是大屏展现。

报表工具辅助原型设计呢?

Excel做报表开发没有原型设计的功能,一般人做报表就是先从数据库导入数据,大致预览数据,考虑符合情况的报表样式,然后在Excel上制作。Excel由于数据存储在表中,所以操作简单,见即可改。

至于用代码的话,那就难多了,比如纯Java代码开发报表,是没有前端页面的,只有开发人员知道报表是什么样的,其他人要看就只能调代码,连格式什么的也要靠写代码来做。其中最大的难点就是不适配不同分辨率的电脑、手机等,所以代码开发是很难的。

用报表工具开发报表的方法,即报表工具辅助原型设计,比如FineReport,是有类似Excel设计页面的报表设计器的,可以报表工具辅助原型设计,可以直接在设计器里制作报表样式,在初期确认需求时也可以用Excel简单设计一下demo样式。

开发报表的方法,报表工具辅助原型设计,报表的技术开发,报表需求的变更及维护

但对于一些复杂特别的需求,比如移动端报表、多sheet页报表、可视化大屏类报表,Excel就无能为力了,所以能够直接画出原型的报表工具更适合解决这类需求。

2、报表的技术开发

Excel可以做本地报表,也简单好上手,但功能发挥却要看你电脑配置,一旦数据过多,电脑容易崩溃,所以从数据库导入数据需谨慎。

我觉得Excel是没法适用于企业报表的,Excel是做不到对接数据库,做报表维护和收集数据,因为这样的工作量你会做到崩溃的。最麻烦的是如果数据有变化的话,那其他数据也要跟着改。所以Excel的表格没有实时性,基本隔一段时间数据就出错了。

用代码开发报表的方法可以很快解决点对点的需求,但就长期来看,就是代码靠人力堆,工作量极大。还有一个方法就是自研报表工具,如Java有一些对接Excel报表功能库,也有可视化图表库,但解决不了打印报表、复杂数据计算、复杂报表展示、导出打印以及文档格式一致性等问题和需求。所以以报表的技术开发来说,自研报表工具除了自动化报表外,其他的都是坑,虚耗心力而已。

而报表开发的方法里就报表工具相对完善稳定,毕竟是氪金解决以上不能解决的问题。FineReport的特别优点是和Excel相像的设计方式(毕竟我们这些做报表的又不是专业代码开发,做开发还是很难的),然后只要会一点简单的SQL和JavaScript,在加上各种报表设计模式,就大体能实现各种复杂报表样式。其中数据字典、实际值和显示值等设计是切入快速开发的重点,而这些在其他方法里是需要大量代码才能进行下去的,而在FineReport里就可以做现成的,这就不需要报表的技术开发了。

开发报表的方法,报表工具辅助原型设计,报表的技术开发,报表需求的变更及维护

3、报表需求的变更及维护

前面屡次提到报表需求的变更及维护,做报表的人最讨厌的的就是报表要修改、要调整、不好用之类的反馈。

完成Excel改报表的需求需要先收集实时数据,导出来复制修改,所以每次修改就大体是重做。

代码报表开发也是同理,修改动的就是代码,或者直接重做。如果事先有完善的报表需求确认,那就能剩下不少时间。

FineReport报表需求的变更及维护主要是运维报表模板。数据更新因为是直接对联数据源,可以自定义设置更新T+1或者实时,所以大大省去了时间,但这个还是主要看数据库/数据仓库的支持。例如更改报表样式是改报表模式,相应的展现模板会自动随修改模板更新,就跟PPT改母版样式差不多。然后在维护方面,FineReport是部署在服务器上的,可以让各种用户在远程服务器上对模板进行设计、修改、维护等操作,降低模板的运维难度。

除此之外,还有报表体系的使用和运维。报表会随着时间增长而积累,这就需要业务人员对报表进行数据更新和优化,淘汰陈旧报表,优化常用模板的展示样式、交互效果和性能层面,而这恰恰也是报表工具的优点。

开发报表的方法,报表工具辅助原型设计,报表的技术开发,报表需求的变更及维护

最后,列出一张图表来简单描述,三种报表开发模式:Excel报表、代码开发、报表工具的好坏。

开发报表的方法,报表工具辅助原型设计,报表的技术开发,报表需求的变更及维护

比如,目前主流的软件——finereport,它小到填报、查询、部署、集成,大到可视化大屏、dashboard驾驶舱,应有尽有,功能很强大。最重要的是,因为这个工具,整个公司的数据架构都可以变得规范,下一步就是构建企业的大数据平台了。而且它是java编写的,支持二次开发,类Excel的设计器,无论是IT还是业务,上手都很简单:编辑sql优化、数据集复用简直都是小case,大大降低了报表开发的门槛。在企业中被关注最多的数据安全方面,FineReport支持多人同时开发同一套报表,并通过模板加锁功能防止编辑冲突;通过数据分析权限控制,保障数据安全。

开发报表的方法,报表工具辅助原型设计,报表的技术开发,报表需求的变更及维护

FineDataLink更多介绍: https://www.finedatalink.com/

产品体验

相关内容

目录
立即体验 立即体验

商务咨询

在线咨询
专业顾问帮您解答问题

电话咨询

技术问题

投诉入口

微信咨询

返回顶部