归并分组
一、报表实例
如果把第一节的报表做些变化,变成下面的报表,该如何做呢?
该报表和第一节的报表很类似,所不同的是分组规则发生了变化,把“东北”组和“华北”组合并成了一组,组名改成“北方地区”;把“华南”组和“西南”组合并成一组,组名改成“南部地区”;把“华东”组和“西北”组合并成了一组,组名改为“其它”。
这种人为地把某几组合并成一组,且合并规则并无规律,需要逐组枚举的报表,我们称为归并分组的报表。
下面我们看看该报表如何设计:
二、设计过程
1、引用数据集demo_订单明细表
2、编辑报表
(1)A3单元格表达式:=demo_订单明细表.enumGroup(true,地区=='东北' or 地区=='华北',"北方地区",地区=='华南' or 地区=='西南',"南部地区","其它")
(2)B3单元格表达式:=demo_订单明细表.group(城市,false)
(3)C3单元格表达式:=demo_订单明细表.sum(数量*单价),显示格式:¥#,##0.00
3、 保存预览
此报表保存为“地区销售统计表3”,预览结果如下:
三、小结
归并分组
人为地把某几组合并成一组,且合并规则并无规律,需要逐组枚举的报表,我们称为归并分组的报表。
从这个报表可以看出,核心部分在A3格,利用enumGroup()函数代替了group()函数,归并分组就是利用enumGroup函数来实现的。
下面我们看一下该函数的介绍。
enumGroup()
函数说明: 根据表达式的不同计算结果,返回不同的值,然后按这些值进行分组
本函数从左到右计算,先出现的表达式先算,如果出现满足的表达式,则返回相应的结果,后面的不再计算。如果没有一个表达式满足条件,而且有缺省值表达式,则返回缺省值,否则返回null。
语法: datasetName.enumGroup({hasNullGroup{,termExp1,resultExp1{,term2,resultExp2{,...{,defaultExp}}}}})
参数说明:
hasNullGroup 布尔表达式,true返回空组,false不返回空组
termExp(n) 条件表达式
resultExp(n) 返回结果表达式
defaultExp 缺省值表达式,如果所有表达式结果都不满足,则返回本表达式的计算结果
示例:
例:ds1.enumGroup(true,类别ID==1 or 类别ID==3,"副食品",类别ID==6,"肉类","其他") 表示,将数据集ds1中,满足“类别ID==1”或者“类别ID==3”的记录归到“副食品”组中,满足“类别ID==6”的记录归到“肉类”组中,其余的记录归到“其他”组中。