DataSet构造多级树型结构
最后更新:2025-07-08 10:02:28
|
状态:未完成
表结构类似这样
ID | BASE_ID | NAME |
1 | NULL | 中国 |
2 | 1 | 山东 |
3 | 2 | 济南 |
4 | 2 | 青岛 |
5 | 2 | 烟台 |
6 | 3 | 历下区 |
7 | 3 | 天桥区 |
8 | 4 | 市南区 |
9 | 4 | 城阳区 |
//先取出完整列表
DataSet set = service.querys("SYS_AREA");
//ID:主键 BASE_ID:表示上一级ID的列名
set.dispatchs(true,true, "ID:BASE_ID");
set.dispatchs("children",true,true, "ID:BASE_ID");
//执行完成后会把每个DataRow中存入当前DataRow的下一级
//这里会生成多个树型结构,一般需要根据ID取出最顶级的DataRow set.getRow("ID",1);或者取BASE_ID是空的,如果顶级有多个就取多个比如根据级别set.getRows("LVL","1")
方法有多个重载,参考请参考源码说明
/** * 从items中按相应的key提取数据 存入 * dispatch("children",items, "DEPT_CD") * dispatchs("children",items, "CD:BASE_CD") * * @param compare 匹配方式 默认= * @param field 默认"items" * @param unique 是否只分配一次(同一个条目不能分配到多个组中) * @param recursion 是否递归 所有子级以相同条件执行dispatchs * @param items items默认this * @param keys ID:DEPT_ID或ID * @return DataSet */