下拉树取值与传参问题,if语句被多次执行

用了if语句过滤参数为空的情况,等于全选


第一个下拉树为root,为空时,右侧树显示正确






root选定多个后,右侧联动树空了,查看日志发现居然生成的SQL是这样的

实际我希望的应该是这样的语句:
SELECT * FROM 公司部门 WHERE 1=1
and 部门ID in (1,11,12) or 上级ID in (1,11,12)
貌似if语句被多次执行了,还有即便多次执行,那中间的逗号又是哪里来的,语句中没有逗号出现啊?


ps: 那个查询语句写的有点问题,后面两个or的条件应该用括号包含起来的:
SELECT * FROM 公司部门 WHERE 1=1
and ( 部门 ID in (1,11,12) or 上级 ID in (1,11,12) )不过这不影响分析问题,请大神看下,谢谢

编辑于 2018-2-15 15:50  
FineReportfanrongboy 发布于 2018-2-15 15:17
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
macro_hard发布于2018-2-15 15:17(编辑于 2023-9-6 09:34)
555
最佳回答
0
fanrongboy发布于2018-2-15 16:29(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard ...下拉树控件没有可以设置控件返回值是字符串还是数组的选项,默认就是返回数组。按我上面发的在数据集里转换就行
    回复
    2018-02-15 16:48 
  • fanrongboy fanrongboy(提问者) 回复 macro_hard :嗯,我又试了下,公式那里用也不行,只能在sql里面处理了,建议以后树控件添加返回字符串还是数组的选项,就像复选下拉列表那样,这样操作会方便很多
    回复
    2018-02-15 17:17 
  • 0关注人数
  • 596浏览人数
  • 最后回答于:2018-2-15 17:17
    活动推荐 更多
    热门课程 更多
    返回顶部