取字符串的值

一个文本控件,输入字符串以逗号隔开,如a,b,c,d 怎么取到abcd这四个值,或者只取一个值

FineReport 佩里 发布于 2021-12-9 11:27 (编辑于 2021-12-9 11:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-12-9 11:31

image.png

image.png

  • 佩里 佩里(提问者) 我只想取其中的一个值放到另一个sql,怎么写呀
    2021-12-09 11:34 
  • Z4u3z1 Z4u3z1 回复 佩里(提问者) 把参数S_的值公式改成 INDEXOFARRAY(SPLIT($控件名,\",\",\",\"),1) 即把输入的值转为数组再获取数组中 的第一个值
    2021-12-09 11:40 
  • 佩里 佩里(提问者) 回复 Z4u3z1 好的,谢谢
    2021-12-09 13:28 
最佳回答
0
我在等风也等你Lv6初级互助
发布于2021-12-9 11:28

where 1=1 

{if(len(参数) == 0,""," and  字段 in ( '" + SUBSTITUTE(参数,",","','") + "')")}  参数为你文本控件名称

  • 佩里 佩里(提问者) 我这儿只想取到其中的值放到另一个控件里,不去写sql
    2021-12-09 11:30 
  • 我在等风也等你 我在等风也等你 回复 佩里(提问者) 可以用另一个控件的数据字典,用公式,获取第一个控件的值
    2021-12-09 11:33 
  • 佩里 佩里(提问者) 回复 我在等风也等你 好的
    2021-12-09 13:49 
最佳回答
0
亲爱的记得采纳Lv6高级互助
发布于2021-12-9 11:29(编辑于 2021-12-9 11:48)

你要是只取一个值那可以写

但是也挺麻烦

首先你得有个配置表存放你输入的sn和他归属的八十多个表名是那个表

然后sql如下

SELECT * FROM ${SQL("数据连接名","SELECT 表名 FROM 配置表 WHERE sn字段 = '"+sn+"'",1,1)} -- 这样你只能输入一个值,通过这个值判断你要取哪张表拼接起来,这样就可以确定从哪张表里取数据了

WHERE 1 = 1

${if(len(字符串)=0,"","AND sn对应表中字段 = '"+sn+"'")}

这个方法应该可以,但是你的参数只能是一个值

不能多值

配置表存你sn的值和对应的表就行,你sn有多少个他就有多少数据应该也不大,这样最简单了

最佳回答
0
snrtuemcLv8专家互助
发布于2021-12-9 11:29

select * from 表 where 字段 in('${SUBSTITUTE(控件名,",","','")}')

这个格式,sql就是相当于4个值了

最佳回答
0
shirokoLv6资深互助
发布于2021-12-9 11:29

过滤条件这样写

WHERE 字段 in ('${joinarray(split(参数,","),"','")}')

  • 佩里 佩里(提问者) 我只想取其中的一个值放到另一个sql,怎么写呀
    2021-12-09 11:35 
  • 5关注人数
  • 492浏览人数
  • 最后回答于:2021-12-9 11:48
    请选择关闭问题的原因
    确定 取消
    返回顶部