最新历史版本 :文本框实现范围查询 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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