递归数据是怎样制作出分组报表

      我们所经常用到的就是递归形式存储数据。比如说现在每条记录都有自己的id和父id,在对都有自己的id和父id的数据进行处理的时候,尤其是将这样的数据做成分组形式时,有些客户发现就会遇到一些问题:报表拥有强大的数据处理功能,对于类似的问题都可以解决,下面就介绍一下递归的数据如何制作分组报表。
  
  设计思路就是先将根节点的id也就是所有节点的起源显示出来,然后通过query()这个函数将其子节点筛选出来,这样一级一级展示,就可以完成报表的分组设计了。
  
  首先,看一下数据在数据库里的存储方式。
  
  1.png
  
  从这里可以看出 1、2 是所有节点的跟节点,3、4、5的父节点为1,6和7 的父节点是2等等。
  
  建立数据集:sql语句为:SELECT diguitest.id,diguitest.fid FROM diguit,设计报表如下图所示。
  
  2.png
  
  然后将根节点显示出来,在A2中显示根节点,也就是 父节点为0的点。
  
  A2:=ds1.select(id,,fid==”0″)
  
  B2,C2,D2,这三个单元格分别写:
  
  =list(query(”select diguitest.id from diguitest where diguitest.fid=?”,A2))
  
  =list(query(”select diguitest.id from diguitest where diguitest.fid=?”,B2))
  
  =list(query(”select diguitest.id from diguitest where diguitest.fid=?”,C2))
  
  以B2为例,query(”select diguitest.id from diguitest where diguitest.fid=?”,A2)这句的含义是选出以A2为父节点的所以id值,然后将得到的值用list封装起来,展现的时候就有扩展的样式了。
  
  浏览报表。


  3.png
  
  通过以上步骤便完成分组报表的设计,清晰的看出层级关系,如果层级较少的话也可以通过sql语句来实现,在sql中进行拼接,使得每条记录都包含该节点到根节点的所有节点,这样就可以通过博计自带的分组函数来实现分组设计。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值