帆软-动态参数+条件属性实现折叠树

一、实现思路:

1、将点击的分组序号存入“动态参数”;2、通过“条件属性”判断是否存在此行分组序号,决定行高的显示和隐藏。

二、明确概念:

1、&b2:获取单元格b2扩展后的分组序号

2、split($a,",") 将字符串a用逗号分割成数组。

3、inarray(b,array) 返回b在数组array的位置,没有则返回0。

4、GREPARRAY(array,item != &b2) 在数组array种过滤掉&b2,形成新的数组。

5、JOINARRAY(array,",") 将数组转化为一个由逗号分割的字符串。

三、具体操作

1、“超级链接”里建立“动态参数” a,首先的想法是通过点击“节点ID”,将分组序号存入a中,编辑动态参数a的值为$a + &b2,结果为,1,2,3,4。结果前面有个“,”所以需要用if语句初始化下起始状态if(len($a)=0,&b2,$a +','+ &b2)

2、多次点击同一个“节点ID”,结果为1,1,1,2,3,3,显然我们不想要重复的值,所以增加if判断,如果参数a中由&b2,就不添加。将动态参数a的值改为if(len($a)=0,&b2,if(inarray(&b2,split($a,','))>0,$a,$a +','+ &b2)),意思是当前行的分组序号在参数a中就返回参数a,否则就在参数a中加上分组序号。

到此,我们实现了点击“节点ID”就会在a中增加当前行的分组序号

3、再次点击同一个“节点ID”虽然不重复增加,但要实现再次点击,减少当前行的分组序号。所以修改动态参数a的值为if(len($a)=0,&b2,if(inarray(&b2,split($a,','))>0,JOINARRAY(GREPARRAY(split($a,','),item!=&b2),','),$a +','+ &b2))解释下为什么突然变得这么长,重要的公式是GREPARRAY(array,item != &b2),因为公式GREPARRAY的参数array为数组,所以用split将字符串转化为数组。因为GREPARRAY返回值为数组,所以用JOINARRAY将数组转化为字符串。

至此,动态参数a已经完成编写。

点击“节点ID“实现动态展开和折叠,需要设置“条件属性”-”行高“。

设置条件属性1-折叠,当前分组序号&b2,若不在$a中,并且当前节点序号值大于1,则行高为0。

如果&b2在参数$a中,则设置行高为模板中的行高值。

至此完成行的折叠

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值