文本控件可以输入多个值进行查询吗

我在数据集里设置好了用户id参数,这个参数的输入形式是文本控件,如果想要查询两个以上用户的信息,可以 实现在文本控件中输入多个用户ID 的值进行查询吗


下拉框复选可以实现这个功能,但是数据过多,且文本框运用更便利一点

FineReport Amber0102 发布于 2020-7-29 17:55 (编辑于 2020-7-29 18:01)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
3
zsh331Lv8专家互助
发布于2020-7-29 18:50

可以,但是对用户的输入要求非常高,【必须】按照下面的格式输入才行。

注意内容以【;】分开,参考:1100;1212;1222

select * from table where 1=1 ${if(len(uid)=0,""," and 列名 in ('"+replace(uid,";","','")+"')")}

image.png

  • Amber0102 Amber0102(提问者) 感谢,这个方法很有效
    2020-07-30 09:07 
  • bigpanda bigpanda 如果是多个字符串 该怎么处理呢?
    2020-12-11 18:14 
最佳回答
1
jongwangLv6中级互助
发布于2020-7-29 18:04(编辑于 2020-7-29 18:04)

理论上应该是可以的,比如文本控件为uid输入0120102;1231414;2313 

然后数据集里面用split对这个uid参数进行拆分,

select * from table where 1=1

${if(len(uid)=0,""," and 列名 in ('"+split(uid,";")+"')")}


试试看?

  • Amber0102 Amber0102(提问者) 试了一下,不行,会在uid后面的逗号那报错
    2020-07-29 18:09 
  • jongwang jongwang 回复 Amber0102(提问者) 我看下
    2020-07-30 09:02 
  • jongwang jongwang 回复 Amber0102(提问者) 你按照上面@zsh331的答案来吧,那个可以
    2020-07-30 09:10 
最佳回答
1
张艳abbyLv5中级互助
发布于2020-7-29 18:38(编辑于 2020-7-29 18:41)

可以实现,给你的查询按钮加一个点击事件,在事件里写上如下代码,注意多个用户id之间用英文状态下的分号分隔

 
var pallet1 = this.options.form.getWidgetByName("文本控件的名称").getValue(); 
var pallet2="";  
if( !(pallet1 == "" || pallet1==null )){
   //pallet2=pallet1.replace(/\n/g,"','"); 
   pallet2=pallet1.replaceAll(";","','"); 
} ;     

 return   this.options.form.getWidgetByName("文本控件的名称").setValue(pallet2);


最佳回答
0
luojian0323Lv7资深互助
发布于2020-7-29 17:55

为何不用下拉框?

最佳回答
0
ColdmanLv6高级互助
发布于2020-7-29 17:56

可以用复选框

  • 9关注人数
  • 1412浏览人数
  • 最后回答于:2020-7-29 18:50
    请选择关闭问题的原因
    确定 取消
    返回顶部