参数面板多个控件如何取值

一共四个条件,可以为空,来源同张数据表,我的想法是假如选择了一个条件,在选择第二个的时候,把第一个条件当过滤项,同样,选第三个的时候,把前两个当过滤项。

比如,我每个条件的数据集写法是:

select distinct(BUKRS) from fr_it_erpcost WHERE 1=1

${if(len(mtype) == 0, "","and ZLX = '" + mtype + "'")}

${if(len(gong) == 0, "","and NAME1 = '" + gong + "'")}

${if(len(riqi) == 0, "","and BEDAT = '" + riqi + "'")}

order by BUKRS

但显示效果缺在我选择第二个时候,会把前面的条件值清空,比如我选择好类型描述,再选择公司代码时,类型描述就会清空:

image.png

image.png

image.png

请问大神们,如何能保留所有条件?

FineReport 花糖主子 发布于 2024-11-22 15:02
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-11-22 15:03
最佳回答
0
snrtuemcLv8专家互助
发布于2024-11-22 15:04

这个是你的控件用了同一个数据集

或者字典数据相互取过滤了

分成四个不同数据集就可以,不要相互做过滤

  • 花糖主子 花糖主子(提问者) 我也是分了四个数据集,只是数据表是同一张
    2024-11-22 15:22 
  • snrtuemc snrtuemc 回复 花糖主子(提问者) 那四个数据集,是不是相互取过滤,不能有where过滤的
    2024-11-22 15:36 
  • 花糖主子 花糖主子(提问者) 回复 snrtuemc 没有互相过滤,比如第一个数据集是: select distinct(字段1) from fr_it_erpcost WHERE 1=1 ${if(len(变量2) == 0, "","and 字段2= '" + 变量2 + "'")} ${if(len(变量3) == 0, "","and 字段3= '" + 变量3 + "'")} order by 字段1 第二个数据集: select distinct(字段2) from fr_it_erpcost WHERE 1=1 ${if(len(变量1) == 0, "","and 字段1= '" + 变量1 + "'")} ${if(len(变量3) == 0, "","and 字段3= '" + 变量3 + "'")} order by 字段2 第三个数据集: select distinct(字段3) from fr_it_erpcost WHERE 1=1 ${if(len(变量2) == 0, "","and 字段2= '" + 变量2 + "'")} ${if(len(变量1) == 0, "","and 字段1= '" + 变量1 + "'")} order by 字段3
    2024-11-25 08:40 
  • snrtuemc snrtuemc 回复 花糖主子(提问者) 你变量1,变量2,变量三是不是就是其他控件名,是的话就会联动出问题,不能相关联的
    2024-11-25 08:46 
  • 花糖主子 花糖主子(提问者) 回复 snrtuemc 对的 那就没办法了,谢谢了
    2024-12-03 09:00 
最佳回答
0
huidao0311Lv4见习互助
发布于2024-11-22 15:35

第一个数据集

select distinct(BUKRS) from fr_it_erpcost WHERE 1=1

order by BUKRS

第二个数据集

select distinct(BUKRS) from fr_it_erpcost WHERE 1=1

${if(len(mtype) == 0, "","and ZLX = '" + mtype + "'")}

order by BUKRS

第三个数据集

select distinct(BUKRS) from fr_it_erpcost WHERE 1=1

${if(len(mtype) == 0, "","and ZLX = '" + mtype + "'")}

${if(len(gong) == 0, "","and NAME1 = '" + gong + "'")}

order by BUKRS

第四个数据集

select distinct(BUKRS) from fr_it_erpcost WHERE 1=1

${if(len(mtype) == 0, "","and ZLX = '" + mtype + "'")}

${if(len(gong) == 0, "","and NAME1 = '" + gong + "'")}

${if(len(riqi) == 0, "","and BEDAT = '" + riqi + "'")}

order by BUKRS

  • 花糖主子 花糖主子(提问者) 我是这样写的,实现不了吗? 比如第一个数据集是: select distinct(字段1) from fr_it_erpcost WHERE 1=1 ${if(len(变量2) == 0, "","and 字段2= '" + 变量2 + "'")} ${if(len(变量3) == 0, "","and 字段3= '" + 变量3 + "'")} order by 字段1 第二个数据集: select distinct(字段2) from fr_it_erpcost WHERE 1=1 ${if(len(变量1) == 0, "","and 字段1= '" + 变量1 + "'")} ${if(len(变量3) == 0, "","and 字段3= '" + 变量3 + "'")} order by 字段2 第三个数据集: select distinct(字段3) from fr_it_erpcost WHERE 1=1 ${if(len(变量2) == 0, "","and 字段2= '" + 变量2 + "'")} ${if(len(变量1) == 0, "","and 字段1= '" + 变量1 + "'")} order by 字段3
    2024-11-25 08:42 
  • 4关注人数
  • 86浏览人数
  • 最后回答于:2024-11-22 15:35
    请选择关闭问题的原因
    确定 取消
    返回顶部