维下拉实现参数联动

47
0

chestnut 数据领袖Lv6

发表于2025-1-8 18:54

楼主
维下拉实现参数联动
场景1:机构、用户两个参数联动显示,机构参数选择后,用户参数只显示对应机构下的用户。机构参数只显示本级,不显示下级用户。

实现:
两个参数均为维下拉,机构、用户所属维表为通用维,钻取路径:机构-用户。
机构参数名:@jg1,用户参数名:@yh1,维表数据库表名:F_CSCS,机构id:jgid,用户id:userid。
参数设置:
机构参数,只显示本级,节点过滤:item.level=0
用户参数,根节点显示:@jg1,节点过滤:item.level=1
如果需要用户参数只显示本级,不显示机构数据:
根节点显示:item.level=0
节点过滤:if(len(@jg)=0,item.level=1,item.parent=@jg)


注:如果直接用sql查询匹配,将会返回多个父节点不一致的值,原公式:if(len(@jg1)=0,item.level=1,item.id in ardb("select userid from F_CSCS where jgid='"+@jg1.id+"'  ") and item.level=1)

场景2:机构、用户两个参数联动显示,机构参数选择后,用户参数只显示对应机构下的用户;用户参数选择后,机构参数显示机构。机构、用户参数只显示本级,不显示其他级次数据。(数据不重复时,显示值唯一)

实现:
两个参数均为维下拉,机构、用户所属维表为通用维,钻取路径:机构-用户。
机构参数名:@jg,用户参数名:@yh,维表数据库表名:F_CSCS,机构id:jgid,用户id:userid。
参数设置:
机构参数
节点过滤:
if(len(@jg)=0,item.level=1,item.parent=@jg)
sql匹配公式:if(len(@yh)=0,item.level=0,item.id in ardb("select JGID from F_CSCS where userid='"+@yh.id+"'  ") and item.level=0) ,数据不唯一时显示会重复
用户参数
根节点显示:item.level=0
节点过滤:if(len(@jg)=0,item.level=1,item.id in ardb("select userid from F_CSCS where jgid='"+@jg.id+"'  ") and item.level=1)



最近看过此主题的会员

chenliwei

0个回答

只看楼主

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号