两个数据库,两个不同的参数控件,A控件有值时,不查询B控件

数据集1:select  物料编码,批次号 from table where 1=1 

${if(len(物料编码) == 0,"","and 字段1 = '"+ 物料编码 + "'")}

${if(len(批次号) == 0,"","and 字段2= '"+ 批次号 + "'")}

数据集2:select  物料编码 from table where 1=1

${if(len(物料编码) == 0,"","and 字段1 = '"+ 物料编码 + "'")}

关联数据集1和2

参数:

物料编码:【文本】

批次号:【文本】

问题:查询批次号时,数据集2的数据也会被带出来

需求:如何在查询批次的时候,物料编码或者说数据集2不查询

image.png

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

从题干上来看

SELECT *FROM TABLE WHERE 1=1 ${IF(LEN(A控件)==0,""," A控件的条件")}${IF(LEN(B控件)==0,"",IF(LEN(A控件)==0,"B控件的条件",""))}

从描述上看有点晕~~

  • six28 six28(提问者) 已完善问题
    2022-12-14 08:23 
  • Z4u3z1 Z4u3z1 回复 six28(提问者) 建议 数据集2让它为空就行了:select 物料编码 from table where 1=1 ${if(len(物料编码) == 0,\"\",\"and 字段1 = \'\"+ 物料编码 + \"\'\")} ${if(len(批次号) == 0,\"\",\"and 1<>1\")}
    2022-12-14 08:48 
  • six28 six28(提问者) 回复 Z4u3z1 不行,还是一样会列出数据集2
    2022-12-14 11:30 
  • Z4u3z1 Z4u3z1 回复 six28(提问者) 数据集2是空值啊 你在单元格上用个条件属性 行高为0
    2022-12-14 11:31 
  • six28 six28(提问者) 回复 Z4u3z1 我弄错了 可以了
    2022-12-14 11:36 
最佳回答
0
snrtuemcLv8专家互助
发布于2022-12-14 08:44

数据集2改成下面的语句试试

数据集2:select  物料编码 from table where 1=1

${if(len(物料编码) == 0,"","and 字段1 = '"+ 物料编码 + "'")}

${if(len(批次号) == 0,"","and 1=2")}

  • six28 six28(提问者) 不行,还是一样会列出数据集2
    2022-12-14 11:30 
  • snrtuemc snrtuemc 回复 six28(提问者) 不会啊,按这个写,如果批次号有数据,直接1=2,数据集查询为空,怎么还有数据,除非批次号没选
    2022-12-14 11:36 
  • six28 six28(提问者) 回复 snrtuemc 我弄错了 可以了 感谢 另一个问题采纳你的
    2022-12-14 11:37 
  • 2关注人数
  • 450浏览人数
  • 最后回答于:2022-12-14 08:44
    请选择关闭问题的原因
    确定 取消
    返回顶部