历史版本3 :文本框实现范围查询 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1.问题描述编辑
我们希望通过这篇文档介绍一种相对简洁而使用方便的范围查询方法,实现可以在用户输入空值时查询全部,输入单值时查询该值,输入范围(用任意字符分隔两个数字即可)时查询范围内数据
如下图,输入 100-150,将销量在 100 到 150 之间的结果查询出来。
再次申明,此处的分隔符为了方便起见,输入任意非数字字符皆可以作为分隔符使用
2.解决思路编辑
利用正则表达式匹配捕捉范围输入的值并将这两个数字代入 SQL 中运算
3.操作步骤编辑
1)数据查询如下:select * from 销量 ${if(len(销量)==0,"",if(len(p)==1,"where 销量 ="+销量,"where 销量 between "+indexofarray(p,1)+" and "+indexofarray(p,2)))}
为方便预览,我们可以为两个参数添加默认值,其中p参数的默认值为=stringfetch($销量,"\\d+"),使用此参数需添加常见函数集合插件,此函数可以返回使用正则表达匹配到的数据,结果为一个数组。
2)设计报表如下:
3)设置参数面板,销量的控件设置为文本控件,如需设置输入规则,可以参考正则表达文档,此处不设
4)模板>模板参数,设置模板参数 p,p1的默认值为公式:stringfetch($销量,"\\d+")
5)保存预览,pc端效果如下(支持任意单个分隔符):