多单元格的控件控制

需求:界面上设置有三个单选框,每一个单选框都返回部门编号。如第一个返回xx,第一级部门,第二单选框,返回xxxx第二级部门,第三单选,返回xxxxxx  6位数的第三级部门。

前面界面已经完成,先选一级部门,二级部门根据选择的一级部门进行展开,三级部门根据二级部门展开。

但是,6位数的三级包含了第一级,第二级。4位数的二级,包含了一级。

所以参数dpt01 ,dpt02,dpt03.

目前想要:界面根据前面参数的选择进行筛选出人员。

select* from AA

where AA.k = 如果dpt02等于空,dpt03 等于空 时, = apt01条件筛选;

                       如果dpt02不等于空,dpt03 等于空时, = apt02条件筛选;

目前想法是使用switch语句或者if语句。

FineReport 帆软用户FSeepKI7oc 发布于 2023-11-1 14:57 (编辑于 2023-11-2 08:43)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
Z4u3z1Lv6专家互助
发布于2023-11-1 15:01(编辑于 2023-11-2 09:53)

select* from AA

where AA.k = ${if(and(len(dpt02)==0,len(dpt03)==0),"'"+dpt01+"'",if(and(len(dpt02)>0,len(dpt03)==0,"'"+dpt02+"'")))}

image.png

-------------

select* from AA

where AA.k = ${if(and(len(dpt02)==0,len(dpt03)==0),"'"+dpt01+"'",if(and(len(dpt02)>0,len(dpt03)==0),"'"+dpt02+"'",""))}

image.png

image.png

image.png

image.png

image.png

------------

select* from AA

where AA.k = ${switch(true,and(len(dpt02)==0,len(dpt03)==0),"'"+dpt01+"'",

and(len(dpt02)>0,len(dpt03)==0),"'"+dpt02+"'"

)}

最佳回答
0
快乐星光Lv5中级互助
发布于2023-11-2 08:56

试试case when

select* from AA

where AA.k =

case when len('${dpt02}')=0 and len('${dpt03}')=0 then '${dpt03}'

     when len('${dpt02}')>0 and len('${dpt03}')=0 then '${dpt02}' end

  • 2关注人数
  • 270浏览人数
  • 最后回答于:2023-11-2 09:53
    请选择关闭问题的原因
    确定 取消
    返回顶部