- ?
数据蒋堂|功夫都在报表外——漫谈报表性能优化
Gamila
展开
作者:蒋步星
编辑:刘晴敏
本文字数为2219字,建议阅读6分钟
本文由蒋步星讲述了报表性能优化的问题。
应用系统中的报表,作为面向业务用户的窗口,其性能一直被高度关注。用户输入参数后都希望立即就能看到统计查询结果,等个十几二十秒还能接受,等到三五分钟的用户体验就非常恶劣了。
那么,报表为什么会慢,又应当从哪里入手进行性能调优呢?
数据准备
当前应用中的报表大都用报表工具开发,当报表响应太慢时,不明就里的用户就会把矛头指向使用报表工具的开发人员或者报表工具厂商。其实,大多数情况报表的慢只是个表现,背后的原因是数据准备太慢,在数据进入报表环节之前就已经慢了,这时再去优化报表开发或压迫报表工具并没有用处。
报表是给人看的,人类视力限制不可能查看过多数据,也就没有大数据的呈现需求。报表工具为了直观而采用的状态式计算模型,也不适合实现有复杂过程的计算。报表环节不应当也无能力解决大数据和复杂计算问题,只要处理小数据的摆位和简单计算,这不会耗用太多时间。
八成左右的报表慢是因为数据准备造成的。报表呈现的数据量虽然小,但涉及的原始数据量可能巨大,把大数据汇总和过滤成小数据需要很长时间;复杂计算也是类似,主要时间消耗在数据准备阶段。数据准备的优化是报表提速的关键。
1.优化数据准备代码:一般是SQL(或存储过程),某些时候是应用程序的代码(涉及非数据库或多数据库时);
2. 数据库扩容:数据量大,代码不能再优化时,还可以扩容数据库,比如采用集群方案;
3. 采用高性能计算引擎:传统数据库在实现某些运算时性能较差或成本太高,可以更换为其它计算机制;
报表计算
报表环节本身计算性能差的情况相对少,但也是有的。
一个典型的场景是多源关联报表,即把多个二维数据集按某个主键对齐呈现,有时可能还需要分组汇总。报表工具要求把计算都写进单元格,这样只能用数据集过滤来描述本格和其它数据集的关联,类似ds2.select(ID==ds1.ID)的表达式。这个运算复杂度是平方级的,在数据量不大时也无所谓,但数据量稍大(几千行)且涉及数据集较多时,性能就会急剧下降,从几秒到几十分钟都有可能。
如果我们把这个运算移到报表外,在数据准备阶段时处理,就可以大幅度提升性能。如果数据来自同一个数据库,那么用SQL写JOIN语句就可以了,如果数据集来自多库或者希望减轻数据库计算压力,也可以在外部实现HASH JOIN算法。HASH JOIN算法可以整体地看待几个数据集,效率比报表工具采用的过滤式关联要高得多,几千行规模时几乎是零等待。
报表计算性能差虽然发生在报表环节本身,但经常却要在报表外去解决。
其它类似场景还有,如带部分明细行的分组汇总表,表现出来是由于报表环节处理数据量大导致运算变慢,而解决方法也是把运算移到报表外。
数据传输
报表还有个慢的瓶颈在于数据传输。
目前很多应用都是J2EE架构的,采用的报表工具也是Java写的,这时访问数据库都要用JDBC接口。然而,某些常用数据库的JDBC驱动性能很差(这里就不点名了),取出数据量稍多(几万行)时就会有明显的等待感。这就导致一个无奈的现象:数据库压力很轻计算很快,报表端计算也不算复杂,但报表仍然很慢。
无论应用开发商还是报表工具厂商都没办法改变数据库的JDBC驱动,只能在外面想办法。经过多次实验,我们发现启用多线程并行取数就能获得数倍的性能(前提是数据库负担轻)。但是,目前还没有报表工具直接提供了并行取数的功能(由于数据分段方法和数据库及取数语法相关,需要代码控制,也不容易做成报表功能),这个方案仍然要在报表环节外的数据准备阶段来实施。
可控缓存
把近期访问过的报表缓存起来,短时间内再次访问同参数的报表时可以不必计算而直接返回,显然这能改善用户体验。很多报表工具也都提供有缓存功能,不过并不细致,缓存只能针对整个报表,而且各个报表的缓存是无关的。在报表外下点功夫可以实现控制力度更细致的缓存功能:
1.部分缓存。有些报表、特别是常见的多源报表,其中大部分数据相对稳定(历史数据),只有小部分数据时效性差(当期数据)。而整个报表的缓存的有效期只能以较短的为准,这样会导致报表经常被重算。如果能只缓存部分数据,就能延长这部分缓存的生命期,从而减少计算量。
2. 缓存复用。不同的报表可能引用到同样的数据,而互相无关的报表缓存机制则会迫使这些报表多次重复计算同样的数据。如果能让某个报表引用到其它报表已经计算出来的缓存数据,也能有效减少计算量。
这些复杂的缓存控制需要编写代码来实现,不容易在报表工具中提供,但在可编程的数据准备阶段实施却相对容易。
清单列表
前面说过,报表和大数据的直接关系并不大。甚至可以说老是喊大数据报表的厂商多半是忽悠。
不过有一种清单列表确实是大数据报表。清单列表在金融行业经常碰到,把一段时间的交易清单列出来。其特点是数据量特别大,可能会有几千上万页,不过计算会相对简单,经常只是罗列,最多有些按页按组的汇总。
报表工具为了处理灵活的格间运算,一般都会采用全内存方式。这样,把清单列表加载进报表工具时,会大概率出现内存溢出;而且太大数据量全部取出并加载也需要很长时间,用户难以容忍。
容易想到的办法是边读取边呈现,每次只呈现一页,不会溢出;读满一页后立即呈现,用户不会有太强的等待感。数据库都提供有游标可以逐步读出数据,但用户可能在前端翻页,这还需要高速随机按页(行)取数的能力。数据库就没有这种接口了,用条件过滤取数不仅很慢,而且还由于数据可能仍在更新而不能保证报表在生命周期内的数据一致性。
结果还是要在数据准备阶段解决。两个异步线程:一个负责从数据库取数并缓存到外存(假定数据量大内存装不下),另一个接受前端请求从缓存中按页(行)取出数据返回。
- ?
一个工具帮你实现酷炫可视化
白乘风
展开
大部分人眼里,数据可视化可以是这样的:
但其实,它也可以做成这样:
看着酷炫的可视化,有人会疑惑,是否有实实在在的用处。其实在商业、生产和运营场景中有大量类似的使用,如集团展览中心——用作政府和客户参观使用;城市交通管控中心——交通警务运营监控;证券交易大厅——实时股票交易情况;老板的办公室——BOSS驾驶舱。其中使用尤为较多的是动态数据地图,以及实时的数据大屏。
如何实现?
秘诀在于这个工具——FineReport。
(finereport官网有个人免费版,可获取免费激活码!)
FineReport本身是一个通用的报表工具和数据可视化工具。就好比Excel,小到可以存储统计数据、制作各式各样的图表、dashboard,大到制作财务报表、开发进销存系统。
它可以连接ERP、CRM、OA、MIS在内的各种业务系统数据,作为一个中间数据管理平台。它可以快速制作报表,搭建统一的数据分析和可视化平台。
就因为其强大的数据整合性能,再结合其10多年来成熟的可视化组件,finereport可以制作各类数据可视化大屏。
关于可视化
FineReport的图表都是自主研发的HTML5图表,拥有60多种图表样式,具有优秀的动态效果和强大的交互体验。使用时能够根据需求设置各类特性,并且在手机端,LED大屏也能自适应展示。
关于一些可视化特效
FineReport有图表切换、自动刷新、数据高亮显示等特效。都是以jar报插件的形式安装。除此之外,每年帆软公司都会根据客户的实际需求开发一批插件,背后还有一批爱好的开发者,会利用可视化开源库,设计开发的插件,专门为finereport定制。目前这生态已十分成熟。
数据大屏是FineReport衍生的一个可视化功能。其优点:
1、异构数据源轻松整合,决策更清晰
轻松整合ERP/OA/MES等不同业务系统数据到同一个可视化页面,打破信息孤岛,让决策更加清晰
2、拥有丰富的可视化元素,视觉的饕餮盛宴
提供表格、图形、控件、网页框、图片、视频、滚动消息、数字时钟等几十种可视化元素,享受可视化视觉盛宴。
3、自由布局,可视化设计更加写意
支持自适应布局、绝对布局、tab布局的方式;零编码拖拽式操作,可以将不同的可视化元素在界面上自由DIY。
4、后台监测,实时掌握数据
后台数据智能监测并对比,数据有变更前台及时更新,时刻掌握最新数据。支持单个元素的独立监控设置。
5、多种可视化特效,让数据更加有趣
地图热力展示、动态流向展示、闪烁动画、自定义填充等个性化功能,为您的数据可视化增添更多乐趣。
6、动态交互,敏锐捕捉数据变化
借由多维度钻取、联动分析等功能,敏锐地发现数据间的联系,协助您更好地分析、解决业务问题。
7、自适应多屏显示,随时随地分析数据
支持自适应展示,设计一次,即可在手机、平板、拼接屏等多种设备上自适应展示,帮助您随时随地掌控企业数据。
一些疑惑
1、大屏与一般图表插件如echarts的区别?
有人又会说,用echarts实现就可以了,Echarts确实能提供很丰富的图表。但是实际应用的时候,要开发的内容远比想象的复杂,会涉及数据响应、动态刷新、屏幕自适应、还有大数据量高并发的问题,还要设计界面。一般人开发会把自己折腾得够呛?不如用现成的工具(比如finereport)拖拽图表实现。
2、finereport大屏可以做哪些动态效果?
多tab轮播、图表的轮播、报表块监控刷新、图表监控刷新、地图监控刷新并动态弹出数据提示、数据点自动轮播提示、插入其他GIF动画图。
3、关于数据实时访问
finereport可以实施访问数据,但不是完全实时,能做到准实时,目前市面上的主流方案均采用的轮询方法:定期向服务器发出请求,监测到数据变更时通知前台进行响应。定期刷新间隔可以自主定义,可精确到秒。
4、图中数据自动滚动怎么实现?
可以通过数据监控实现,但要求数据本身是实时变化的。可以调用自动轮播的接口实现,这个不要求数据实时,任意数据都可以模拟自动轮播。
- ?
用亿信华辰报表软件i@Report制作不同类型的报表
贝尔法斯特
展开
亿信华辰报表软件i@Report支持各种类型的报表,如基本表、变长表、中国式复杂报表、套打、问卷调查等。可灵活地设置各单元格风格,包括:文本、数字、图片、日历、附件、下拉框、下拉复选框、输入复选框、单选按钮等
1、制作基本表
基本表拥有固定的行与列,假设制作一张六行三列的基本表,下面以该表为例,介绍如何制作基本表。
首先新建一张6×3的基本表,
选中A1表元,输入"证件类型",以此类推,在B1、C1表元中分别输入"证件代码"、"股东名称",输入完毕,A1、B1、C1均自动变为固定表元。
选中A2~A6表元,右键点击选中区域,打开表元属性对话框,将数据类型修改为"字符串",并使用代码组"股东证件类型",修改完毕,A2~A6表元自动变为代码组表元。
选中B2~B6表元,右键点击选中区域,打开表元属性对话框,将数据类型修改为"字符串",数据长度修改为"18",设置完毕,B2~B6表元均变为18位的字符串型变量表元。
选中C2表元,点击
,在弹出的公式定义向导对话框内输入公式if(B2=null,"",self()),表示若B2表元为空,C2表元值为空,否则返回C2表元自身的值,同样为C3~C6表元定义公式,定义完毕。
点击
,在表体上方拖动鼠标,在拖动区域内输入表头"股东信息表",
编辑报表文字的字体、颜色、居中等。点击
,在弹出的审核公式对话框内为当前报表添加审核公式。
右键点击报表的空白区域,打开报表属性对话框,为报表设置报表代号、报表简称、报表详细名称等信息。
2、制作审核情况说明表
用户进行数据填报时,某些未通过审核的数据填写审核说明后,系统将该审核信息记入审核情况说明表,记入审核情况说明表的数据即使未通过审核也能上报。
首先新建一张8×3的变长表,
第一行表元内输入相应的文字,
将表元视图切换为字段名,第二行表元内分别输入字段名RPNAME、PLANARKEY、AUDITTAG、AUDITEXP、AUDITNOTE、AUDITINFO、AUDITOK与AUIDTTIME,各表元的数据类型和字段长度要求参考下表 ,
其中,字段AUDITOK表示不删除审核说明记录,该字段为"0"时,表示审核未通过;该字段为"1"时,表示审核通过。
将表元视图切换为正常,为第二行表元均定义公式:self( )。
添加表头,并隐藏第三行,即合计行。
右键点击报表空白区域,打开报表属性对话框,切换至变长表选项卡,点击自定义关键字处的
,将A2、B2、C2表元设置为关键字表元。
打开任务属性,切换至“审核设置”选项卡,选择审核明细表,定义审核标记前缀,勾选“需要填写审核说明”与“忽略已填写审核说明公式”。
编辑允许填写审核说明的审核公式,打开对应的审核公式定义对话框,勾选“允许填写审核说明”。当用户填报数据时,如果未通过审核,填写审核说明后对应未通过审核的数据将记入审核情况说明表。
3、制作视图表
视图表是一种分析表,是一种能将某一报表户的分散在多张报表中的数据集中在一张报表中的分析表,方便打印输出。
与其他分析表不同,视图表只从单个报表户取数。一个视图表可以从多个基本表中取数,也可以包含多个变长表。由于是一个分析表,所以视图表的行列数可以很多。视图表的数据会随着当前报表户的变化而不同,因为它总是实时地从当前用户的一套报表中取值分析的;而其他类别的分析表都是对下级单位数据的统计分析,不管当前报表户是哪一户,分析数据总是根据分析表中设定的条件统计产生。
以一张4×7的视图表为例,介绍如何制作视图表。
新建一张4×7的基本表,选定全表表元,点击
将所有表元设置为固定表元,合并A1~G1表元、A3~B3表元、A4~G4表元。
右键点击A1表元,选择属性,打开表元属性对话框,在链接报表处选择需要链接的报表B0,同理,为A4表元设置链接报表B1。
为视图表添加按钮表元,通过点击按钮表元,可以控制其他链接报表表元的新增记录、保存记录、删除记录等操作。以A2表元为例,该表元处需要定义一个"新增记录"按钮,打开表元属性,在"url链接"处输入脚本,输入完毕保存表元属性。
分别为功能按钮表元定义"url链接",相关按钮的脚本的设置可参考下表。
所有的功能按钮表元链接定义完成后,一张视图表制作完成。
- ?
取得初级、中级、高级会计师财务高管 跟你分享利用财务软件功能编制所需报表
Don
展开
名师档案
姓名:吴素文
职务: 某私企财务主管
现从事工作:财务主管
人生座右铭:梅花香自苦寒来
一句话描述职场经验或心得:踏踏实实做事,清清白白做人
对自己职业发展的规划: 脚踏实地,分享共赢
网校带给您哪些帮助:无论是考中级还是高级都有听过网校老师的课程。
所授课程:一般纳税人账务处理与纳税申报 (财务软件版)
自我介绍
考证经历、学习经历、工作经历等
2003年聆听了中华会计网校的课程通过了会计中级职称考试取得会计中级职称;
2013年取得会计高级职称证书也听过网校老师的课程,但那位老师已不在了,很感谢他!
实务工作经验分享:
利用财务软件功能编制所需报表
我曾经在一家大型连锁的医药公司做过财务,20多个连锁药店都 在一个帐套中进行管理,到月末的时候每个连锁店都要需要出具一套财务报表。刚开始不会应用自定义报表功能,我就用最原始的办法引出多栏式明细帐再用EXCE表格进行整理后再编辑出管理用报表。后来我发现金碟的财务软件有这一功能后,立即应用到工作中,将20多个连锁店的收入、成本、及费用在一张报表中进行公式设定,这样各店的利润就在一张报表中分别表现出来,后来又设置各个店的费用明细表当月及累计数,虽然第一个月设置报表公式花费了我很多时间,但在以后每个月出具报表时就很省力,只要先择报表期间点击报表重算就能立刻取到所需要的数据,减少了工作的时间,提高了工作效率。
在财务软件的应用中,无论是金蝶财务软件还是用友财务软件,如果购买了报表模块,软件都提供了自定义报表的功能,利用这种功能编制自己所需要的管理报表能起到事半功倍的作用。
在编制这些报表中首先得要读懂这些报表的公式,然后再根据这些公式进行单元格设定,编制出自己所需要的报表。报表模块提供了期初余额、本期借方发生额、本期贷方发生额、本期累计发生额等功能设定,我们可以根据实际工作需要随意进行组合,当然第一次设置公式的时候很繁琐,但只要 是一次设定好了报表公式,每个月和资产负债表、利润表一样可以自由更新,随时取数,就省去了引出科目余额表再进行编辑的时间。
因此,在财务的实际工作中一定要多掌握财务软件的应用功能,不能光局限于录制凭证,查看帐簿;还要勤于动脑 ,多多学习财务软件的实际应用,让软件成为你实际工作中的好帮手。
结语:欢迎大家随时留言交流;喜欢我 就“关注”我、“转发”我、“收藏”我!
想做会计大咖提升财务技能,点击下方“了解更多”发现更多精彩↓↓
- ?
做报表其实你可以这样抓取数据,你要的数据就在眨眼之间
塔尔塔尔
展开
你也许在表格需要做报表面对数据收集和整理,对数据进行筛选和分析,最后挑选出符合自己需要的数据,当Excel表格中存在大量的数据的时候,特别是多工作表分析数据,几千万行的时候,你会怎么办?
也许在数据很多的时候,你就会想到能不能一键操作,将所有的分表数据一次性汇总,能不能按照我们制定的关键字汇总数据,只汇总名称里包含某个关键词的工作表?当然数据的种类也不一致。
我可以肯定的告诉你,当然可以啦!
我们还是看看动画怎实现的吧
PS:需要注意的是程序在执行后,会弹出对一个话框,提醒你输入需要汇总分表表名所包含的关键词,关键词可以不填(保持为空),此时将对所有的分表进行汇总。
附上源代码:
其实代码也是非常的简单的语法堆积出来的,都在最最简单的循环和字典,数组和一些功能代码组合而成,其实VBA真的非常简单。
以上就是今天要和大家分享的技巧,希望对大家有所帮助,欢迎大家帮忙转发,谢谢!
祝各位一天好心情!
Excel中每一个方法都有特定的用途,不是他们没有用处,只是你不了解或者暂时用不着,建议你收藏起来,万一哪天用着呢?
- ?
Excel的功能知多少
从波
展开
Excel是一种功能强大的电子表格软件,它能够利用自身的多功能工具将杂乱的数据筛选整理成可用的信息之后进行分析、交流以及分享得到的结果。由于它在数据的处理、统计分析和辅助决策操作方面的作用。熟练掌握运用Excel建立各种财务管理模型的方法,有助于财务管理人员在复杂多变的理财环境中迅速准确地判断,合理地决策,从而高效地开展财务管理工作。
有人会说,你这话太笼统了,Excel在财务方面到底有那些功能及其具体应用呢?
好吧!下面就详细说说Excel在财务管理工作中的功能及其应用。
(一)强大的表格处理功能
Excel工作表是由一组行、列和单元组成的并被Excel用来存储和处理数据的。它替代了传统意义上的笔、帐薄和计算器。Excel有文本、数字和时间等多种类型的数据。它的制表功能简单易操作,而且表中的数据如果互相有运算关系,刷新时数据也会随之更改。利用Excel可以对表格进行各种操作,如增删、排序和排版,通过对单元格的编辑,可以使得数据更加清晰、直观,由此可以相对的减少工作量,所以电子表格的创建和处理是Excel的主要功能之一。
这些功能用是最基础的功能,可以用于记录、制作、计算及其输出打印各种报表,比如工资表、纳税申报表、固定资产管理表、进销存报表等等。
(二)绘图和图形处理功能强大
Excel的绘图和图形处理功能能够把表、图、文三者相结合,把数据以饼图、条形图、折线图等各种图形展示出来。
该功能用于财务分析、财务决策时可以做到图文并茂,将数据变得可视化。
(三)强大的数据处理功能
在Excel中可对数据进行搜寻、排序、筛选、分类、统计、合并汇总、自动求和、求平均值、求最大最小值等操作,可以解决财务管理中所有数据计算的问题,包括时间价值的计算、财务分析、风险分析、成本计算、本量利分析等所需的数据处理。
虽然显然很多企业都用上了ERP软件,但是对于上述这些处理不是都能全部完成。有人说,我只要进行二次开发肯定是可以的。但是二次开发的人力和时间呢?还有企业会给你二次开发的预算投入吗?难道不二次开发我们面对这些就束手无策了吗?跟何况众多中小企业根本就没有ERP软件!因此,Excel的这些数据处理能力是每一个财务人员必须掌握的。
(四)拥有丰富的函数工具
Excel除了拥有加、减、乘、除等计算的功能,还提供了大量丰富的函数,它是Excel预设的一部分公式,使得用户可以利用这些简便的函数来完成各种复杂的计算操作。Excel软件中包括几百种函数,分类为:财务、统计、逻辑、文本、数据库、工程、日期时间、信息、数学和三角、查找和引用函数等,通过充分利用这些函数,可以提高运算的准确性和效率。Excel函数具备了从资金时间价值计算、固定资产折旧到计算项目投资收益率在内的大量财务分析函数,可以承担在财务成本管理中的大部分运算。
在财务工作中我们有时会遇到一些非常复杂的计算,相信只要学习过财务管理课程的人都知道,财务管理里面有多如牛毛的公式。现实工作中比课本上东西根据复杂,课本上或考试时会告诉你很多已知条件,而实务工作中这些已知条件甚至也是你工作的一部分需要你求解。面对这些纷繁复杂,有时又千变万化的数据,有了Excel函数这些都变成了“小菜一碟”,如果还是传统的按照课本上的方法计算你将会被“累成狗”!
(五)VBA功能
VBA是一种自动化语言,利用它能够使得我们常用的程序自动化。简单的来说,VBA就是基于某种语言自行开发的小软件或者小工具。目前,基于EXCEL的VBA小程序数不胜数,而且由于每个VBA小程序是由非专业的程序设计人员在工作中根据工作特点而设计的,所以它的应用性很强。在Excel中我们可以使用已经定义好的VBA程序,也可以根据财务人员的需要自行设计开发,这样可以为企业财务人员节约大量的时间和工作量,提高劳动效率。Excel与VAB相结合有利于编写宏指令,它为Excel提供了其他工作表格软件所不能提供的一些更宽泛的特性。
VBA功能强大,但是必须要有一定基础知识才行,对财务人员还是有点“高冷”,在此介绍但不做推荐。
(六)数据库透视表功能
数据透视表是一种可以快速汇总大量数据以及建立交叉列表的交互式表格。使用数据透视表,不仅可以在数据清单外显示汇总结果,而且还可以通过转换行和列查看原数据的不同汇总结果,甚至能够显示不同页面以筛选数据,所需的明细数据也可以根据企业财务管理者的需要显示在区域中。掌握了Excel的数据透视表功能,可以方便的观察数据和对数据进行操作。
(七)可使用外部数据功能
Excel可以读取和输出各种格式的数据文件,并且可以从ERP软件等大型应用软件以及各种网站中引入数据,省时省力,减少错误操作的发生率。Excel数据源的多样性加强了它在财务管理中的适用性和便利性。
(八)模板功能
Excel中的模板是一种用来生成其它工作簿的格式文件,包括与模板文件特征相同的样式、文本、宏、名称、布局、设置、数据公式、工作表控制及VB模块表,每一个由模板文件生成的工作簿即是模板的复制品。模板在财务管理、制作报表等一致性方面是十分有用的。
- ?
地表最强报表工具,一张模板秒杀数百Excel !
赫愚志
展开
又到月末了,表格表姐、财务狗,IT人们又要赶报表了。
财务人哭诉说:
自从干了总账会计,我发现人家吃饭,我在做报表;人家睡觉,我在做报表。做报表的事真是从年头到年尾,从年尾到年头啊,现在生活中没有其他,只有EXCEL。
自从干了总账会计,我才知道一个报表不来回修改个十几二十次,那都是不正常的。我才知道周末是不能关机的,要是关机了,就嘿嘿。
所以说,做报表的,佛系才能长命。
表格表姐也憋了很多牢骚:
每到月底、季末,领导就会在群里夺命连环@
要知道,这样的报表,我要去申请业务系统的数据先核对。大包大揽导出几十万条数据,给我配备的电脑,打开需要2分钟;每写完一条函数,都要运算7、8分钟;鼠标不敢乱点,人也不敢离开,还时不时的得给主机扇风。企业级的报表,尤其数据多的时候,Excel真不是好选择。当你好不容易做完,一句“数据不对”就给打回,心中真不知是什么滋味。
IT人更是不服:
公司采购了几千万的SAP大家不用,业务系统自带的报表也不用,依旧excel邮箱满天抄送,任务系统中这里少数据,那里口径对不上。回头各种抱怨数据不对。SQL手把手教大家写了,简单的数据库功能也是花了两天培训的。结果到头来,简单的报表需求依旧交给IT,反倒是需求提得更严苛了,真是有苦无处说。
大大小小的报表,是企业里少不掉的基础事物,维系着整个经营信息的流转,但现在反而成为很多人的日常工作的束缚,不免引起一阵反思。
工欲善其事,必先利其器!
造成这些问题的很大部分原因就在于,缺乏一套高效的工具。
做报表做表格,很多人第一时间想到的是Excel。Excel作为个人办公软件绝无仅有,但作商业用,其实在效率上还有办公协同上稍有不足:用Excel收集数据容易乱,用Excel存储数据容易丢失,影响数据质量。而且普遍企业报表需求大于人员负荷,用Excel做报表改报表无疑都是在增大工作量。
懂IT的朋友可能会说,交给数据库啊my sql 、oracle,写两条SQL,借助数据库的运算性能就解决了。再不行,找程序员写代码,批量做报表,数据录入、图形化报表、甚至数据分析都可以交由程序开发,性能杠杠的。
那如果有现成的工具,可以直接和数据库交互(数据导出+填入数据),能连接各系统的数据,能高效率批量做报表,展现,交互分析,可视化大屏,并做到办公协同,那就是小编今天想来讲讲的FineReport了。
一、用FineReport做一张模板,可以替代N张手工重复劳作的Excel !
为什么这么说,先来了解FineReport的制表原理
1、FineReport的制表原理
FineReport是通过连接数据库,读取数据字段来设计报表模板的,所以在制作模板前先要知道数据库的类型、地址、访问数据库的用户名密码,两者建立一个数据连接后才可开始设计模板。然后依据所需功能(表格展示?填报?dashboard分析?)和表样来操作模板,最后在web端展示。
制作模板时处理的对象是数据字段(区别于Excel的单元格数据),模板中一个单元格放一个数据字段,web端展示时字段扩展。FineReport报表中单元格的扩展是有方向的,可纵向扩展,也可横向扩展,也可以不扩展。
单元格的扩展是针对某一个单元格,当报表主体中绑定了多个单元格时,单元格与单元格之间依靠父子格关系跟随扩展。子格的数据会根据父格的数据进行过滤分组显示,并且还会跟随父格的扩展方向而扩展。
2、三大类报表设计方式,解决日常所有报表需求,并且一表复用。
1)普通模板设计,此者最常用。依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等。比如交叉报表、行式报表、分组报表等等。
2)聚合报表设计,针对不规则大报表。适用于一张模板中显示多个独立模块的报表,几个报表块汇总在一起的复杂报表。
3)决策报表设计,就是表单,也是dashboard,也就是大家常见的各种图表拼接在一起的可视化数据报表。
通过拖拽图表来制作,制作好的dashboard可以自己适配屏幕的大小,多以也可以做成手机端的报表,大屏可视化,下面有细讲。
以下举例一些常见的报表格式:
交叉表
行式报表
分组报表
自由报表
3、参数实现数据查询和过滤
在很多情况下,我们需要根据条件查询数据,过滤。在FineReport中,通过设置参数绑定数据字段和过滤的控件(单选框、复选框等等),参数可用JS编辑更多复杂的情况,通过界面输入查询条件来控制报表显示的内容及形式,而后导出打印。
很多公司很多员工都会要做周报月报季报等,有些全国性的公司有分公司、门店、办事处。经常性的要做这些重复性很大的报表。那用FineReport就可以集中将每一条数据明细上传到数据库中(填报功能,下面会讲)。在做报表时,做将一些常用的维度“地区”、“时间”、“城市”等等作为一个查询的参数控件,类似Excel中的筛选,导出。基本上一个周报模板,就解决了一些人一年52张手工excel报表的工作量。
4、填报
填报就是向数据库中录入数据,用于固定格式固定条件的数据收集。就好比你注册网站时提交的邮箱、收集、用户名、密码,都会按照格式存放到数据库中。
填报也需要一个模板,操作流程如下:
填报模板由控件组成,文本控件、数字控件、密码控件、单复选框、网页、文件等等。控件对应着数据字段。有了填报,就可以收集数据,并且允许用户实现对数据库的增删改。出于数据质量和数据安全的考虑,还可以对填报进入的数据做校验操作。
填报最大的用处是替代excel收集数据,做好了模板,奖模板链接发送给相关人,填完数据审核过后即可入库,省得excel传来传去,而且是在web端填写,也非常简单。
二、不只是报表,还有数据可视化
酷炫的dashboard都需要通过FineReport的表单(决策报表)来设计展现。通过拖拽报表块、图表块和各类控件初步设计界面。
不同于普通报表,普通报表是一个整体,无法实现局部刷新。表单是由各个组件组成,可以实现组件内刷新,即局部刷新。像动态大屏都是全局或者局部刷新的,所以需要用决策报表制作实现。
1、决策报表制作过程
新建表单:FineReport支持新建工作薄,即普通报表模板,还支持新建表单,两种设计模式;
拖入组件:FineReport表单支持多种不同的组件类型,包括报表块、tab块、绝对画布块、参数、图表和控件等等;
定义数据集:定义各个组件数据来源,图表组件数据即可来源于数据集,也可来源于单元格;
设置表单样式:即设置表单的显示样式。
2、数据可视化与交互
之前很多网友留言,问这样的可视化是什么图表制作的。其实大多由FineReport自带的H5图表。此前有提到FineReport良好的开放性,可让IT同事写代码开发,所以在制作时,也可接入Echarts等第三方控件来制作图表。
3、实用而强大的数据地图
finereport有很强大的地图功能:基本地图、GIS地图、热力地图、大数据流向地图等。
GIS地图基于GIS地图层进行数据展示,支持自定义GIS主题风格,能够与数据表钻取联动。比如省级钻取到市级、县级、街道。
三、总结
篇幅有限,以上只展现了FineReport的一部分功能,很多细节无法展开。
要说效率,最大的好处就是从数据库中读出数据自动产生报表,且一类报表做成一个固定样式的模板,每次只要同步一下,自动生产周期性的报表,如日报、周报、月报、季报等。 每次按照条件查询,Excel批量导出/打印,少了人力去一个一个用Excel统计汇总。
而且操作上,大多数功能FineReport都封装成模块了,包括写SQL取数,汇总筛选过滤等,基本上都有对应的功能键。像著名的资产负债表,如果按照以往写代码或者写复杂的SQL语句,就有点摧残生命了,而且那天书般的SQL语句要是出点错谁来查,如果数据来自多个源,那就彻底无法解脱了。
其次,在数据处理速度上,由于性能一部分依靠数据库,一部分依靠FineReport的行式报表引擎,相比于Excel的单机效率,几十万行的数据秒出。再者,企业数据库有各种自带或第三方的集群方案,通过堆机器就可以近似于无限的加大数据储存能力。
最后,FineReport除了解放个人,最大的贡献应该是对企业。在商业用途上,我们要考虑效率,人员的培训成本,协同性,还要考虑对企业业务的支撑、贡献,这几点Excel是比较难发挥贡献的。有知友说“Excel用得再溜,老板也不会给你涨工资,可能还革了其他同事的命”。那是因为Excel处理了数据,但没有得到有效结果去服务于业务带来效益。那如果在报表之后,基于业务基于指标去做特定主题的数据分析,站在公司角度做数据化管理,为领导的业务决策提供有效意见,这样的高度就别有不同了。
- ?
这个工具能替代Excel,可惜90%的人都没用过!
夜白
展开
日常工作中,涉及到数据的表格、计算、图表和分析,大家首选的一定是Excel。
但我也看到不少知友困惑于Excel的深入学习难度,鸡肋的大数据处理效率。
比如某同事为处理七八个维度,近万条数据崩溃不已;又有人几十万行的数据把电脑频频跑崩;再者,随着多任务线之间的交叉,汇总任务呈几何级数增加……
倒不是说Excel完成不了这类任务,如果是日常的表格记录、数据计算、Excel确实无法替代。但如果说做企业管理的业务报表、庞大而又复杂的数据分析、财务分析、预算编报,Excel就很不擅长了,因为其数据不统一,也没有独立的计算引擎,数据在各个Excel文件中独立存在,数据合并非常费事。
比如,最近我媳妇入职一家新公司,任某品牌的卖场数据专员。虽然之前也是这个行业的,可并不擅长数据报表的制作。
负责交接的同事是个毕业后就入职这家公司3年多的老员工,一直在做报表这块的工作,交接的时候为了更准确,我让媳妇使用录屏软件,将他每天要做的事情都录下来。
结果发现,这家伙从早上开始,就开始问信息部要数据,然后用excel各种复制、粘贴、求和、求百分比、vlookup、再复制、粘贴、求和、求百分比、vlookup、删除、调整……,几个小时后,第一张报表诞生了……
看了录像后的我,整个人都是崩溃的,这也太逆天了。好吧,这小伙子确实厉害,操作速度绝对是一流的,LOL里至少也是钻石V。
但我可舍不得媳妇每天这样,而且对于计算机专业的我来说,只要有数据库,这些重复性的工作都是分分钟代码/工具能解决的。
考虑到会有不少需求变化,让媳妇改代码是完全不可行的,于是我就找现成的报表工具。比较了SPSS、SAS、cognos、水晶、foxtable、finereport之后,确定了报表软件finereport。从mysql建表、数据导入、制作日报、周报、月报,各种对比报表开始逐个攻破,终于在手速不低于黄金段位的我进过一个星期的努力后,全部完工了,经过和小伙子做出来的手工表进行校对,确认没有问题后,安装部署到了媳妇的办公电脑上。
几天后,小伙子离职了,从此,媳妇上班只需要早上向个卖场的负责人收集数据,然后花几分钟导入数据库,然后点点鼠标,生成各种报表,然后……先存起来,喝水、吃零食、水果,休息,上网。
所以,从效率上来讲,专业的报表工具是可以替代很多重复性的excel处理工作的,比方说FineReport,信息部门部署安装后,可以连接各业务系统数据,将常规的各业务报表,还有周报月报这些,开发成可自动抽取数据并展示的模板,做好一次,每次只要查询即可。
因为这个工具大多为信息部开发报表所用,可能很多人都不太了解!我尽量以简洁易懂的语言,从技术的角度讲讲这个报表工具,操作上为何能省时省人力,并且有可以替代数据透视表的惊艳可视化。
一、用FineReport做一张模板,可以替代N张手工重复劳作的Excel !
为什么这么说?先来了解FineReport的制表原理
1、FineReport的制表原理
做报表首先得有数据,数据哪里来?一个是直接连接业务系统或者数据库的数据,还有可以导入excel文件数据,连好数据后,开始制作模板,类似于做excel表格一样,设计展现的样式,计算的公式,最后在web端展示。
但是和excel不用,excel处理的是一个个数据,finereport制作模板时处理的对象是数据字段,模板中一个单元格放一个数据字段,web端展示时字段扩展。FineReport报表中单元格的扩展是有方向的,可纵向扩展,也可横向扩展,也可以不扩展。
单元格的扩展是针对某一个单元格,当报表主体中绑定了多个单元格时,单元格与单元格之间依靠父子格关系跟随扩展。子格的数据会根据父格的数据进行过滤分组显示,并且还会跟随父格的扩展方向而扩展。
2、三大类报表设计方式,解决日常所有报表需求,并且一表复用。
1)普通模板设计,此者最常用。依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等。比如交叉报表、行式报表、分组报表等等。
2)聚合报表设计,针对不规则大报表。适用于一张模板中显示多个独立模块的报表,几个报表块汇总在一起的复杂报表。
3)决策报表设计,就是表单,也是dashboard,也就是大家常见的各种图表拼接在一起的可视化数据报表。
通过拖拽图表来制作,制作好的dashboard可以自己适配屏幕的大小,多以也可以做成手机端的报表,大屏可视化,下面有细讲。
以下举例一些常见的报表格式:
交叉表行式报表分组报表自由报表3、参数实现数据查询和过滤
查询报表是怎么做呢?在FineReport中,通过设置参数绑定数据字段和过滤的控件(单选框、复选框等等),通过界面输入查询条件来控制报表显示的内容及形式,而后导出打印。
很多人工作上会做周报月报季报等,有些全国性的公司有分公司、门店、办事处。经常性地要做这些重复性很大的报表。那用FineReport就可以集中将每一条数据明细上传到数据库中(填报功能,下面会讲)。在做报表时,做将一些常用的维度“地区”、“时间”、“城市”等等作为一个查询的参数控件,类似Excel中的筛选,导出。基本上一个周报模板,就解决了一些人一年52张手工excel报表的工作量。
4、填报
数据采集是一个很重要的步骤。填报就是向数据库中录入数据,用来收集数据的,就好比你注册网站时提交的邮箱、收集、用户名、密码,都会按照格式存放到数据库中。
填报也需要模板,操作流程如下:
填报模板由控件组成,文本控件、数字控件、密码控件、单复选框、网页、文件等等。控件对应着数据字段。有了填报,就可以收集数据,并且允许用户实现对数据库的增删改。出于数据质量和数据安全的考虑,还可以对填报进入的数据做校验操作。
填报最大的用处是替代了excel收集数据,做好了模板,奖模板链接发送给相关人,填完数据审核过后即可入库,省得excel传来传去,而且是在web端填写,非常方便。
二、不只是报表,还有数据可视化
酷炫的dashboard都需要通过FineReport的表单(决策报表)来设计展现。通过拖拽报表块、图表块和各类控件初步设计界面。
不同于普通报表,普通报表是一个整体,无法实现局部刷新。表单是由各个组件组成,可以实现组件内刷新,即局部刷新。像动态大屏都是全局或者局部刷新的,所以需要用决策报表制作实现。
1、决策报表制作过程
新建表单:FineReport支持新建工作薄,即普通报表模板,还支持新建表单,两种设计模式;
拖入组件:FineReport表单支持多种不同的组件类型,包括报表块、tab块、绝对画布块、参数、图表和控件等等;
定义数据集:定义各个组件数据来源,图表组件数据即可来源于数据集,也可来源于单元格;
设置表单样式:即设置表单的显示样式。
2、数据可视化与交互
当下,数据分析盛行的年代,格子报表枯燥无味,可视化报表才能博得领导赞赏。之前很多网友问如何做可视化,其实,用FineReport自带的H5图表,就可以做出很炫的可视化dashboard。此前提到FineReport良好的开放性,可让技术同事写代码开发,所以在制作时,也可接入Echarts等第三方控件来制作图表。
3、实用而强大的数据地图
finereport有很强大的地图功能:基本地图、GIS地图、热力地图、大数据流向地图等,基本一键生成。
GIS地图基于GIS地图层进行数据展示,支持自定义GIS主题风格,能够与数据表钻取联动。比如省级钻取到市级、县级、街道。
三、总结
篇幅有限,以上只展现了FineReport的一部分功能,很多细节无法展开,感兴趣的可以去官网了解更多。
要说效率,最大的好处就是从数据库中读出数据自动产生报表,且一类报表做成一个固定样式的模板,每次只要同步一下,自动生产周期性的报表,如日报、周报、月报、季报等。 每次按照条件查询,Excel批量导出/打印,少了人力去一个一个用Excel统计汇总。
而且操作上,大多数功能FineReport都封装成模块了,包括写SQL取数,汇总筛选过滤等,基本上都有对应的功能键。像著名的资产负债表,如果按照以往写代码或者写复杂的SQL语句,就有点摧残生命了,而且那天书般的SQL语句要是出点错谁来查,如果数据来自多个源,那就彻底无法解脱了。
其次,在数据处理速度上,由于性能一部分依靠数据库,一部分依靠FineReport的形式报表引擎,相比于Excel的单机效率,几十万行的数据秒出。再者,企业数据库有各种自带或第三方的集群方案,通过堆机器就可以近似于无限的加大数据储存能力。
- ?
报表工具的二次革命-集算报表之理解集算器的作用
晶莹
展开
之前的文章已经大致给大家介绍过大数据计算引擎-润乾集算器了。想必很多人还是心存疑惑,集算器作为大数据分析系统,到底它能做些什么呢?这篇文章,就为大家详细介绍。
降低报表开发难度
降低开发难度从而提高开发效率是集算器的设计初衷,是最容易理解的作用,前面已有粗略介绍。
这方面的细节内容太多,我们会再做一个专门话题详细讲述集算器如何解决报表开发中的各种具体难题以及与常规手段的对比。在这里只做总结性地阐述。
比Java和SQL更易写
如前所述,集算器的设计目标是为了解决报表的数据准备,而目前这个工作一般采用Java或复杂SQL完成,存储过程及中间表也可以算作是SQL。
与Java这类没有提供直接结构化计算的语言相比,采用集合化语法的集算器代码会更为短小,这很容易理解,毕竟集算器基于Java提供了更高层的类库和方法。
短小不仅仅是写得快,而且还能容易理解和排错。一个页面内能看到更多的代码,从而能更完整地理解代码的含义。使用集算器编码时,伪实代码的比例大约是只有1.5:1,绝大多数报表的数据准备算法可以在一个屏幕内显示出来。
而使用Java就很难这样,几十行代码下来仅仅能做个简单的汇总,一个完整的业务逻辑动辄需要几百行代码,翻看到后面时已经忘了前面是怎么做的了。
除了代码本身简短的外,集算器特有的网格式编码和调试方式还能进一步强化这个特色。程序员可以在一行写多句相关的代码,某句长代码不必完全显示出来从而不影响查看算法整体结构,循环可以用更直观的方式呈现,单步执行和单元格变量可以随时查看每一步的结果而提高调试效率。
这些,都可以让程序员专注于数据计算中的业务逻辑而非技术细节。
与SQL这类本身就支持结构化计算的语言相比,集算器完善了对分步计算、集合化、有序计算和对象引用等几方面的支持。对于日期和字串等运算,集算器也比大部分SQL提供了更丰富的方法。
许多情况用SQL也不是写不出来,但不能直接按自然思维实现,很费脑筋,这种代码放时间长了程序员自己都会忘了是怎么写出来的,给将来的维护也造成麻烦。
集算器代码则没有这些问题,符合自然思维习惯,即使是与SQL相同的思路也能更清晰地表达,很容易理解和维护。
比报表中计算更广泛
报表工具一般都可以完成计算列、分组排序等运算。基于非线性报表模型的工具还提供了跨行组和相对格与格集引用方案,可以完成相当复杂的运算。
报表呈现环节的计算是一种状态式的计算。所谓状态式计算,就是把所有计算表达式一次性都写出来,由报表工具根据依赖关系决定计算次序。这种直接把运算写到布局中的好处是很直观,在依赖关系不太复杂时能一目了然地了解各单元格的运算目标。
但是,在依赖关系较为复杂,计算需要分成多步时,这种状态式计算就显得困难了。还有的时候,计算的中间结果并不要呈现,这样就会出现隐藏格。隐藏格不仅将很大程度地破坏状态性运算的直观性,而且还会导致运算效率低下,占用更多内存。
比如要列出销售额占前一半的大客户,这时就有典型的过程性计算,在报表中要使用隐藏行列手段将不该列出来的条目隐藏,而不能直接过滤掉。再比如带明细的分组报表要按汇总值排序,这需要先分组再排序,而采用状态式计算的报表工具无法控制这个次序,这个报表也就无法完成了。
对于这类过程性计算或需要隐藏格的复杂报表,采用集算器在数据准备阶段完成计算,报表只负责呈现及少量的直观计算,可以有效地保留状态式计算的优势。把复杂运算到集算器完成,过程虽然多了一步,但结构更为清晰。
数据准备还能解决动态数据源和数据集的问题。报表使用的数据源一般是在报表工具中配置的,不能根据参数动态选择,而使用集算器数据源时就可以用脚本控制连接不同的数据源。通用查询报表要求数据集取数SQL不能简单地用参数控制,而要整体替换,支持宏的报表工具能够一定程度地解决这个问题,但面对要将宏计算后才能拼进SQL的复杂场景也会感觉困难,而采用集算器数据集则无论是否支持宏、需要多复杂的宏计算都可轻松应对。
数据准备不仅能解决报表中的计算,还能协助处理格式。比如许多报表工具都支持纵向分栏,但很少有报表工具支持横向分栏。对这种需求无法处理,而采用集算器可以方便地将原数据集变换成横向拼接过的数据集。报表工具只要用普遍的模板呈现一个列数更多的数据集即可。再比如许多报表工具不支持末页补足空行,也可以用集算器在返回数据集时补。
一致的多样性数据源支持
报表的数据源并不只是关系数据库,还可能是TXT或json等文件,而文件没有计算能力,所以常常要有一个过程将这些数据导进数据库,增加开发工作量。
如果采用集算器准备数据,则可以直接用这些文件作为数据源去生成报表,不需要导入数据库的过程。
数据库包括NoSQL数据库、文件包括HDFS文件,对于集算器来讲都是数据源。集算器自有的计算能力可以使这些计算能力不一的多样性数据获得通用一致的计算能力。比如文件几乎没有计算能力,MongoDB对JOIN和GROUP运算支持不足,各家SQL对窗口函数的支持程度不同、日期与字串处理能力也普遍不足且风格迥异。这些数据源都能基于集算器采用一致通用的方案来计算,而这将意味着更低的移植成本以及学习难度。
接下来的文章,还将继续为大家介绍大数据计算引擎-润乾集算器。
- ?
报表软件选型时应该知道的
阿尔托纳
展开
前言
近来报表软件、商业智能、OLAP、数据分析等概念非常火热,作为关键基础环节的报表软件在市场上也是层出不穷,让人眼花缭乱,国内外的加起来细数一下,大概有二三十种之多。这些产品看起来实现的功能都差不多,那么,应当怎样选一款满足自己需求的报表软件? 在选型过程中不被厂商的宣传和演示牵着鼻子走?
在多年的报表经营过程中,我们发现许多用户在选择报表软件时会有许多认知误区,本篇将主要针对这些问题提供一些意见和建议供参考。
一个最常见的误区就是报表中间件和报表平台分不清楚,在演示过程中被平台类产品丰富的功能吸引,但其实需求却是要在项目中嵌入使用的报表工具。这一方面可能为多余的功能买单,另一方面还会带来难以集成的问题,多余的功能也如鸡肋一般,很难发挥作用。
要想避免这个问题,首先应该弄清楚需求(敲黑板,需求,需求,需求要明确)。是用于在业务系统中做报表,还是要上跨业务系统的报表管理平台?这两种需求看起来都是要做报表,但其实差别却巨大。
需求为前者时,我们要选中间件型报表工具。报表中间件的特点是报表和中间件,除了要有足够强大的功能将数据以报表和统计图的方式呈现外,还有个很重要的使命是 - 被 ~ 集 ~ 成 ~,快速被集成,为我们完善业务系统的报表模块提供便利。而当需求为后者的情况下,则需要关注报表平台型产品。报表平台是指提供报表、统计图及其他 BI 组件(仪表盘、数据看板等)的组织管理、权限控制等功能的软件系统,重点是功能全面的系统。
在报表行业,厂商提供的产品也大体分为这两类:以中间件形式提交的报表工具和以报表为中心的外围解决方案即报表平台。选择报表软件时,一定先要搞清备选产品是哪一类的,和需求目标不匹配的,做得再炫也不必考虑了。
报表工具
报表工具是细分领域“专而精”的产物,主要解决固定报表的制作。所谓固定报表,是指由技术人员预先定义好取数规则,运算逻辑的报表,后台会有一些较复杂的运算;业务人员只在 web 端查看或简单的增删改数据,不涉及报表结构的修改。固定报表是日常报表开发工作中最常用且工作量最大的报表形式。而对应的,另一种报表形式,自助报表,可由业务人员在 web 端自由拖拽指标字段生成不预先定义好表结构的报表,它能应对一些临时性的简单查询需求。这两种形式从目标用户到应用方式两者都有巨大不同,在选型时一定把固定报表和自助报表分开考虑。本节先针对固定报表提供一些考察点,自助报表的问题在后面的章节会介绍。
表格布局
目前国内主流报表工具采用的表格布局都是类 Excel 的单元格式,其好处是绘制简单方便。而有些早期产品以及国外产品仍采用控件拖拽式布局,就很不好用,绘制带有合并格的复杂格式报表非常繁琐。而且,采用类 Excel 式布局的产品一般都能导入以前用 Excel 画的表,也可以不失真地将报表导出成 Excel,这都是控件式布局产品很难实现的但却非常必要的功能。
复杂报表
报表工具的主要任务就是减少开发工作量,而复杂报表是工作量的重头。
对于报表样式简单,数据来源单一的简单报表,如图 1。几乎所有的报表工具都可以轻松实现(毕竟一个成熟的工具,要是连这样的简单报表都搞不定,也就没啥存在的意义了),没有区分度。但有些报表样式复杂,数据来源多样,统计口径不规则的复杂报表,就不是每家报表工具都容易做出来的了。如图 2,用国外或开源的报表工具就很难做出来,代码量相当大,完全起不到减轻开发工作量的目的。相比之下,采用了非线性报表模型的国产报表工具对付复杂报表的能力要强大得多,报表工具可能是少有的几个国产软件远胜国外软件的企业软件领域了。不过,不同产品在模型细节的支持程度并不一致,还需要针对项目中的复杂报表仔细验证,弄不好工作进程就可能被一两个特别麻烦的报表给卡住。重点的考察模型功能有:多源关联分片、行称是否对称、跨行组的同比环比以及排名计算、重叠分组等不规则分组方案、动态分组层次等。
图 1
图 2
多数据源
报表工具也应该与时俱进,支持多样性数据源,信息化应用越来越广泛了,ERP、CRM、OA、BPM 等系统各种上马,企业数据越来越大,报表也通常需要取到多个数据库多个数据表的数据,所以最直接也是效果最好的,就是报表工具直接支持多数据源关联,而不是先 ETL 做数据仓库等工作之后再取数。
集成性
方便易用的集成性是报表工具的重要指标,也是特别容易在选型时被忽略的指标。有些报表工具(特别是国外的产品)功能很强大,独立使用也是六六六,但在国内跟各个业务系统集成的整体氛围下就水土不服,因为缺失集成性。方便易用的集成性要求报表工具能对应用程序提供友好全面的接口,方便用户与各业务系统无缝对接。能够适应各种环境,能以类库方式完全集成到应用系统中。这样不仅可以提高报表获取数据时与应用系统数据交互的性能,还可以利用服务器的负载均衡等能力提升用户体验。
开放性
灵活的开放性才能适应用户更多特殊的需求,不管是集成商还是终端用户都可以通过丰富的 API 接口,全面地对报表应用进行各种操作,以需要的方式灵活地使用报表。满足用户各种个性化需求的自定义。
性能与容量
决定报表工具生死的往往是性能和容量指标。随着大数据时代的到来,选择报表工具时,性能指标越来越被用户所关注。网络,报表层等都可能成为性能瓶颈。而一款好的报表工具应该尽量绕开可以避免的瓶颈,如报表层就有很大的优化空间。对于报表内常用的多数据源对齐,排名等采用更高性能的 Hash 算法。报表提供缓存机制,包括模板缓存、结果缓存、分页缓存等多种方式,提升报表服务器性能。提供集群缓存同步机制,实现负载均衡的服务器之间跳转访问时的缓存自动同步。
移动端
现在,越来越多的用户想在移动端随时随地查看企业报表,第一时间掌握企业动态。他们往往是拿来主义,要求报表中间件厂商提供完整的移动端 APP 供他们直接使用。但其实这是一个误区,对于移动端 APP 往往是由系统集成商开发并在提供给用户时,适当的做一些客户定制化的功能。而报表只需要具备输出 HTML5 的能力,支持在移动端输出即可。作为中间件应用时,报表工具厂商直接提供的 APP 是没有意义的,没有必要去考察。
美观性
看似重要的美观性其实跟报表工具的直接关系不大。图表是用来直观的展示数据,方便管理者在纷杂的数据中快速判断出业务数据的分布、趋势、占比、同比、环比等变化规律,支持管理者决策。图表类型的数量及是否支持钻取、联动等功能也是评估报表工具的指标之一。美观性对于报表当然很重要,但由于有众多开源图形技术,这方面的比拼就已经不再是报表工具的重点了,报表工具厂商与其花时间精力去追赶,不如直接把好的东西为我所用,这就又回到了“专而精”的话题。所以与其用美观性衡量报表跟图表,不如衡量报表工具对第三方图表的集成性更实际。
价格
最后,但不是最不重要的是报表工具的价格。不过考察产品价格时要同时考察后续报表开发制作的成本,要对比实际拥有成本。比如开源的工具虽然没有购买成本,但实现复杂报表时,背后需要付出很大的工作量,在核算成本时往往是入不敷出,实际拥有成本更高。
报表平台
报表平台应该包括的基本功能包括:报表资源管理、用户管理、数据管理、权限管理、系统外观及报表样式管理、定时调度任务管理以及系统监控等;移动应用,流程填报,也是报表平台必不可少的功能;还有安全机制,运行报表平台时不安装插件、不改变用户的安全设置,这样才对用户是安全的。这些报表平台的常规功能基本每家厂商都具备,用户在考察这些内容时也很少有认知误区,一般不会踩雷,我们就不细说了。这里只介绍一些容易被忽略的功能点。
整合能力
不同企业,功能需求也是千差万别的,即使功能再全面的一款报表平台软件,也逃不开个性化行业定制以及跟现有系统的整合。对于报表平台的集成,主要考虑是否提供相关二次开发接口,可以修改系统风格样式以匹配现有业务系统,是否提供多种单点登录接口,可以使用现有业务系统的组织机构权限机制等。
可组装性
要求平台中的各个功能模块低耦合,可以像积木一样随意拆装。 这样“报表 + 的功能太多了,有很多我都不需要,或者我预算有限,买不起这么多功能怎么办?“的顾虑就可以很愉快的解决了。
后续开发方案
报表业务有天生的不稳定性,导致报表总是没完没了地要修改和新增,不可能一次性做完。那么问题来了:如果有新的报表需求或者原有报表的维护工作由谁负责?厂商?集成商?用户?这个一定要在选型时就考虑清楚这个问题,不然很容易被项目后期维护费用惊到或者出现报表平台不能真正用起来的情况。这里要强调一下,不要寄希望于自助报表(后面会讲到原因)。
交付方式
对于报表平台类产品,有两种交付方式,即产品交付和项目交付。而项目交付,定制解决方案,为平台类产品的主要交付方式。在当下大环境下,IT 实施团队的选型已经成为企业信息化建设成败的关键。但国内供应商不少是报表工具厂商扩大业务而形成的,产品本身还可以,但项目经验少,管理能力弱,所以需要考察的就不仅仅是报表软件的功能点,更多是的要考察做实施项目团队的技术能力,相关行业经验以及项目管理体系和质量。而国外的供应商实施能力就更弱了,可能是由于国外定制服务成本高导致的吧,在缺乏市场定制化解决方案的需求的前提下,缺乏集成性,难以适应国内需求。
自助报表
最后我们来谈一下自助报表。
自助报表也是近年内特别热门的需求,几乎所有的报表平台都提供有这个功能,各大厂商纷纷宣称可以让业务人员拖拽制表,不需要技术人员参与了。
但这里有个巨大的误区。目前市场上的自助报表(或交互式 BI)虽然可以在页面上轻松实现钻取、切片、旋转、分页、自定义指标、排序、各种基本计算(求和,求平均,最大最小值等),与此同时兼具页面友好美观,使用流畅等特点。但是,自助报表能够解决的业务人员需求其实相当少,例如自助报表完全解决不了过程性计算,而大多数报表都需要过程计算来准备数据,比如报表数据模型支持多源运算就是过程计算的一种。不支持关联查询的自助报表,一般只能解决 10% 的业务人员需求,即使有了关联查询也只能解决 20% 到 30%。所以不能对自助报表的期望过高。
关联查询是绝大多数自助报表产品都不支持的能力。所谓关联查询就是需要查询的数据不在数据库的一张物理表中,通过某个主外键关系关联才能获得需要的信息,例如:查询存储金额在 10 万以上的本地储户信息,就需要做多个表的关联运算。传统自助报表不支持关联查询,需要事先建立逻辑或物理宽表把表间关系做死,一旦关联需要发生变化时,只能重新建模,但这就要求有 IT 人员再次参与,业务人员的自助就失去意义了,而这个功能缺失又很可能被炫酷的界面掩盖而被忽略。能否支持关联查询是是考察自助报表功能的关键指标。
有些报表工具也提供自助报表的能力,也可以作为报表中间件的功能组件被集成,这时候就要考察其可集成的能力,即也能像报表中间件一样集成到其他应用系统中使用。如果有集成需求,则要重点考察这方面的能力。
报表软件的用处
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并