欢迎来到天天文库
浏览记录
ID:52881466
大小:876.33 KB
页数:8页
时间:2020-03-31
《润乾集算报表非常规统计之固定分组.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、润乾集算报表非常规统计之固定分组报表开发中,经常会碰到一些需要进行非常规统计的报表,固定分组、可重复分组、组内排序,还包括跨行组计算的报表,甚至有些报表本身无数据来源、以及需要对数据源再计算。这些报表本身具备一定的特殊性,使用常规方法往往难于实现。而集算报表在完成这类特殊统计报表时则比较简单,这里来看下使用集算报表完成固定分组报表的实现过程。所谓固定分组报表是指分组没有规律,可能是分组范围没有规律,也可能分组顺序没有规律,需要报表开发人员事先固定分组的报表。常见的固定分组报表一般有三类:分段固定报表、固定次序分组报表、多层固定次序分组报表。分段固定报表这类报表的特
2、点是分段的区间并未在数据库中存储需要根据相应字段(如年龄、日期)计算,并且每个分段可能会发生变化(如每年节假日所在日期可能不同),经常由用户随意指定。如:统计20-30岁,30-40岁,40-50岁各年龄段的用户数量;每年节假日(春节、端午节、国庆节)期间公路铁路承载的旅客统计。更为特殊的情况下是对段界的要求,有的分段包含段界,有的分段不包含,这样看似特殊的情况可能伴随用户的指定时有发生。下面通过实例说明,报表样式如下:该报表是根据订单表统计各(预置)时间段内,各地区的订单数量、订单金额汇总。其中各时间段范围为:【1996年圣诞前:date<1996-12-251
3、996年圣诞--1997年国庆:1996-12-25<=date<=1997-10-11997年国庆--1998年五一:1997-10-1<=date<=1998-5-11998年五一以后:date>1998-5-1】这里出现了上文提到的段界包含问题,起始和结束两段不包含段界日期,而中间的各个分段则包含。在润乾报表中,其提供的ds.plot()函数可以进行按段分组,而且可以通过该函数的参数控制是否包含边界,对于分组较少并且边界包含规律的分组报表尤其适用。但对于这类段界包含无规律的报表则无法实现。润乾报表本身功能已足够强大,但仍然无法满足需求,其他报表工具实现起来将
4、更加复杂,甚至无法实现。但在集算报表中,这类需求可以得到很好解决。使用集算报表可以通过如下步骤实现。编写集算脚本使用集算脚本编辑器编写集算脚本,这里使用系统默认数据源demo设置脚本参数(包括默认值,用于脚本调试)其中arg1值:?<="1996-12-25",?>="1996-12-25"&&?<="1997-10-1",?>="1996-12-25"&&?<="1998-5-1",?>"1998-5-1"arg2值:1996年圣诞前,1996年圣诞--1997年国庆,1997年国庆--1998年五一,1998年五一以后编写脚本完成按段分组汇总计算A1=conn
5、ect("demo")=A1.query("SELECT订单.订购日期,订单明细.数量,订单明细.单价,订单2明细.折扣,客户.地区FROM订单明细,订单,客户WHERE客户.客户ID=订单.客户IDAND订单.订单ID=订单明细.订单ID")3=A2.enum(arg1.array(),string(订购日期))=A3.(~.groups(地区;count(订购日期):订单数量,sum(单价*数量):订单金4额))5=arg2.array()6=A5.(A4(#).derive(A5.~:区间)).conj()7resultA6A1-A2:连接数据源后,通过sq
6、l完成取数A3:按照指定的日期端参数,根据订购日期进行分组,分组结果如下A4:汇总每个分段中的订单数据A6:增加字段显示时间段名称A7:为报表返回结果集编辑报表模板使用集算报表编辑器,设置数据源,用于报表预览设置参数,并设置默认值新建报表模板并设置集算器数据集,调用上述编辑好的脚本文件其中,dfx文件路径既可以是绝对路径,也可以是相对路径,相对路径是相对选项中配置的dfx主目录的;参数arg1和arg2为脚本参数,param1和param2为报表参数,实际使用中二者可以同名。设置报表模板表达式,完成报表制作可以看到,使用集算器脚本可以快速完成这类特殊的分组报表。而
7、且外置的集算脚本具有可视化的编辑调试环境,编辑好的脚本还可以复用(被其他报表或程序调用)。不过,如果脚本已经调试好,而且不需要复用的时候,要维护两个文件(集算脚本和报表模板)的一致性会比较麻烦,这时候直接使用集算报表的脚本数据集就比较简单了。在脚本数据集中可以分步编写脚本完成计算任务,语法与集算器一致,还可以直接使用报表定义好的数据源和参数。以上述第二个报表需求为例,使用脚本数据集可以这样完成:1.在数据集设置窗口中点击“增加”按钮,弹出数据集类型对话框,选择“脚本数据集”2.在弹出的脚本数据集编辑窗口中编写脚本这里可以看到,在脚本数据集中直接使用了报表中定义好的
8、数据源de
此文档下载收益归作者所有