润乾报表——筛选器多选时的传参数据类型

    技术2022-07-10  155

    在使用润乾开发报表时,往往需要使用“参数模板”创建筛选器,控制另一张报表数据的显示。 一般情况下,单选筛选器只需要通过字符串等类型的变量将结果传递给展示表的某个参数(这个参数的数据类型与上述变量相同)即可。 当筛选器设置为可多选时,可有两种方式进行传参:

    方式一:将变量和参数设置为“字符串”

    此时传递的结果是:字符串"选项1,选项2,选项3" 数据集语法中的where条件如下:

    where (case when ? is null then column1=column1 else position(column1 in ?)<>0 end )

    或者

    where (? is null or position(column1 in ?)<>0) case when ? is null then column1=column1 :当筛选器未进行勾选时,默认显示全部数据;else position(column1 in ?)<>0 :筛选器多选时,选择column1字段值在字符串"选项1,选项2,选项3"中的记录;例如:如果column1=选项1,那么position(‘选项1’ in ‘选项1,选项2,选项3’)<>0;

    方式一:将变量和参数设置为“字符串组”

    此时传递的结果是:字符串组"选项1",“选项2”,“选项3” 数据集语法中的where条件如下:

    where (case when ? is null then column1=column1 else column1 in (?) end )

    或者

    where (? is null or column1 in (?))

    where column1 in (?) 相当于 where column1 in (‘选项1,选项2,选项3’),过滤结果是column1字段值为选项1或选项2或选项3的数据行 注意:在润乾设计器的早期版本中,空“字符串组”返回的不是null,而是"","",""。此时用when ? is null就会报错。判断是否为空需要用:?.replace(/,/g,’’)=’’,其中,g代表每遇到一次逗号,就替换为空值

    Processed: 0.011, SQL: 10