帆软报表多查询条件问题

我自己使用数据集的方式设置的下拉框为空则查询全部数据,一共有三个参数ABC,其中AB是从属关系,选择A的不同值确B的数值也随之改变,但是如果A不选择,那么就查不到数据,而且AB选择之后,如果C没选择的话可以查出所有信息,但是查出的表格中C这个字段是空的。

下面是ds1的查询条件

where 1=1

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

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

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

还有两个模板数据集A、B和C,B从属于A

select A from table

select B from table where A='${A}'

select C from table

ds1里面查询了一个别的字段信息,但是查询条件就是ABC三个,然后查询框生成三个参数控件ABC,A数据字典取模板数据集A的数据,BC同理

将ds1里面的数据拿到表格中,将ABC三个格子过滤条件分别和上面的三个参数对应,然后查询出的结果就是我描述出的情况

FineReport 2366479 发布于 2020-6-23 17:25 (编辑于 2020-6-23 17:41)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
fish19880902Lv4初级互助
发布于2020-6-23 17:35

A   B     C

3个数据集的where 条件你怎么写的?

  • 2366479 2366479(提问者) B的里面有加一句where A=\'${A}\',肯定加了这个条件的,不然无法联动
    2020-06-23 17:39 
  • 2366479 2366479(提问者) C和AB无关,A里面没有加别的,因为B是从属于A的
    2020-06-23 17:39 
  • fish19880902 fish19880902 回复 2366479(提问者) select B from table where ${if(len(A) == 0,\"\",\"and A = \'\" + A+ \"\'\")} B不是应该这么写吗。你A如果不选择,那B按照你写的不就是空吗?
    2020-06-23 17:41 
  • fish19880902 fish19880902 回复 2366479(提问者) 最好能把完整的where 条件放上来
    2020-06-23 17:42 
  • 2366479 2366479(提问者) 回复 fish19880902 就是设定必须要选择A才能选B
    2020-06-23 17:42 
  • 2关注人数
  • 1776浏览人数
  • 最后回答于:2020-6-23 17:41
    请选择关闭问题的原因
    确定 取消
    返回顶部