找回密码
 立即注册

QQ登录

只需一步,快速开始

Eden.Sun Wyn认证
超级版主   /  发表于:2023-5-2 18:27  /   查看:1828  /  回复:0
本帖最后由 Eden.Sun 于 2023-5-2 18:31 编辑

  在 Web设计器设计树形报表(二)中,我们介绍了通过父子节点构建树形报表,但是我们发现了一个问题,通过这种方式构建的报表,无法进行统计。因为我们是在明细数据中直接指定的父子id,所以我们在设计时,无法针对父节点进行操作。呢么如何解决这个问题呢,就是我们今天要介绍的内容。
  首先,准备数据、创建数据源和数据集,我们不在赘述。要解决这个问题,我们首先要把父节点暴露出来。
  根据数据我们可以看到,才当的id构成是有规律的,每增加一层,都会多出来两位编码:
  
  
  所以我们,通过表达式,按照层级关系,创建三个计算字段,将每层的id都切割出来:
  1. <font face="宋体">// 一级目录
  2. {ToString(id).Substring(0, 2)}
  3. // 二级目录
  4. {ToString(id).Substring(0, 4)}
  5. // 三级目录
  6. {ToString(id).Substring(0, 6)}</font>
复制代码
  



  然后使用刚才的计算字段进行分组,然后删除多余的分组尾行:
  


  去除多余分组:由于我们的有些id长度不够我们来切割,如,在切割0-4位时,2位的编码的长度是不够的的,此时会返回一个空字符串,当我们分组时,空字符串也会参与分组,但是这种情况明细是不需要的,所以我们在分组行上设置隐藏:{IIF(second = "", true, false)}
  
  
  然后按照属性表格设置隐藏/显示的方式添加数据的隐藏:
  


  


  




  至此,根据code的树形报表就设计完成了:
  


   



   最后,我们就可以在报表上增加统计了:
  
  

  



  优缺点:

    相对于上一篇通过父子节点构建树形报表来说,增加了字段的切割、创建计算字段、隐藏多与数据的步骤,但是优点在于可以增加统计。但是需要我们构建的父子id是有规律的,这个大家根据自己的情况进行选择。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部