web报表软件FineReport之动态格间运算

楼主
欢迎找我唠嗑
现今的企业从数据库中取得数据后,往往都需要提供一些计算方法,对数据进行一些分析处理,例如求和,平均,统计个数等都是基础的数据处理。而同期比,环比,排名,占比,累计这些涉及到同一列数据之间的运算,我们称之为跨行组运算。例如环比,是将本期数据与相邻的上期数据进行比较,而本期数据与上期数据都是来自于同一列数据,这是跨行计算。同比,是将本期数据与上一年同期内每个数据作比较,例如本年5月的销售额比较上年5月的销售额,这两条比较的对象也来自于同一列数据,但又不是相邻,分属于本年和上年两个不同的组,这是跨组计算,具体如图2.27所示:

图2.27动态计算示意图


而由于报表工具制作报表,返回的结果集是动态的,也就是说我们在设计界面中只能够了解到这个区域获取的具体是某个数据集的一列,但是这一列将返回的数据内容和总的数据条数并无法确定。这就使得跨行组运算成为必要的报表实现手段。

绝大多数的报表工具都直接内置了基础的计算功能,例如对某一固定列进行全局的计算汇总,获取组内的小计,全部总计等,但是对于跨行组的运算就很难实现。个别工具能够支持较为简单的跨行运算,但是跨组运算则无法支持。即使是通过SQL或者対整列取出最大值等方法获取到排名,第一名等数据,也是具有很大的局限性。如果逻辑再复杂一些,例如获取2009年5月销售额超过1000万的5个分公司的数据,传统型的工具只能说是束手无策。

上面我们提到了,同比,环比,占比累积分析等数据的运算是我们在报表常见的一些基本分析方法。基于格子界面中数据扩展的特性,即设计界面与返回数据的一对多的关系,FineReport提供了一整套运算体系,用于扩展后数据的定位与相互引用计算,这就是层次坐标,通俗一点定义即动态格间运算。

图2.28体现了同比,环比,排名运算:

图2.28复杂跨行运算
由报表的设计图(图2.29),可以看到同比,环比,组内排名,跨组的总排名,都是通过一些相对特别的公式,也就是我们所说的层次坐标公式来实现的:
图2.29报表设计图



图2.30简单体现了数据的累计与占比:
图2.30累计占比示意图


     除了以上的运算,层次坐标公式还能够支持带条件的数据汇总,图2.31中计算的是当前年份内,订单总额超过10万的月份共有几个:

图2.31 条件设置图

分享扩散:

沙发
发表于 2014-9-19 11:04:43
请沙发呀~~这个功能很实用的,我也只用过简单的
板凳
发表于 2014-9-19 11:11:00
板凳一枚,暂时没用到此功能,先收藏了。
地板
发表于 2014-9-22 16:53:04
前面光铺垫就写那么大一长段。。。。直接点层次坐标公式不就ok了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

4回帖数 1关注人数 3620浏览人数
最后回复于:2014-9-22 16:55

返回顶部 返回列表