决策报表---动态参数实现多级下拉折叠菜单

1. 描述

在报表开发中,我们会遇到报表需要对行标题实现展开收起的折叠菜单的效果。这种效果一般在分析预览或者填报中应用下拉树控件来实现,

但是在分页预览或者决策报表如何实现呢?这里我们使用动态参数的方式。

预期效果:

1.在分页预览和决策报表中能适用;

2.随着数据增长改变,折叠菜单自动改变(可复用),不用写死;

3.下拉收起功能和当前常用的下拉树按钮功能一致。

12.gif

2. 实现思路

通过父格扩展来实现全部菜单展开的效果;

通过动态参数来标记哪些行是展开或者折叠的;

通过条件属性控制行隐藏显示;

3. 操作步骤

3.1确定基本样式

3.11建一个内置数据集

内置数据集.png

3.12拖字段到单元格,设置好父格及扩展

拖入单元格.png

其中

A3单元格不扩展,左父格C2;

B2单元格纵向扩展,左父格C2 ;

C2单元格纵向扩展;

C3单元格纵向扩展,左父格C2;

3.2添加动态参数和条件属性

在B2单元格添加两个动态参数,按照如图顺序:

pre:if(find(C2, concatenate($pre, $cur)) > 0, replace(concatenate($pre, $cur), C2, ""), concatenate($pre, $cur))

以上pre参数函数内容是为了获取上次点击的获取的值。(但是如果上次已经点击过一次,则去除点击过的状态)

cur:if(find(C2, concatenate($pre, $cur)) > 0, 1, if(C2 = $cur, 1, C2))

以上cur参数函数内容是为了获取本次点击的获取的值。

然后对于A3单元格

添加条件显示1:行高为0:公式为 reverse(or($$$ = $cur, find($$$, $pre) > 0))   此公式是为了判断当前值如果不是本次或者上次点击的则隐藏起来

再添加一个条件显示2:列宽为0

3.3添加折叠和展开的箭头图标

去找一两个小图标

然后,对于B2单元格,增加条件属性1:背景为向下的图片,公式为:reverse(or(C2 = $cur, find(C2, $pre) > 0))

展开收起.png

再增加一个条件属性2:背景为向上的图片,公式为:or(C2 = $cur, find(C2, $pre) > 0)

 

3. 模板下载

这里有一个二级菜单的模板:

动态参数实现二级下拉折叠菜单.cpt

 

然后感兴趣的,这边还有三级下拉的,原理一样,只是父格扩展可能稍微比刚刚的复杂一些:

动态参数实现三级下拉折叠菜单.cpt

4. 注意事项

1.以上为内置数据集的方式实现的,如果是使用oracle数据集,可以用

select distinct 大类别,小类别 from 表名 然后左联接 同一个表,获取里面需要的值数据,然后放置到需要的位置,可能需要配置下过滤等,整体的表就可以做出来了。

2.如果需要点击下拉折叠不是在小三角按钮上实现,在文字上直接实现,也是可以的,只要更改公式中的C2为当前值$$$,然后再将动参设置在C2上即可

3.其他样式问题,比如左对齐,框线,字体,可以自行设置即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值