用复选框动态实现多层分组
分组报表是所有报表当中最普通,最常见的报表类型,如果分组的字段及个数都不确定,需要通过复选框选择来进行分组,这时该如何制作报表呢,下面通过一个简单的例子来实现。
第一步,新建报表,报表样式如下:
在此报表中,我们要根据产品名称、产品ID、供应商ID进行选择分组。在报表中添加3个参数arg1,arg2和arg3分别对应着产品ID、产品名称、供应商ID。
第二步,建立参数模板,样式如下:
其中B1单元格设置如下:
B1的开值为1,对应的主报表中A2单元格=if(arg1==1,ds1.group(产品名称,false),”"),该表达式的意思为如果该复选框被选中,则传过来的参数arg1值为1,这时按照产品名称进行分组,否则置空,为空时隐藏该列,隐藏列表达式为if(value()==”",true,false)
C1和 D1 单元格也设置同样的编辑风格,开值分别为2和3。
第三步,发布报表,查看结果
当只选择产品名称进行分组时,效果如下:
如果3个字段都选中,效果如下:
这样我们就实现了通过复选框动态的进行多层分组的需求。