关于下拉控件的使用

如图下拉显示 

image.png

这是下拉查询的表a数据,下拉显示的是EKYX(d列)为x的数据

image.png

可以实现当点击下拉里299其他的时候,给数据集传输的是表a里EKYX(d列)列不为x的数据吗,相当于299其他代表表a所有不为x的数据,下拉控件名为p_gyy

注意主表不是表a!!!主表里没有EKYX(d列)列标识列,只有EKGN(c列),表a是查下拉数据的

FineReport 狂奔的小蜗牛 发布于 2022-12-8 16:37 (编辑于 2022-12-9 10:22)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
luojian0323Lv7资深互助
发布于2022-12-8 16:43

那要在where 条件的后面

写公式判断 

${if(参数值='299其他'," and d列字段 <>'X'"," and c列字段 in ('"+参数值+"')" )}

  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 这where是写在模板数据集下边吗?但是我不理解and d列字段 <>X这句咋写的,d列不是查询下拉数据的表么,我select的主表没这个字段啊
    2022-12-09 00:08 
  • luojian0323 luojian0323 回复 狂奔的小蜗牛(提问者) 那你要过滤不为x的数据,下拉框用到的数据字典数据集和你的主表要有关联啊 不然怎么过滤不为x 的数据?
    2022-12-09 09:41 
  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 回复 luojian0323 我主表只有c列,没有d列的标识列,过滤主表只能靠c列,d列是下拉显示的过滤条件
    2022-12-09 10:10 
最佳回答
0
用户k6280494Lv6资深互助
发布于2022-12-8 16:45

where 1=1

if(find("299其他",参数)>0,"and d is null","and c in ('"+ 参数 +"')")

最佳回答
0
weibwLv7高级互助
发布于2022-12-8 19:04(编辑于 2022-12-8 19:42)

where 1=1

${if(len(代表)==0,"",if(find('299其他',代表)>0," and a.d !='X'"," and a.代表字段 in ('"+代表+"')"))}

  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 你这代表表示什么啊。。
    2022-12-09 00:13 
  • weibw weibw 回复 狂奔的小蜗牛(提问者) 表示你那个下拉多选框控件
    2022-12-09 07:26 
  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 回复 weibw 你这写法我是不是得写两个数据集啊,一个是d列空的数据集,赋值给一个下拉控件a,然后让他隐藏。一个就是我显现的,然后find(\'299其他\')存在的时候给sql拼接控件a,不存在存我截图的控件
    2022-12-09 08:38 
  • weibw weibw 回复 狂奔的小蜗牛(提问者) 不用啊,一个数据集就可以了。我写的逻辑就是你的供应员的控件不选择时默认显示全部,如果有选择,选择包含你那个其他,那就过去其他代表且为X的,否则就按你选中的供应员进行过滤
    2022-12-09 09:06 
  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 回复 weibw 那怎么查其他的,我还是不明白,一个数据集怎么查其他呢,其他的表示是不为x的,但是我下拉的数据集都是x的,没有不是x的,按你说的我下拉的数据集应该怎么写
    2022-12-09 10:06 
  • 3关注人数
  • 386浏览人数
  • 最后回答于:2022-12-9 10:22
    请选择关闭问题的原因
    确定 取消
    返回顶部