本帖最后由 Eden.Sun 于 2023-5-2 18:31 编辑
在 Web设计器设计树形报表(二)中,我们介绍了通过父子节点构建树形报表,但是我们发现了一个问题,通过这种方式构建的报表,无法进行统计。因为我们是在明细数据中直接指定的父子id,所以我们在设计时,无法针对父节点进行操作。呢么如何解决这个问题呢,就是我们今天要介绍的内容。
首先,准备数据、创建数据源和数据集,我们不在赘述。要解决这个问题,我们首先要把父节点暴露出来。
根据数据我们可以看到,才当的id构成是有规律的,每增加一层,都会多出来两位编码:
所以我们,通过表达式,按照层级关系,创建三个计算字段,将每层的id都切割出来:
- <font face="宋体">// 一级目录
- {ToString(id).Substring(0, 2)}
- // 二级目录
- {ToString(id).Substring(0, 4)}
- // 三级目录
- {ToString(id).Substring(0, 6)}</font>
复制代码
然后使用刚才的计算字段进行分组,然后删除多余的分组尾行:
去除多余分组:由于我们的有些id长度不够我们来切割,如,在切割0-4位时,2位的编码的长度是不够的的,此时会返回一个空字符串,当我们分组时,空字符串也会参与分组,但是这种情况明细是不需要的,所以我们在分组行上设置隐藏:{IIF(second = "", true, false)}
然后按照属性表格设置隐藏/显示的方式添加数据的隐藏:
至此,根据code的树形报表就设计完成了:
最后,我们就可以在报表上增加统计了:
优缺点:
相对于上一篇通过父子节点构建树形报表来说,增加了字段的切割、创建计算字段、隐藏多与数据的步骤,但是优点在于可以增加统计。但是需要我们构建的父子id是有规律的,这个大家根据自己的情况进行选择。
|