资讯详情

为什么用了大牌工具后报表开发依然头疼

因为使用了错误的报告工具,或者没有使用正确的姿势。

疼在哪里?

报告工具不是为了解决手工开发报告效率低、难度大等令人头痛的问题吗?如何使用大型工具会头痛,因为功能不能解决这些问题?

不,并不是

好的报表工具确实可以很好地解决制表方面的困难,

,在应用程序中,80%的数据源和计算相对简单,许多简单SQL陈述已经完成,但在20%的情况下,数据准备工作并不那么容易。一些过程多步复杂的计算往往需要写长的多层嵌套SQL或者只有在存储过程中才能完成。如果数据源更复杂,则应混算各种数据源,不支持一些非关系数据库或文本数据源SQL那还得用JAVA等语言写,SQL 能写十几行的,JAVA迫不及待地,编码的难度和效率就更差了

无尽的报告加剧了头痛

报告随需而动的业务属性决定了其不稳定的特性。随时会出现新的查询统计需求,要么做新的,要么修改旧的。

如果又遇上复杂计算的,那就又得硬写存储过程和JAVA如果没有好的办法,继续头痛

因为以前复杂的数据准备是存储过程或JAVA编写,导致报告模块、数据库和应用程序高度耦合,开发人员不能随意移动终端数据库,权限和安全是问题,更改存储过程将非常困难,JAVA代码可以随意更改,但更改后必须重新编译。应用程序必须反复停止。修改和维护也很头疼

这些无尽的报告使项目永远无法完成,高成本一直在增加。这是许多软件开发公司头疼的问题

怎么办

准备写数据的集算器快速计算

集算器,流行的数据计算工具

imagepng

让我们来看看两个小例子

1 报告需要持续上升超过 5 日股及上涨天数

制表时,这样的报表只需要设计几个网格,非常简单,但数据准备并不简单。这些数据的计算必须花费大部分工作量

用SQL如果算,要写三层查询。

select code,max(risenum)-1 maxRiseDays from  (  select code,count(1) risenum from   (     select code,changeSign,sum(changeSign) over(partition by code order by ddate) unRiseDays from     (         select                code,               ddate,               case when price>=lag(price) over(partition by code order by ddate)               then 0 else 1 end changeSign         from stock_record      )   )   group by code,unRiseDays ) group by code having max(risenum) > 5 

用开源集算器写作要简单得多

A
1 =connect@l(“orcl”).query@x(“select * from stock_record order by ddate”)
2 =A1.group(code)
3 =A2.new(code,~.group@i(price < price[-1]).max(~.len())-1:maxrisedays) 计算每只股票连续上涨的天数
4 =A3.select(maxrisedays>=5) 选择合格的记录

2 列出每个用户最后一次登录间隔

SQL的大致写法

WITH TT AS  (SELECT RANK() OVER(PARTITION BY uid ORDER BY logtime DESC) rk, T.*  FROM t_loginT) SELECT uid,(SELECT TT.logtime FROM TT where TT.uid=TTT.uid and TT.rk=1)   -(SELET TT.logtim FROM TT WHERE TT.uid=TTT.uid and TT.rk=2) interval FROM t_loginTTTT GROUP BY uid 

开源集算器的写法

A
1 =t_login.groups(uid;top(2,-logtime)) 最后两个登录记录
2 =A1.new(uid,#2(1).logtime-#2(2).logtime:interval) 计算间隔

一两个困难可能节省不了多少时间,一年四季都在做项目。如果这么多复杂的计算场景使用开源集算器,可以节省多少时间?

完全工具化的应对是无穷无尽的

洗衣机发明之前,每一次洗衣服,都是一次头痛的经历

洗衣机发明后,不用担心洗了多少次。

工具化是解决频繁复杂劳动问题的好

无休止的报告新需求和修改要求无法消除,必须采用工具化的方法解决

,报表工具本身解决了频繁制表效率低下的问题

,集算器可以解决频繁和困难的数据准备问题

全面的工具化可以彻底解决从数据准备到报告制作的所有头痛问题

此外,用集算器代替存储过程和JAVA之后,由于集算器的脚本写在报表文件中或与报表文件一起存储,报表应用程序可以从数据库和整个应用程序中解耦,集算器的脚本是解释和执行的,自然拥有,也可以省去频繁修改时每次编译的麻烦

对集算器协助报表开发感兴趣的学生可参考 http://c.raqsoft.com.cn/article/1639703872560

直接使用润乾报表更方便

润乾报表集成了集算器,可以直接使用集算器的相关功能,不仅省去了集成的麻烦,而且额外方便

报表直接使用集算器结果作为数据集,无缝对接

集算器函数也可用于报告,以提高开发效率

集算器中的一些高级函数也可以直接用于报表的单元格,使计算过程更加简单,提高报表本身的开发效率

例如,以下单元格表达式:

表达式:=班级排名上升最快的三个学生是: string(esproc(“?.m(?.ptop(-3))”,B3{},K3{}),这个单元格,,有很多方法,比如排名,先排名变化范围,然后根据范围排名获得前三名,但这种做法增加辅助单元格,计算过程有点麻烦,但直接使用先进函数的集算器非常简单,将 K3 传入单元格(排名变化幅度),ptop(-3) 取最大的 3 然后使用位置 m() 函数根据位置取对应的名称,就可以了

大报表功能,提高报表性能/h4>

润乾结合集算器独创的双异步线程方案,可以很好的解决清单式大报表的性能问题,比传统的数据库分页技术解决方案效果更好,更快

另外润乾报表一直以来都是报表行业的领导者,更是性价比高的代表,不仅质冠商用,而且价怼开源,

结语

头痛是因为现有的报表工具不能解决全部难题,耗费大量时间成本的、需要硬编码的复杂数据准备场景,就是目前很多项目上的大难题。解决这类频繁的、复杂的难题,关键的办法就是工具化,要么集成开源集算器,要么直接采用支持数据准备的润乾报表,难开发的就都简单了,效率也自然提升了,就不会再那么头痛了

润乾报表资料

  • 润乾报表官网
  • 润乾报表下载

欢迎对润乾报表有兴趣的加小助手(VX号:RUNQIAN_RAQSOFT),进技术交流群

标签: selet传感器b08系列

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台