设为首页 加入收藏

TOP

润乾报表实现预置分组报表及改进(二)
2014-11-24 00:34:18 来源: 作者: 【 】 浏览:23
Tags:报表 实现 预置 分组 改进
分开,则会使报表制作变得清晰、简单。

为解决这些问题,润乾公司对润乾报表进行了完善,推出润乾集算报表5.0版,在保留了润乾报表已有优势后,还在其中内置了独立的计算引擎:集算器,用于解决数据源准备问题。在集算报表中可以将复杂的数据计算(数据源准备)工作交由集算器完成,可将其视为报表的计算层;而报表本身只负责接收计算结果后进行展现(有时包括一些简单计算),从而将数据源准备和报表呈现分开,使得报表制作更为清晰。

下面用集算报表再实现上述三个例子:

按段分组报表

与润乾报表实现时不同之处在于,这里考虑边界无规律的情况,即:

【1996年圣诞前:date < 1996-12-25

1996年圣诞--1997年国庆:1996-12-25 <=date <= 1997-10-1

1997年国庆--1998年五一:1997-10-1 <= date<= 1998-5-1

1998年五一以后:date>1998-5-1】

起始和结束两段不包含段界日期,而中间的各个分段则包含。

编写计算脚本

首先使用集算器编写计算脚本,完成分组并返回分组汇总结果:

\

A2:按照arg1指定的分段进行分组A1:取出订单明细表数据

A3:再按照地区分组,并进行分组汇总计算订单数量和订单金额

A5:为结果集增加时间段字段,即每个分段的显示名称,如:“1996年圣诞前”、“1998年五一以后”

A6:为报表返回的ResultSet

报表调用

使用集算报表设计器,新建报表,使用“集算器”数据集类型,选择上面编辑好的集算脚本(按段分组.dfx):

\

其中,arg1、arg2为集算脚本参数,param1和param2为报表参数。

设置报表模板及其表达式如下:

\

在报表中只进行简单的分组汇总,即可完成报表的制作。

使用集算报表实现的最大好处是灵活,无论段界包含与否,均可以使用P.enum()函数实现。所以这里看到,在集算报表中将数据准备(集算脚本)和报表呈现(报表模板)分开带来的好处,在计算层通过集算器完备的计算体系完成数据源准备的工作,在展现层通过报表模板专司展现,层次清晰、实现简单。

下面给出剩余两类报表的实现方法,其他不再赘述。

固定次序分组报表

编写集算脚本

\ A8:按照预置地区顺序对位分组,保证地区顺序满足要求A6:增加地区字段,并在A9中根据城市判断并填充地区信息

A9:计算各组汇总值

A10:为报表返回结果集

报表调用

\

设置报表模板及表达式

\

相对润乾报表的实现,在集算报表中可以逐步(分步编写代码)实现,从而避免过于冗长的表达式带来的编写和维护问题;而且集算器对集合运算的有效支持使得实现更加简单,如这里通过P.align()函数对订单数据按照固定顺序的地区集合进行对位分组,继而完成汇总的代码就体现了对集合运算支持的有效性和简单性。无论对于开发实现,还是后期报表维护都非常容易。

多层固定次序分组报表

编写计算脚本

\ 在A8中按照指定的城市顺序排序(此时地区也已有序),最后通过A9将排序后的结果集(明细数据)返回给报表。

报表调用

\

设置报表模板及表达式

\

本例则进一步体现了集算报表中内置的集算器的强大计算能力,对于无法直接在报表工具中完成的多层固定顺序的分组计算,在集算器中通过前面提到的灵活、分步以及本例中完备的计算能力等特点,使实现变得非常简单。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇机房收费系统之报表(二) 下一篇QlikView报表显示连续若干个月内..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: