3.1 新建模板
新建普通报表,新建一个数据集ds1,sql语句:SELECT ${col} FROM 销量
点击刷新;设置参数col,默认值为*,查询出所有数据。如下图所示:
3.2 表样设计
由于不确定用户选择的字段个数,因此制作模板时需要拖入所有字段。此默认参数即为查询出全部,我们将该表的5个字段依次拖入模板中,并设置数据列属性为列表;
另外不确定用户会选择哪些字段,因此拖入的字段不能用固定的列名。选中数据列所在单元格,将列名改为列序号,例如下图A2:
同理B2、C2、D2、E2数据列分别改为:#2、#3、#4、#5;数据设置均设置为:列表。
注:由于列是不固定的,所以要将数据列的名称换成#1,#2,#数字代表数据对应的第几列,#1表示第一列的数据。
表头设置,右击A1单元格插入公式=INDEXOFARRAY(split($col,","),1),将$col参数转换成数组,返回数组里的第一个的值,B1、C1、D1、E1分别返回第二、三、四、五个的值,
所以B1单元格使用公式=INDEXOFARRAY(split($col,","),2),以此类推……
如下图:
3.3 报表边框和表头背景设置
给A2-E2增加条件属性,点击要改变的属性选择边框:编辑添加外部边框;类型选择公式,在公式中输入:len($$$)!=0,即单元格有数据的话显示边框。如下图:
给A1-E1增加条件属性,点击要改变的属性选择背景和边框,类型选择公式,在公式中输入:len($$$)!=0,即单元格有数据的话显示背景和边框。
注:公式len($$$)!=0中,如果单元格数据类型为字符串,则公式应为len('$$$')!=0。
3.4 参数面板设置
设置参数面板,col参数生成控件。点击控件,选择下拉复选框控件;控件值为空;
设置数据字典的类型为公式,实际值输入公式=TABLEDATAFIELDS("ds1"),如下图所示: