C C++最全Java程序员怎样考察报表工具的开发效率_java程序员开发效率 度量,阿里P8C C++架构师谈

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

B3、C2、C3:合计单元格,表达式手动输入:=sum(B2{})

报表结果

imagepng

对于这类简单报表,各工具效率上基本没有什么差异,润乾报表是直接写表达式(也可以拖拽),其他工具有写表达式的,也有拖拽做的,都比较简单。有些工具的可视化的点击操作做得更人性化,体验更好,更适合初级学习人员

示例2:带条件的分组

基于同一个数据表,我们改一下表样,稍微增加一些难度,根据日期字段中的年来分组,看看不同产品的操作上有什么变化

按照年度统计产品的平均售价,单笔采购数量不同、采购时间不同,产品的单价可能不同,产品平均单价=总金额/总数量

结果表样:
imagepng

制作过程

数据集设置

ds1:

SELECTORDERLIST.ORDER_DATE,ORDERLIST.PRODUCT,ORDERLIST.PRICE,ORDERLIST.AMOUNT FROM ORDERLIST

报表模板设计

imagepng

A2:=ds1.group(year(ORDER_DATE);ORDER_DATE:1)+“年”,取字段的年并分组

B1:=ds1.group(PRODUCT;PRODUCT:1),按产品字段分组并设置横向扩展

B2:=ds1.sum(PRICEAMOUNT)/ds1.sum(AMOUNT),先通过PRICEAMOUNT算出金额,再进行汇总,然后除以总数量。

难度稍微增加以后,润乾报表还是只要在单元格里写简单的表达式就可以了,依旧简单。

但有些工具不支持格子里自由写公式和条件,只能在对话框里设置,结果就是拖拽完基础表达式以后,还得打开对话框设置一下条件才可以,比如这个按年分组

imagepng

从这个报表就已经可以看出一些端倪了,ds1.group(year(ORDER_DATE);ORDER_DATE:1)+"年"是写一个这样的表达式,还是每次都多点几步对话框去设置,哪种方法的工作效率更高呢?只考察最简单的情况是看不出这些区别的

示例3:再复杂一些的分组

还是基于这个数据表,我们做个一个格式再复杂一些的表样

按销售人员统计优质订单的情况,优质订单指:回款日期在订单日期30日内且单笔订单金额>=10000

imagepng

制作过程

数据集设置

ds1:select order_date,price,amount,name,re_date from orderlist where substr(order_date,0,4)=‘2012’

报表模板设计

imagepng

A3:=ds1.group(NAME;NAME:1),可以鼠标拖拽,也可以手动输入

B3:=ds1.count()

C3:=ds1.count(price*amount>=10000 and interval(ORDER_DATE,RE_DATE)<=30)

D3:=C3/B3,设置显示格式为“#0.00%”

E3:=ds1.sum(PRICE*amount)

F3:=ds1.sum(PRICE*amount,price*amount>=10000 and interval(ORDER_DATE,RE_DATE)<=30),条件表达式和C3一样,可以在=ds1.sum(PRICE*amount)基础上,直接将条件表达式复制过来

G3:将D3直接复制到G3,单元格引用名称自动变化,显示格式保留

H3:=ds1.count(price*amount>=10000 and interval(ORDER_DATE,RE_DATE)<=30 and month(ORDER_DATE)>=10 and month(ORDER_DATE)<=12),在C3的基础上增加季度判断条件

I3:=H3/B3,设置显示格式为“#0.00%”

J3:=ds1.sum(PRICE*amount,price*amount>=10000 and interval(ORDER_DATE,RE_DATE)<=30 and month(ORDER_DATE)>=10 and month(ORDER_DATE)<=12),在E3的基础上,直接将H3的条件表达式复制过来

K3:将I3直接复制到K3,单元格引用名称自动变化,显示格式保留

到这个例子,是不是已经感觉这些表达式写起来也没有多困难了,即使是初学者,也能轻易看懂并写出来了,是的,有这样的感觉就对了,对于搞计算机的同学,这确实不难

再来看看其他的一些只能通过对话框来设置条件的工具处理这样的情况会怎样

imagepng
imagepng

每增加一个条件,一个and,就得点一次增加,如果要修改,删除,同样得挨个去点,每次设置还都得打开、关闭一次对话框

如果每次都得这样,估计初学者也不会觉得简单而是会感到麻烦了,更别说熟练的老同学了这样无端端多出了好多没必要的操作,会浪费很多的时间,减少很多产出

懂了表达式以后,还是直接写表达式更快更好,可视化操作看上去很美,但效率并不会高

本章小节

从上面三个报表我们可以看出,简单的表样,可视化的对话框设置确实使用体验更好,但格式稍微变复杂一点以后,工程师已经掌握表达式的书写以后,如果仍然还得用对话框就显得繁琐了

而且报表开发人员是技术工种,从初学者到熟手是轻而易举的事情,是否快和方便,要从一个熟手的角度去衡量,而不是初学者,所以考察的时候千万不要掉到生手容易熟手繁琐的操作陷阱中

上面三个报表都是比较初级的报表,我们更多的是从简单的普通操作上来看开发的效率如何,但实际的项目中,报表常常远没有这么简单,很多都会涉及较复杂的计算, 制作这些复杂的报表耗费的时间会更多,也更需要注重效率,所以复杂计算报表的开发效率,也是我们考察的重点

我们继续用两个示例来看下更复杂的报表的开发效率如何考察

示例4侧重于考察报表工具函数的功能,看一些复杂计算场景中,是否有对应的高级函数来直接解决问题,示例5侧重于考察工具处理一些复杂的多步、过程式计算的能力,看处理这些计算是否简单高效

示例4:找出进步最快的3名同学

基于如下数据学生成绩表:

imagepng

进行年度学生成绩汇总,进行班级班名以及和去年成绩对比,找出进步最快的三位同学,形成如下结果:

imagepng

要点:看各工具怎么去做这个计算,看哪个更简单高效

制作过程

参数设置

报表中增加参数nd,默认值为2019,用于接收年份

数据集设置:

ds1:SELECT bj,studentid,yuwen+shuxue+yingyu zf,nd FROM XSCJ where nd=?,问号对应参数表达式:nd,用于对参数对应年度数据

ds2:SELECT bj,studentid,yuwen+shuxue+yingyu zf,nd FROM XSCJ where nd=?,问号对应参数表达式:nd-1,取参数对应上一年数据

报表模板设计:
imagepng

A3、A4单元格合并,按照班级分组,设置显示值表达式:chn(int(value()))+“班”

B3、B4分别取出姓名、分数字段

D3:=count(C3[A3]{C3>$C3})+1,班级内排名

E3:=count(C3[`0]{C3>=$C3})+1,年级排名

F3:=ds2.select(zf,bjA3 && studentidB3),从ds2数据集中取出去年成年,条件直接写在select函数内

G3:=C3-F3,成绩变化

B4:=“班内成绩提升最快的三位同学是:”+string(esproc(“?.m(?.ptop(-3))”,B3{},G3{})),使用润乾内置函数esproc,将K3单元格(名次变化幅度)传入,ptop(-3)取最大的3位的位置,然后用m()函数根据位置取对应的姓名

结果如下:

imagepng

这个例子主要是测试报表工具的一些复杂计算能力,如果报表工具的模型中函数较为丰富且计算能力强,比如润乾报表内置了很多开源SPL计算工具的高级函数,那处理起复杂计算来就会游刃有余

如果函数计算功能不足,那就得通过多步计算,额外在报表中设置辅助计算格才可以完成,比如有些报表工具,需要像下面这样用H列进一步计算需要的数据,然后再隐藏掉

imagepng

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

-1715693738814)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值