一个数据集内按筛选框显示不同数据

现在有个数据集A,里面有用户字段和报表字段,筛选框也有用户筛选框和报表筛选框,都是单选,现在想在数据集A里写条件,参照${if(len(AREANAME)==0,'',"and areaname ='"+AREANAME+"'")}这种写法,我这里是要不断的写IF放到SQL里吗?

企业微信截图_16480922083015.png

FineReport wayne_ 发布于 2022-3-24 11:26 (编辑于 2022-3-24 11:26)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
wayne_Lv7见习互助
发布于2022-3-26 08:49

${IF(AND(LEN(UserName)=0,LEN(DP)=0),'',IF(AND(LEN(UserName)=0,LEN(DP)<>0)," AND DISPLAYNAME IN ("+"'"+treelayer(DP,true,"\',\'")+"'"+")",IF(AND(LEN(UserName)<>0,LEN(DP)=0)," AND USERNAME IN ("+"'"+treelayer(UserName,true,"\',\'")+"'"+")"," AND DISPLAYNAME IN ("+"'"+treelayer(DP,true,"\',\'")+"'"+") " + " AND USERNAME IN ("+"'"+treelayer(UserName,true,"\',\'")+"'"+")")))}

往里面套IF就可以实现,没找到其它办法

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-3-24 11:36(编辑于 2022-3-24 11:37)

只需要写两个呗(用户和报表字段)

${if(len(用户控件)==0,'',"and 用户字段='"+用户控件+"'")}${if(len(报表控件)==0,''," and 报表字段='"+报表控件+"'")}

值一带进去就是4个组合了

  • wayne_ wayne_(提问者) 不是这个意思,需要有判断的
    2022-03-24 13:04 
  • Z4u3z1 Z4u3z1 回复 wayne_(提问者) 抱歉理解不到了.........
    2022-03-24 13:06 
  • wayne_ wayne_(提问者) 回复 Z4u3z1 按照图里的规则,用户筛选框和报表筛选框,四种选择模式,我的理解是写${IF(AND(LEN(用户控件)=0,LEN(报表控件)),\'\',......IF这样嵌套下去,不知道行不行的通
    2022-03-24 13:11 
  • 0关注人数
  • 387浏览人数
  • 最后回答于:2022-3-26 08:49
    请选择关闭问题的原因
    确定 取消
    返回顶部