您的位置:首页 > 其它

润乾报表利用动态宏实现根据字符串参数顺序确定多层分组顺序

2016-11-24 10:06 886 查看
有时客户需要根据参数来确定多层分组的分组顺序,我们可以用动态宏来实现,我们来看一个简单的例子利用动态宏实现根据字符串参数顺序确定多层分组顺序.zip
第一步:设计报表如下,



第二步:设置参数,



第三步:设置动态宏,



第四步:输入不同参数预览,









附group()函数说明:

根据分组表达式,从数据集中选出一组组集。

语法: datasetName.group( <selectExp>, , <filterExp> ) //适用于不需要排序或数据集中已排好序datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})

参数说明:

selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推

descExp 分组前记录的排序顺序,true为逆序,false为顺序

filterExp 过滤表达式

sortExp 分组前记录的排序依据表达式

groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等 groupDescExp 组排序顺序,true为逆序,false为顺序

rootGroupExp 是否root数据集表达式

返回值: 一组数据的集合,数据类型由selectExp的运算结果来决定

示例:

例1:ds1.group(class) 把数据集ds1中所有记录按照class字段进行分组,并返回每组的class值组成的集合

例2:ds1.group(class, true ) 把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,并返回每组的class值组成的集合

例3:ds1.group(class,false,sex=='1') 从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,然后根据class进行分组,并返回每组的class值组成的集合

例4:ds1.group(class, true, sex=='1', id ) 从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,然后根据class进行分组,并返回每组的class值组成的集合

例5:ds1.group(省份,true,,,ds1.sum(工业产值),true) 对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),然后按照这个汇总值对组进行逆序排列

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息