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

目录:

1.问题描述编辑

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

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

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 销量

222

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

222

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

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

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

5)保存预览,pc端效果如下(支持任意单个分隔符):
222

4.移动端效果编辑

1)APP效果

222

2)H5效果
222

5. 已完成模板编辑

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

点击下载模板