历史版本5 :下拉复选框多值模糊查询 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

使用下拉复选框选择多个值后,如何实现按照每个值去模糊查询,如下:

222

2. 解决思路编辑

通过 SQL 来处理,不同的数据库处理方法不一样,下面分别介绍。

3. 解决步骤编辑

3.1 Oracle 数据库解决方案


主要使用 regexp_like()函数来解决。

1)新建数据查询(使用 Oracle 数据库内置的 emp 表)

select * from emp where regexp_like(ename,'${name}')

注:查询语句中没有%号。

222

2)报表设计如下:

222

3)设置控件添加数据字典

222

4)设置控件返回值类型为字符串,分隔符为 | 符号。

222

5)保存预览即可。

3.2 MySQL 数据库解决方案

MySQL 实现方式与 Oracle类似,不同的是要使用rlike关键字,如:

select * from emp where ename rlike '${name}'

注:查询语句中没有%号。

或者使用 regexp 关键字,如:

select * from emp where ename regexp '${name}'

注:查询语句中没有%号。

其他步骤与 Oracle 方案一样。

3.3 SQL Server 数据库解决方案

SQL Server 没有类似的关键字来解决,只能通过老办法拼接字符串。

数据查询如下,

select * from emp where ename like '%${name}%'

注:查询语句中有%号。

下拉复选框返回值类型为字符串,分割符为%' or ename like '%

222

其他步骤与 Oracle 方案一致。

此方案不仅适用 SQL Server,也适用其它数据库。

3.4 注意事项

如果出现以下提示:

222

则是系统开启了 SQL 防注入,可在考虑安全后取消 or 关键字注入,如下:

222

4. 预览效果编辑

4.1 PC 端预览效果

保存模板,点击预览,实现效果如描述中所示。

4.2 移动端预览效果

1)App 效果

222

2)H5 效果

222


5. 已完成模板编辑

已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\MultiValue\下拉复选模糊查询.cpt

点击下载模板