文本框实现范围查询

  • 文档创建者:axing
  • 编辑次数:6次
  • 最近更新:胡透透 于 2019-12-03
  • 1.问题描述

    如何在一个文本框里输入一个数字范围,将范围内的结果查询出来呢?

    如下图,输入 100~150,将销量在 100 到 150 之间的结果查询出来。
    image.png


    2.解决思路

    1)利用正则表达式规范文本框输入

    2)通过识别分隔符,将参数分成前后两个数字代入 SQL 中运算


    3.操作步骤

    1)数据查询如下

    SELECT * FROM 销量 where 1=1 ${IF(len(p1)==0,"and 销量="+销量,IF(len(销量)==0,"","and 销量 between "+replace(销量,p1," and ")))} order by 销量

         给参数p1设置值:

    GREPARRAY(split($销量,""),REVERSE(REGEXP(item,"[0-9]")))

    image.png

    2)设计报表如下,A2 单元格设置为列表:

    image.png

    3)设置参数面板,销量的控件设置为文本控件,自定义文本框填写规则,填入正则表达式:^\d+([^\d]?\d+|)$

         该正则表达式允许输入数字或者数字中间存在一个分隔符
    image.png

    4)模板>模板参数,设置模板参数 p1,p1 的默认值为公式:GREPARRAY(split($销量,""),REVERSE(REGEXP(item,"[0-9]")))
    image.png

    5)保存预览,pc端效果如下(支持任意单个分隔符):
    2019-12-03_12-26-27.gif


    4.移动端效果

    1)App 效果

    222

    2)H5 效果
    222


    5. 已完成模板


    已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\文本框实现范围查询.cpt

    文本框实现范围查询.cpt

    附件列表


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