高港区企业网站建设,wordpress别名时间戳,wordpress用户注册页面,网站推广公司排名点击查看前言
工具#xff0c;本身就是为了解决各种重复性工作效率低下的问题而诞生的产物#xff0c;报表工具也是工具#xff0c;所以它的诞生#xff0c;它的使命#xff0c;也是为了提效#xff01;是为了提升数据信息化项目中报表的开发效率而诞生的
但不同的工具#xf…前言
工具本身就是为了解决各种重复性工作效率低下的问题而诞生的产物报表工具也是工具所以它的诞生它的使命也是为了提效是为了提升数据信息化项目中报表的开发效率而诞生的
但不同的工具开发方式不同效率自然也分高下。效率高的不仅做起来简单方便还能给项目上节省很多成本效率低的开发起来费事费力不仅工程师受不了常年累月无形中浪费掉的人工成本企业也受不了
怎样选择开发效率高的报表工具
很多人在考察报表工具时会关注工具是不是有流畅的可视化操作界面厂家也喜欢宣传这一点零编码、拖拖拽拽做报表等等。确实有这种界面的工具很容易上手能迅速开工。但是报表工具通常是要长期使用的这时候的重点其实是考察工具对付复杂场景的开发效率因为长期使用后总会碰到很多复杂的情况而这种情况即便少也是更费时费力的。工具一时易上手的特性并不是重点因为程序员很快就会变成熟手
润乾报表
下面我们用润乾报表通过几个由简到繁的示例来看看报表工具的开发效率应该怎么考察
示例1简单分组
根据如下数据表制作报表 按销售员、类别统计订单数量并增加合计结果报表
制作过程
数据集设置
ds1: select * from orderlist
报表模板设计 A2ds1.group(NAME;NAME:1)按照销售员分组可以手动输入公式也可以报表设计器右下角选择分组方式拖拽 B1ds1.group(CATEGORY;CATEGORY:1)操作方式同A2设置扩展方式为横向
B2设计器右下角选择汇总汇总方式选择“计数”拖拽任意字段到B2单元格
B3、C2、C3合计单元格表达式手动输入sum(B2{})
报表结果 对于这类简单报表各工具效率上基本没有什么差异润乾报表是直接写表达式也可以拖拽其他工具有写表达式的也有拖拽做的都比较简单。有些工具的可视化的点击操作做得更人性化体验更好更适合初级学习人员
示例2带条件的分组
基于同一个数据表我们改一下表样稍微增加一些难度根据日期字段中的年来分组看看不同产品的操作上有什么变化
按照年度统计产品的平均售价单笔采购数量不同、采购时间不同产品的单价可能不同产品平均单价总金额/总数量
结果表样
制作过程
数据集设置
ds1
SELECTORDERLIST.ORDER_DATE,ORDERLIST.PRODUCT,ORDERLIST.PRICE,ORDERLIST.AMOUNT FROM ORDERLIST
报表模板设计 A2ds1.group(year(ORDER_DATE);ORDER_DATE:1)“年”取字段的年并分组
B1ds1.group(PRODUCT;PRODUCT:1)按产品字段分组并设置横向扩展
B2ds1.sum(PRICEAMOUNT)/ds1.sum(AMOUNT)先通过PRICEAMOUNT算出金额再进行汇总然后除以总数量。
难度稍微增加以后润乾报表还是只要在单元格里写简单的表达式就可以了依旧简单。
但有些工具不支持格子里自由写公式和条件只能在对话框里设置结果就是拖拽完基础表达式以后还得打开对话框设置一下条件才可以比如这个按年分组 从这个报表就已经可以看出一些端倪了ds1.group(year(ORDER_DATE);ORDER_DATE:1)年是写一个这样的表达式还是每次都多点几步对话框去设置哪种方法的工作效率更高呢只考察最简单的情况是看不出这些区别的
示例3再复杂一些的分组
还是基于这个数据表我们做个一个格式再复杂一些的表样
按销售人员统计优质订单的情况优质订单指回款日期在订单日期30日内且单笔订单金额10000 制作过程
数据集设置
ds1select order_date,price,amount,name,re_date from orderlist where substr(order_date,0,4)‘2012’
报表模板设计 A3ds1.group(NAME;NAME:1)可以鼠标拖拽也可以手动输入
B3ds1.count()
C3ds1.count(price*amount10000 and interval(ORDER_DATE,RE_DATE)30)
D3C3/B3设置显示格式为“#0.00%”
E3ds1.sum(PRICE*amount)
F3ds1.sum(PRICE*amount,price*amount10000 and interval(ORDER_DATE,RE_DATE)30)条件表达式和C3一样可以在ds1.sum(PRICE*amount)基础上直接将条件表达式复制过来
G3将D3直接复制到G3单元格引用名称自动变化显示格式保留
H3ds1.count(price*amount10000 and interval(ORDER_DATE,RE_DATE)30 and month(ORDER_DATE)10 and month(ORDER_DATE)12)在C3的基础上增加季度判断条件
I3H3/B3设置显示格式为“#0.00%”
J3ds1.sum(PRICE*amount,price*amount10000 and interval(ORDER_DATE,RE_DATE)30 and month(ORDER_DATE)10 and month(ORDER_DATE)12)在E3的基础上直接将H3的条件表达式复制过来
K3将I3直接复制到K3单元格引用名称自动变化显示格式保留
到这个例子是不是已经感觉这些表达式写起来也没有多困难了即使是初学者也能轻易看懂并写出来了是的有这样的感觉就对了对于搞计算机的同学这确实不难
再来看看其他的一些只能通过对话框来设置条件的工具处理这样的情况会怎样 每增加一个条件一个and就得点一次增加如果要修改删除同样得挨个去点每次设置还都得打开、关闭一次对话框
如果每次都得这样估计初学者也不会觉得简单而是会感到麻烦了更别说熟练的老同学了这样无端端多出了好多没必要的操作会浪费很多的时间减少很多产出
懂了表达式以后还是直接写表达式更快更好可视化操作看上去很美但效率并不会高
本章小节
从上面三个报表我们可以看出简单的表样可视化的对话框设置确实使用体验更好但格式稍微变复杂一点以后工程师已经掌握表达式的书写以后如果仍然还得用对话框就显得繁琐了
而且报表开发人员是技术工种从初学者到熟手是轻而易举的事情是否快和方便要从一个熟手的角度去衡量而不是初学者所以考察的时候千万不要掉到生手容易熟手繁琐的操作陷阱中
上面三个报表都是比较初级的报表我们更多的是从简单的普通操作上来看开发的效率如何但实际的项目中报表常常远没有这么简单很多都会涉及较复杂的计算 制作这些复杂的报表耗费的时间会更多也更需要注重效率所以复杂计算报表的开发效率也是我们考察的重点
我们继续用两个示例来看下更复杂的报表的开发效率如何考察
示例4侧重于考察报表工具函数的功能看一些复杂计算场景中是否有对应的高级函数来直接解决问题示例5侧重于考察工具处理一些复杂的多步、过程式计算的能力看处理这些计算是否简单高效
示例4找出进步最快的3名同学
基于如下数据学生成绩表 进行年度学生成绩汇总进行班级班名以及和去年成绩对比找出进步最快的三位同学形成如下结果 要点看各工具怎么去做这个计算看哪个更简单高效
制作过程
参数设置
报表中增加参数nd默认值为2019用于接收年份
数据集设置
ds1SELECT bj,studentid,yuwenshuxueyingyu zf,nd FROM XSCJ where nd?问号对应参数表达式nd用于对参数对应年度数据
ds2SELECT bj,studentid,yuwenshuxueyingyu zf,nd FROM XSCJ where nd?问号对应参数表达式nd-1取参数对应上一年数据
报表模板设计
A3、A4单元格合并按照班级分组设置显示值表达式chn(int(value()))“班”
B3、B4分别取出姓名、分数字段
D3count(C3[A3]{C3$C3})1班级内排名
E3count(C3[0]{C3$C3})1年级排名
F3ds2.select(zf,bjA3 studentidB3)从ds2数据集中取出去年成年条件直接写在select函数内
G3C3-F3成绩变化
B4“班内成绩提升最快的三位同学是”string(esproc(“?.m(?.ptop(-3))”,B3{},G3{}))使用润乾内置函数esproc将K3单元格名次变化幅度传入,ptop(-3)取最大的3位的位置然后用m()函数根据位置取对应的姓名
结果如下 这个例子主要是测试报表工具的一些复杂计算能力如果报表工具的模型中函数较为丰富且计算能力强比如润乾报表内置了很多开源SPL计算工具的高级函数那处理起复杂计算来就会游刃有余
如果函数计算功能不足那就得通过多步计算额外在报表中设置辅助计算格才可以完成比如有些报表工具需要像下面这样用H列进一步计算需要的数据然后再隐藏掉 这些额外辅助计算格不仅增加了开发工作量数据量大的时候还会影响报表的性能
其实这款报表已经不错提供有层次坐标之类的东西用隐藏格还能做出来有些报表工具连这个都没有只能自己在外部写代码实现了工作效率会大受影响
示例5找出指定时间内的大客户
从如下销售数据中 取出指定时段的大客户。所谓大客户定义为销售额占前一半的客户也就是把客户销售额从大到小排序后前面若干个客户的合计销售额构成总销售的一半这些客户被称为大客户
报表结果
制作过程
数据集设置
润乾报表内置了高效的开源计算工具SPL可以通过内置的脚本更简单高效的计算这些复杂的多步计算把计算结果当做数据集直接供报表来使用脚本如下 A3对销售额进行求和操作并处以2取出总金额的一半用于判断大客户。B3设置初始值为0用于做销售额累加操作
A4对销售额进行累加取出累加金额大于A3中对应的A2的序号
A5根据序号取A2中对应的值并做为结果集返回给报表
报表模板设计 报表结果
从这个例子可以看出原本需要在报表中做大量计算才能做出的报表经过脚本准备数据后只需要在报表中直接取数就可以了
如果没有脚本那就只能在报表中完成这样的计算写起来麻烦需要设置很多辅助格同时增大了实现难度对人员要求变高了很多意味着成本上升而且性能也远没有脚本的好 本示例只是举了一个很小的需要分步计算的例子就已经可以看出不同工具的设计效率了一个简单易懂的脚本搞定还是一堆辅助计算格复杂的表达式来完成开发效率差异是显而易见的
实际的项目中的复杂报表对原始数据的处理和计算远远要比本例复杂的多如果有脚本功能那可以用脚本来处理这些计算不仅写起来简单算起来还快如果没有脚本功能那就只能用成百上千行的复杂SQL存储过程或者高级语言去写了那样开发效率就更低了
所以我们考察报表工具对于复杂报表的开发效率时可以看看自己的项目中有没有需要写复杂的SQL、存储过程或者更复杂的数据来源处理的报表拿来找各工具测试验证下看看它们的效率都如何
价格也是个重要因素
价格和考察开发效率也有关系吗
还真有考察开发效率的最终目的不就是为了节省时间和人工成本吗都是为了省成本那价格上省出来的成本其实更直接。工具的购买价格和开发效率要放在一起综合考虑才能得到总体的成本
比如大家可能都会想到使用不要钱的开源报表购买价格为0但开发效率太低面对我国的复杂报表结果总体成本却不低。而商用报表工具虽然要花钱但开发效率能提高很多有可能总体成本会更低。
当然价格很容易对比只要别忘了就行了
总结
怎么考察报表的开发效率相信大家看过上面的考察要点和示例以后应该都比较清楚了其实并不难那就是实际去用一用看看一个熟练的工程师用起来繁琐不繁琐测测项目上格式和计算复杂的报表各个工具做起来困难不困难用过试过就找到答案了同时价钱也挺重要