对于经常制作报表的人来说,最痛苦的事情莫过于漫天的复杂报表需求了: 每天来自各个部门的不同需求千奇百怪,什么绩效表、提升表、考勤表、报销款项表、日报周报等等,最最折磨人的是还需要进行分类汇总、对比汇总、明细汇总等,堆成山的报表需求几乎占据了报表人的所有时间(包括加班)。 最近就有一个做财务的朋友跟我抱怨,每个月做的报表不说可以绕地球几圈,关键是重复报表制作起来相当的枯燥机械,天天对着Excel取数汇总,很容易失去对工作的热情,时间和感情双双被浪费。 其实面对这些重复复杂的报表需求,只要学会了批量制作报表,就能够减少80%的制表时间,鼠标轻轻一点就能生成同类型复杂报表,平时只要做一份模板,需要的时候就调度出来自动生成,是不是相当方便轻松? 想要实现批量报表的工具很多,这里我用一款半自助化的报表工具FineReport来演示一下,如何利用制作报表模板的技巧,减少我们的报表工作量: 1.数据集复用FineReport对数据的操作,是将数据从数据库中提取出来作为“数据集”,然后再用于报表模板的设计和数据的展现集合。这样做的好处是能将不同数据库中的数据直接整合到一起,置于内存的数据处理性能也比较快。 在开发报表时经常会遇到需要复用已有数据集的情况,比如今天提取的一个数据集1个月前提取过。笨办法就是把以前的数据集打开,复制取数的sql语句,然后复制粘贴,虽然也比较费时,但比重新输入要好很多。 但是其他数据集的复用就特别麻烦了,特别是内置数据集。在原电脑上建立的数据库连接,如果换一台电脑这个链接就会失效,就看不了模板。这时候就可以直接将该模板的数据集定义成内置数据集,这样该模板就可以在任何电脑上访问了。 这里推荐一个又快又不容易出错的方法——notepad++,它的好处体现在两个方面:
2.编辑sql优化专业的报表工具是通过写sql来提取数据的,比如FineReport。 一般来说,我们取数都是从其他地方的sql语句粘贴过来,比较麻烦。而设计器内部的sql编辑器没有智能设置,且显示区域较小,缺乏像navicat等自动联想、自动检测错误等人性化功能,导致开发报表时在设计器内部直接编写sql语句很麻烦。 这个时候就可以安装一款“高级数据库查询”插件,该插件提供了简化sql输入、无缝对接sql可视化编辑工具的能力。
对比 默认sql编辑窗口:固定大小,代码无法自动美化: 高级数据库查询:可全屏展现,自动美化代码:
3.单元格部分属性复用很多时候我们能在别的模板中看到喜欢的设计,比如文字配色、背景色、边框设置、条件属性设置、超链效果等等,然后就想复制过来,但是一步步设置比较麻烦,希望能想复制粘贴一样简单地操作就能完成,其实只需要crtl+B就可复制格式。 但对于扩展、条件属性、超链、控件等不能实现,直接把全部内容和设置直接复制过来还需要再调整,往往我们只想要复制它众多属性中的一个,那么这里推荐使用一款插件——可选择性粘贴,可将单元格的一下部分单独粘贴:
4.决策报表中组件复用决策报表,是专为解决驾驶舱类报表而开发的,当制作大屏或驾驶舱时,也可以复用已有demo中的整个模块,也可以复用其中的组件。 比如下面这个展示项目阶段及节点时间的模块,实际上使用了好几十个控件叠加起来才可以有这样的显示效果。如果要自己一个一个叠加实现需要花费非常非常多的时间和精力才能做好,而且还需要不断调试组建的大小和相对位置。 但frm里支持对多个组件的同时复制粘贴,并且可以一起放缩大小,保持整体比例和和各组件相对位置不变。 最后,一句话总结。对于复杂高频的报表,尤其是企业报表需求,使用专用的报表工具,再掌握一些提高效率的技巧,绝对事半工倍。 |
|