历史版本9 :树数据集 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
在数据库中常常可以看到一种表结构,表中包含了id与parentid两个字段或者某一个字段的长度有一定规律,这种表结构就存在着一种层级关系,通过下拉树或者折叠树来显示层级结构,比如说部门的层级结构,如下图:
那么如何通过将数据表中的二维结构展现出这种树状的层级关系呢,FineReport提供了树数据集的概念,为控件绑定树数据集,web端查看时就会自动生成树形层级结构。
2. 示例编辑
2.1 新建数据集
在数据集面板中新建一个数据集ds1:SELECT * FROM 公司部门,如下图:
2.2 新建树数据集
在上面的ds1数据集的基础上创建一个树数据集,将公司部门的层级结构显示出来。
在数据集面板中点击添加按钮,选择
,如下图:1)依赖所选数据集的父标记字段构建树
树数据集来源于上面创建的ds1数据集,公司部门中有一个部门ID和上级ID,故可以使用
,如下图。需要特别强调的是,此种情况,需要有唯一根节点(就是上级ID为空的节点)。
如果没有,那么构建树时会无法正常建立索引,最后在前台使用下拉树控件时容易出现一些功能问题,比如控件不能给默认值、比如不能模糊搜索等。
点击
按钮,可以看到如下图所示的数据:2)依赖所选数据集的标记字段的长度构建树
如果数据表中的字段没有父级字段,而是通过字段的长度来分辨其级别,如下图,公司部门的部门ID字段,其字段长度不一致,但是存在一定的规律,截止到第一个数字表示第一层级部门的部门ID,截止到第二个数字表示第二层级部门的部门ID,以此类推:
我们再新建一个数据集,其数据集来源仍然是ds1,选择
,原始标记字段为部门ID,如下图:FineReport会自动识别部门ID字段里面的规律,效果与上面
的效果一致。注:部门ID,上级部门ID,部门名是三个建树字段,在实际操作中,部门ID和部门名必须对应,不能存在部门ID相同的情况。
3. 典型应用