怎样考察报表工具的开发效率?

PCL 区域生长分割【2026最新版】 区域生长算法原理介绍、代码实现以及一个具体实验场景的应用案例进一步实现将分割结果的分类保存至本地文件夹。最近一次更新时间为:2026年5月4日。 阅读详情

工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的

但不同的工具,开发方式不同,效率自然也分高下。效率高的,不仅做起来简单方便,还能给项目上节省很多成本;效率低的,开发起来费事费力,不仅工程师受不了,常年累月无形中浪费掉的人工成本,企业也受不了

那怎么才能选一个开发效率高的呢?开发效率应该怎么考察呢?

很多人在考察报表工具时,会关注工具是不是有流畅的可视化操作界面(厂家也喜欢宣传这一点,零编码、拖拖拽拽做报表等等)。确实,有这种界面的工具很容易上手,能迅速开工。但是,报表工具通常是要长期使用的,这时候的重点其实是考察工具对付复杂场景的开发效率,因为长期使用后,总会碰到很多复杂的情况,而这种情况即便少,也是更费时费力的。工具一时易上手的特性并不是重点,因为程序员很快就会变成熟手

下面我们用润乾报表,通过几个由简到繁的示例来看看报表工具的开发效率应该怎么考察

示例 1:简单分组

根据如下数据表,制作报表

54b70d7c0ec082d4ea155d73101f7699.png

按销售员、类别统计订单数量,并增加合计,结果报表:

ce19ff4626b2b6d330b47501a005ebd5.png

制作过程

数据集设置

ds1: select * from orderlist

报表模板设计

d1a7e710c9ea0928d04902e3747ce395.png

A2:=ds1.group(NAME;NAME:1),按照销售员分组,可以手动输入公式,也可以报表设计器右下角选择分组方式拖拽:

69df28d5abec64f5f1b3152a4a8b0cea.png

B1:=ds1.group(CATEGORY;CATEGORY:1),操作方式同 A2,设置扩展方式为横向

B2:设计器右下角,选择汇总,汇总方式选择“计数”,拖拽任意字段到 B2 单元格

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

报表结果

ab9047393cb4f69b256279b41f196183.png

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

示例 2:带条件的分组

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

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

结果表样:

226cfad26aede623013a3e3062e01b3b.png

制作过程

数据集设置

ds1:

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

报表模板设计

f4438f71a76a143c30541eda28348d2f.png

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

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

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

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

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

b9b91d5a93e474e8f0fb4c468c4c5801.png

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

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

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

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

82b6a5dfba9615886bc39eb3212c7a76.png

制作过程

数据集设置

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

报表模板设计

130d4808d24d3962471c9bb4998ba6f4.png

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,单元格引用名称自动变化,显示格式保留

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

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

727fb380e6f83b4e57dad084244337f8.png

57ab5511f8ccd4672d8731d1c91bc08e.png

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

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

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

小节

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

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

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

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

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

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

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

222161e9ba25397de360703c525fa8ae.png

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

975f04fed124323c716b8cc26ba977f2.png

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

制作过程

参数设置

报表中增加参数 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,取参数对应上一年数据

报表模板设计:

7b6354ced8beb6481091896052ffaa53.png

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,bj==A3 && studentid==B3),从 ds2 数据集中取出去年成年,条件直接写在 select 函数内

G3:=C3-F3,成绩变化

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

结果如下:

7c4f0c0bdcc30860125e1294cb37e54e.png

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

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

ff27f2bd8593583403ebd84f69a30497.png

这些额外辅助计算格,不仅增加了开发工作量,数据量大的时候,还会影响报表的性能

其实这款报表已经不错,提供有层次坐标之类的东西,用隐藏格还能做出来,有些报表工具连这个都没有,只能自己在外部写代码实现了,工作效率会大受影响

示例 5:找出指定时间内的大客户

从如下销售数据中:

68a70560884a56574eb1b681542f63f7.png

取出指定时段的大客户。所谓大客户,定义为销售额占前一半的客户,也就是把客户销售额从大到小排序后,前面若干个客户的合计销售额构成总销售的一半,这些客户被称为大客户

报表结果:

7edfd9c80df234277c66c2b72a26def1.png

制作过程

数据集设置

润乾报表内置了高效的开源计算工具 SPL,可以通过内置的脚本更简单高效的计算这些复杂的多步计算,把计算结果当做数据集直接供报表来使用,脚本如下:

b94ad8a303e78e17e8c758db66d4c61f.png

A3:对销售额进行求和操作并处以 2,取出总金额的一半,用于判断大客户。B3 设置初始值为 0,用于做销售额累加操作

A4:对销售额进行累加,取出累加金额大于 A3 中对应的 A2 的序号

A5:根据序号取 A2 中对应的值,并做为结果集返回给报表

报表模板设计

3bad2d6c4708c368c9b1ac95f63a743c.png

报表结果

43e69bf86d8676ede71aaa8f0d4caee5.png

从这个例子可以看出,原本需要在报表中做大量计算才能做出的报表,经过脚本准备数据后,只需要在报表中直接取数就可以了

如果没有脚本,那就只能在报表中完成这样的计算,写起来麻烦,需要设置很多辅助格,同时增大了实现难度,对人员要求变高了很多(意味着成本上升),而且性能也远没有脚本的好

4cc63def3e88f8e15a70c79c7433239c.png

本示例只是举了一个很小的需要分步计算的例子,就已经可以看出不同工具的设计效率了,一个简单易懂的脚本搞定,还是一堆辅助计算格 + 复杂的表达式来完成,开发效率差异是显而易见的

实际的项目中的复杂报表,对原始数据的处理和计算,远远要比本例复杂的多,如果有脚本功能,那可以用脚本来处理这些计算,不仅写起来简单,算起来还快,如果没有脚本功能,那就只能用成百上千行的复杂 SQL,存储过程或者高级语言去写了,那样开发效率就更低了

所以我们考察报表工具对于复杂报表的开发效率时,可以看看自己的项目中有没有需要写复杂的 SQL、存储过程或者更复杂的数据来源处理的报表,拿来找各工具测试验证下,看看它们的效率都如何

价格也是个重要因素

价格和考察开发效率也有关系吗?

还真有,考察开发效率的最终目的不就是为了节省时间和人工成本吗?都是为了省成本,那价格上省出来的成本其实更直接。工具的购买价格和开发效率要放在一起综合考虑才能得到总体的成本

比如大家可能都会想到使用不要钱的开源报表,购买价格为 0,但开发效率太低(面对我国的复杂报表),结果总体成本却不低。而商用报表工具虽然要花钱,但开发效率能提高很多,有可能总体成本会更低。

当然,价格很容易对比,只要别忘了就行了

总结

怎么考察报表的开发效率,相信大家看过上面的考察要点和示例以后,应该都比较清楚了,其实并不难,那就是实际去用一用,看看一个熟练的工程师用起来繁琐不繁琐,测测项目上格式和计算复杂的报表各个工具做起来困难不困难,用过试过就找到答案了

同时,价钱也挺重要

感兴趣的小伙伴,请识别右侧二维码与我们联系

微信号|RUNQIAN_RAQSOFT

1784f3306e0e3416ea1819bbb2f59efb.png

欢迎来【乾学院】的原文中留言,发表您的观点!工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的

但不同的工具,开发方式不同,效率自然也分高下。效率高的,不仅做起来简单方便,还能给项目上节省很多成本;效率低的,开发起来费事费力,不仅工程师受不了,常年累月无形中浪费掉的人工成本,企业也受不了

那怎么才能选一个开发效率高的呢?开发效率应该怎么考察呢?

很多人在考察报表工具时,会关注工具是不是有流畅的可视化操作界面(厂家也喜欢宣传这一点,零编码、拖拖拽拽做报表等等)。确实,有这种界面的工具很容易上手,能迅速开工。但是,报表工具通常是要长期使用的,这时候的重点其实是考察工具对付复杂场景的开发效率,因为长期使用后,总会碰到很多复杂的情况,而这种情况即便少,也是更费时费力的。工具一时易上手的特性并不是重点,因为程序员很快就会变成熟手

下面我们用润乾报表,通过几个由简到繁的示例来看看报表工具的开发效率应该怎么考察

示例 1:简单分组

根据如下数据表,制作报表

264a583db82bcc9a9a8bf60784dd8f7b.png

按销售员、类别统计订单数量,并增加合计,结果报表:

52983d98f5b96350a1ea17ae8479a247.png

制作过程

数据集设置

ds1: select * from orderlist

报表模板设计

2271a27f51431adcab7f342f7dfe1520.png

A2:=ds1.group(NAME;NAME:1),按照销售员分组,可以手动输入公式,也可以报表设计器右下角选择分组方式拖拽:

bdfdb44ccddcc3f8b37fc382b4026bd8.png

B1:=ds1.group(CATEGORY;CATEGORY:1),操作方式同 A2,设置扩展方式为横向

B2:设计器右下角,选择汇总,汇总方式选择“计数”,拖拽任意字段到 B2 单元格

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

报表结果

3c0b1e12fc4eb165dcc01592bf714501.png

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

示例 2:带条件的分组

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

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

结果表样:

7f03054adca1cc4fa610ac457df44c2e.png

制作过程

数据集设置

ds1:

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

报表模板设计

c5aef3fba6c4f16968a1eed8ecdf2da3.png

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

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

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

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

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

020fc318307688d415cd9dd1d8b840b4.png

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

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

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

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

7ad9f5defb0f3e82f8c27e5c7a6edaab.png

制作过程

数据集设置

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

报表模板设计

9fbfe7f792f163809b3ed5815dd6f074.png

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,单元格引用名称自动变化,显示格式保留

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

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

a93f4a61c306541ac79655f015a3f1ee.png

f686c63afd68764831654b20774f0fa6.png

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

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

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

小节

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

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

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

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

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

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

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

e60c0de0f8fccc1d40f126c4a5c7e065.png

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

fc20c357df4f30ca3ea8f2eb38395c81.png

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

制作过程

参数设置

报表中增加参数 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,取参数对应上一年数据

报表模板设计:

a1a86ac99ba27f97ae3f2d45a7590380.png

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,bj==A3 && studentid==B3),从 ds2 数据集中取出去年成年,条件直接写在 select 函数内

G3:=C3-F3,成绩变化

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

结果如下:

d6c648ff3923afa012e90af4d17bce21.png

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

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

287f27582622101334d6120b107994f0.png

这些额外辅助计算格,不仅增加了开发工作量,数据量大的时候,还会影响报表的性能

其实这款报表已经不错,提供有层次坐标之类的东西,用隐藏格还能做出来,有些报表工具连这个都没有,只能自己在外部写代码实现了,工作效率会大受影响

示例 5:找出指定时间内的大客户

从如下销售数据中:

dc058423672cc2212a41acbf93c40c8b.png

取出指定时段的大客户。所谓大客户,定义为销售额占前一半的客户,也就是把客户销售额从大到小排序后,前面若干个客户的合计销售额构成总销售的一半,这些客户被称为大客户

报表结果:

4c2cd8fb02c8ac0400937d9f16a9d154.png

制作过程

数据集设置

润乾报表内置了高效的开源计算工具 SPL,可以通过内置的脚本更简单高效的计算这些复杂的多步计算,把计算结果当做数据集直接供报表来使用,脚本如下:

44a6f9af41ab6f26830af8453d98b54f.png

A3:对销售额进行求和操作并处以 2,取出总金额的一半,用于判断大客户。B3 设置初始值为 0,用于做销售额累加操作

A4:对销售额进行累加,取出累加金额大于 A3 中对应的 A2 的序号

A5:根据序号取 A2 中对应的值,并做为结果集返回给报表

报表模板设计

290ec1621ba04733f000b108f6fbca52.png

报表结果

0316c2059ceabe92597a7988436e5375.png

从这个例子可以看出,原本需要在报表中做大量计算才能做出的报表,经过脚本准备数据后,只需要在报表中直接取数就可以了

如果没有脚本,那就只能在报表中完成这样的计算,写起来麻烦,需要设置很多辅助格,同时增大了实现难度,对人员要求变高了很多(意味着成本上升),而且性能也远没有脚本的好

3797d586c9ed669cf8e14ab301f23868.png

本示例只是举了一个很小的需要分步计算的例子,就已经可以看出不同工具的设计效率了,一个简单易懂的脚本搞定,还是一堆辅助计算格 + 复杂的表达式来完成,开发效率差异是显而易见的

实际的项目中的复杂报表,对原始数据的处理和计算,远远要比本例复杂的多,如果有脚本功能,那可以用脚本来处理这些计算,不仅写起来简单,算起来还快,如果没有脚本功能,那就只能用成百上千行的复杂 SQL,存储过程或者高级语言去写了,那样开发效率就更低了

所以我们考察报表工具对于复杂报表的开发效率时,可以看看自己的项目中有没有需要写复杂的 SQL、存储过程或者更复杂的数据来源处理的报表,拿来找各工具测试验证下,看看它们的效率都如何

价格也是个重要因素

价格和考察开发效率也有关系吗?

还真有,考察开发效率的最终目的不就是为了节省时间和人工成本吗?都是为了省成本,那价格上省出来的成本其实更直接。工具的购买价格和开发效率要放在一起综合考虑才能得到总体的成本

比如大家可能都会想到使用不要钱的开源报表,购买价格为 0,但开发效率太低(面对我国的复杂报表),结果总体成本却不低。而商用报表工具虽然要花钱,但开发效率能提高很多,有可能总体成本会更低。

当然,价格很容易对比,只要别忘了就行了

总结

怎么考察报表的开发效率,相信大家看过上面的考察要点和示例以后,应该都比较清楚了,其实并不难,那就是实际去用一用,看看一个熟练的工程师用起来繁琐不繁琐,测测项目上格式和计算复杂的报表各个工具做起来困难不困难,用过试过就找到答案了

同时,价钱也挺重要

感兴趣的小伙伴,请识别右侧二维码与我们联系

微信号|RUNQIAN_RAQSOFT

b89ad90ec4ba119b66a424dbd5eef7d8.png

欢迎来【乾学院】的原文中留言,发表您的观点!

【06】C#入门到精通——C# 多个 .cs文件项目 同一项目下添加多个 .cs文件 本文介绍了如何将C#游戏开发中的代码从单个.cs文件拆分到多个.cs文件中,以提升代码的可维护性和可读性。文章演示了在Visual Studio中创建Hero类和ShowInfo类的具体步骤:通过右键项目名添加新建类,将原有代码分别剪切到对应的类文件中,并自动生成命名空间。拆分后需要在Program.cs中通过"using"指令引用这些类,最后通过运行测试验证功能正常。这种模块化代码组织方式能有效解决单一文件代码过长、结构混乱的问题。 阅读详情

相关推荐

告别模糊与偏色:使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战心得

本文详细介绍了如何使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战经验。从调试环境搭建到3A算法优化,再到画质增强模块的深度调参,提供了全面的技术指导和参数建议,帮助工程师解决噪声、色偏和细节模糊等常见问题,显著提升成像质量。

weixin_28729205的博客 452

报表方案考察

报表方案 1.JasperReports http://community.jaspersoft.com/project/jasperreports-library OpenReports http://sourceforge.net/projects/oreports Pentaho Reportin http://wiki.pentaho.com/display

zouyongjin的专栏 572

JavaSpringBoot + VUE 相关开发环境配置合集

1.Java环境-JDK安装 参照:Java基础1-环境篇:JDK安装与环境变量配置 Java基础1-环境篇:JDK安装与环境变量配置_第一段代码的博客-优快云博客_jdk 2.Web服务器-Tomcat安装 原创Java服务器Tomcat安装和配置 3.Maven(后面为了项目兼容性,使用了3.0.5版本) 原创Maven安装和配置(Maven3.0.5) 4.nginx 原创nginx轻量级Web服务器安装和配置 5 数据库mysql 原创数据库Mysql安装和配置 ...

第一段代码的博客 3163

Java程序员怎样考察报表工具的开发效率

不同的工具,开发方式不同,效率自然也分高下。效率高的,不仅做起来简单方便,还能给项目上节省很多成本;效率低的,开发起来费事费力,不仅工程师受不了,常年累月无形中浪费掉的人工成本,企业也受不了 那怎么才能选一个开发效率高的呢?开发效率应该怎么考察呢? 很多人在考察报表工具时,会关注工具是不是有流畅的可视化操作界面(厂家也喜欢宣传这一点,零编...

java李阳勇的博客 1万+

AI搜索优化(GEO)实战指南:抢占智能对话流量入口

AI SEO,是针对生成式AI平台(如DeepSeek、豆包、Kimi等)的优化策略,旨在通过适配AI算法对内容的理解和引用逻辑,提升品牌在AI生成答案中的可见性与权威性,从而在对话式搜索场景中抢占流量入口。:强化内容经验性(Experience)、专业性(Expertise)、权威性(Authoritativeness)、可信度(Trustworthiness)内容需避免夸大描述,提供可验证的细节(如数据、用户评价)。

Baixue5209的博客 6775

AI原生应用在UGC内容审核中的实战经验

AI原生应用(AI-Native Application)——以机器学习模型为核心驱动力,深度整合数据、算法、工程架构的完整系统——为破解这一三角难题提供了全新范式。全链路数据驱动:从数据采集、模型训练到决策优化,形成闭环自治系统,无需人工规则干预多模态深度理解:同时处理文本、图像、音频、视频等多类型内容,理解语义而非简单匹配特征自适应进化能力:通过人机协同反馈持续学习新型违规模式,模型周级迭代成为常态审核效率提升300%:单条视频审核耗时从2.3秒降至0.7秒。

AI算力网络与通信的博客 1149

Java程序员怎样考察报表工具的开发效率_java程序员开发效率 度量

工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的但不同的工具,开发方式不同,效率自然也分高下。效率高的,不仅做起来简单方便,还能给项目上节省很多成本;效率低的,开发起来费事费力,不仅工程师受不了,常年累月无形中浪费掉的人工成本,企业也受不了看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面。

2401_84557750的博客 1025

【项目实战】Java9的新特性模块化(Module)

Java 9引入了模块化系统,称为"Java Platform Module System"(JPMS)这个系统允许将Java程序分成模块,每个模块都有自己的规范,可以明确地声明它依赖于哪些其他模块,并且只能访问被其所依赖的模块暴露的API。这样可以模块化就是增加了更高级别的聚合,是Package的封装体。Package是一些类路径名字的约定,而模块是一个或多个Package组成的封装体。

奶爸的编程之路,也就一周冷个三天 1896

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

B3、C2、C3:合计单元格,表达式手动输入:=sum(B2{})报表结果对于这类简单报表,各工具效率上基本没有什么差异,润乾报表是直接写表达式(也可以拖拽),其他工具有写表达式的,也有拖拽做的,都比较简单。有些工具的可视化的点击操作做得更人性化,体验更好,更适合初级学习人员。

2401_84978667的博客 964

黑猫带你学Nand第11篇:万字长文带你了解NandFlash的数据保持原理及特性(Data Retention)

TATTAT:Trap-assistedtunneling,陷阱辅助隧穿,也有叫法称为电荷陷阱现象。这是一种物理现象,它发生在非挥发性存储器,如NAND闪存。在这种效应中,存储在闪存单元浮动栅极上的电荷(电子)由于隧道氧化物中捕获的电荷形成的电场影响,导致电荷通过隧道效应从一个能级隧穿到另一个能级,从而造成电荷泄漏。这种电荷泄漏是导致闪存数据保持问题的主要原因之一,因为它可以改变存储在闪存单元中的电荷量,进而改变其阈值电压水平,最终可能导致数据错误。在NANDFlash中,电荷被存储在浮置栅极上。

黑猫奥利奥的博客 1095

【x265编码器】章节1——x265的lookahead模块分析

目录一、模块功能二、lookahead模块分析1.调用流程2.代码分析Lookahead::addPicture()Lookahead::checkLookaheadQueue()Lookahead::getDecidedPicture()Lookahead::findJob()Lookahead::slicetypeDecide()PreLookaheadGroup::processTasksLookaheadTLD::lowresIntraEstimate()Lookahead::slicetypeAn

vcvdv123的博客 4万+

高效报表工具选型与推荐

文章目录Pre示例分享示例1:简单分组示例2:带条件的分组示例3:再复杂一些的分组示例4:找出进步最快的3名同学示例5:找出指定时间内的大客户小结价格也是个重要因素总结润乾报表资料 Pre 工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的 但不同的工具,开发方式不同,效率自然也分高下。效率高的,不仅做起来简单方便,还能给项目上节省很多成本;效率低的,开发起来费事费力,不仅工程师受不了,

小工匠 4万+

基于Simulink建模仿真的滑模控制的磁悬浮轴承稳定控制仿真

磁悬浮轴承(Magnetic Bearing)利用电磁力来支撑和定位转子,无需机械接触,因此在高速旋转设备中具有广泛应用。滑模控制(Sliding Mode Control, SMC)是一种鲁棒性强的非线性控制方法,适用于磁悬浮轴承的精确控制。以下是基于Simulink的磁悬浮轴承滑模控制系统的详细设计与仿真步骤。通过上述步骤,设计并实现了基于 Simulink 和 Control System Toolbox 的磁悬浮轴承滑模控制系统。

MHD0815的博客 778

这国产报表工具,是真的太好用了!

工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的但不同的工具,开发方...

weixin_44421461的博客 242

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

这款国产报表工具,是真的太好用了

工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的但不同的工具,开发方...

Java技术栈,分享最主流的Java技术 507

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

还在纠结报表工具的选型么?来看看这个

还是那句话,如果有个功能无穷好,价格无穷低的产品,那选型当然就不用纠结了润乾报表就是接近这个理想的存在,它的功能接近无穷好,因为它一直是行业的功能标杆,它的价格也接近无穷低,因为它一年3W就可以不限数量、节点的去使用最高版本,平摊下来单套的成本可能都不过百功能全面、低价透明的润乾,已经逐渐让大家都形成了一种共识选报表,就按着润乾报表的功能和价格去选就行了,报表工具的选型,再也没什么好纠结的了。...

字母哥博客 3264

还在纠结报表工具选型吗

还是那句话,如果有个功能无穷好,价格无穷低的产品,那选型当然就不用纠结了润乾报表就是接近这个理想的存在,它的功能接近无穷好,因为它一直是行业的功能标杆,它的价格也接近无穷低,因为它一年3W就可以不限数量、节点的去使用最高版本,平摊下来单套的成本可能都不过百功能全面、低价透明的润乾,已经逐渐让大家都形成了一种共识:选报表,就按着润乾报表的功能和价格去选就行了,报表工具的选型,再也没什么好纠结的了。...

石臻说AI(szzdzhp001) 【原名 石臻臻的杂货铺】 1万+

自助报表和 BI 能解决多少事?

报表总是得做新的改旧的,总是没完没了的,这的确是一个让人头疼的事情,而且这还是一个合理的、让人无法规避的事情。躲不了,那就得想办法解决,不能让它一直困扰我们,更不能让成本白白被消耗掉,传统的单一报表工具形式已经明显无力解决这个难题,而要采用文中提到的组合拳才可以有效应对。

学Java,找哪吒 1万+

还在纠结报表工具选型吗?

数据信息化的应用与项目中,通常都会遇到报表需求,数量少的,零星需要做的,可能手工就搞定了,数量多的,长期做的,基本都会选用一个报表工具,因为长期做,就必须考虑成本了,找一个称手的工具来降本增效是非常重要的报表工具有那么多,那就得选型,选起来复杂就会纠结,选起来简单就没什么纠结的了比如想选一台二手车,这事情就很复杂,很难,得找懂车的人来选,发动机功能好不好,漏不漏油,有没有出过事故,各部位的情况都得...

过往记忆大数据 496

最新BI报表工具对比选型指标及重点注意事项---BI报表工具选型的那些事

列表在文章最后有下载方式 前言 报表工具是一个接近 20 年的产物了 但是,直到现在,在各种数据信息化的系统中,报表工具的作用,不仅没有褪色,反而是因为信息化需求的增大、数据的增多,以及报表工具本身迭代后越来越方便好用,使得它的使用范围越发的广泛了 报表选型也是一个老生常谈的话题了 但是,直到现在,依然有很多项目组,很多技术人员并不知道该怎样正确的选一个合适的报表,一个不会让自己在项目后期掉坑里的报表 本文全文 9990 字,大概需要 10-20 分钟阅读,旨在把这么多年总结下来的一些选型.

terry_chengq的博客 2290

应用系统中的报表开发成本知多少?

报表的数据准备很多时候一个简单的 SQL 语句就搞定了,但还有 20% 的情况中,数据准备工作就没有那么好做了,一些过程式的多步骤复杂计算,常常要写很长的多层嵌套的 SQL 或者存储过程才能搞定,如果数据来源再复杂一些,要对各类数据源混算,一些非关系数据库或者文本数据源都不支持 SQL 了,那还得用 JAVA 等语言来写,SQL 10 几行能写完的,JAVA 恨不得写出几百行来,编码难度和效率就更糟糕了。BI 自助报表现在很流行,而且都宣称零编码,不需要技术人员,只要有需求就谁都能做分析,做报表。

XQ20220201_的博客 916
上一篇: 国外的大龄程序员在干什么?
下一篇: 冥想 ! 冥想 !
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值