1. 概述
1.1 应用场景
树数据集,就是将数据通过下拉树或者折叠树来显示层级结构,比如说下图的部门层级结构.
为控件绑定树数据集, Web 端查看时就会自动生成树形层级结构。那么如何通过将数据表中的二维结构展现出这种树状的层级关系呢?本文将进行讲解。
1.2 适用的数据表结构
在 FineReport 中有两种表结构可以构建树数据集:
当一系列有层级关系的数据有自己的规律性的 ID 编号,表结构如下图所示,如何转换为树数据集可参见本文示例一。
包含当前 ID 和 上级 ID(parent ID)号,表结构如下图所示,如何转换为树数据集可参见本文示例二。
那么如何通过将数据表中的二维结构展现出这种树状的层级关系呢,FineReport 提供了树数据集的概念,为控件绑定树数据集, Web 端查看时就会自动生成树形层级结构。
2. 示例一:ID 编号长短有规律的数据
2.1 新建数据集
在数据集面板中新建一个数据集 ds1:SELECT 部门ID,部门名称 FROM 公司部门,如下图所示:
2.2 新建树数据集
1)在数据集面板中点击「添加>树数据集」,如下图所示:
2)勾选「依赖所选数据集的标记字段的长度构建树」,原始标记字段选择「部门 ID」,如下图所示:
3)点击「预览」按钮,如下图所示:
4)点击「确定」,树数据集就创建完成了。
3. 示例二:拥有 ID 和父级 ID 的数据
3.1 新建数据集
1)在数据集面板中新建一个数据集 ds2:SELECT * FROM 公司部门,如下图所示:
2)和示例一一样,新建树数据集。数据集选择「ds2」,并勾选「依赖所选数据集的父标记字段构建树」,如下图所示:
原始标记字段为「部门ID」,父标记字段选择「上级ID」
3)点击「预览」,效果同效果一的预览图。再点击「确定」即可保存该树数据集。
4. 使用格式
树数据集必须是【本ID,父ID,显示名称】固定的列结构。使用过程中 ID 不一定为数字,可以为字符串。
对非此格式的数据,可以采用 SQL 的 Union,递归等方式,组合数据结果后,放入数据集中。
以下示例一种格式转换方便理解,历史数据格式为同行的父子属性
经过转换后的SQL才可以放入数据集