下拉复选多值模糊查询

  • 文档创建者:axing
  • 编辑次数:6次
  • 最近更新:axing 于 2019-11-21
  • 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)设置控件添加数据字典

    image.png

    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 关键字注入,如下:

    image.png

    4. 预览效果

    4.1 PC 端预览效果

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

    4.2 移动端预览效果

    1)App 效果

    222

    2)H5 效果

    222


    5. 已完成模板

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

    点击下载模板

    附件列表


    主题: 参数应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!