集算表(TableSheet)如何通过DataManager设置层级数据
本帖最后由 Ellia.Duan 于 2024-11-28 11:59 编辑TableSheet支持层次数据,可以通过数据源模型中的层次选项来配置。
下文重点介绍用UI方式实现在集算表中设置层级数据,关于代码方式可以查看文档,文档中很详细介绍了这部分内容
TableSheets 现在支持源数据中的层级结构数据。这包括四种不同类型的记录数据:一、HierarchyParent支持如下图所示的数据结构,包括属性“id”和“parentId”
1、如下图所示,设置数据源,url路径为https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/server/api/Hierarchy_Data
2、接下来设置id为主键,并设置隐藏
3、接下来设置parentId的层级结构类型为”父类型“
4、最后设置在title属性添加分组列信息
其中图片链接为:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/task-1.png
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/task-2.png
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/task-3.png
展开分组标记为:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/increaseIndicator.png
收起分组标记为:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/decreaseIndicator.png结果如下:
具体过程参考附件中的parent.gif
二、HierarchyLevel
支持如下图所示的数据结构,包括属性“level”指示层级结构级别的属性
1、按照惯例,先设置数据源https://demo.grapecity.com.cn/sp ... ierarchy_Data/level
2、设置level属性的层数数据,如下图所示:
3、设置在title属性添加分组列信息(同上)
结果如下:
具体过程参考附件中的level.gif
三、HierarchyChildren
支持如下图所示的数据结构,包括属性“children”分层子集的属性
1、按照惯例,先设置数据源https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/server/api/Hierarchy_Data/children
2、设置children属性的层数数据,如下图所示:
3、设置在title属性添加分组列信息(同上)
结果如下:
具体过程参考附件中的children.gif
四、HierarchyCustom
如下图所示,可以通过自定义函数解析为层级结构的,包含主键的数据。
需要通过代码配置解析过程,如
hierarchy: {
type: 'Custom', // config the custom hierarchy type
column: 'WBSNumber',
parse: function (options) { // parsing the key to the parent key that be similar as the parent hierarchy type
let segments = options.data.WBSNumber.split('.');
return segments.slice(0, segments.length - 1).join('.');
},
unparse: function (options) { // if the key should be updated, unparse the related data to the key
let parentIds, currentIndex = options.index, parentData = options.parentData, parentKey = parentData && parentData.WBSNumber;
if (parentKey) {
let sp = parentKey.split('.');
parentIds = sp;
} else {
parentIds = [];
}
parentIds.push(currentIndex + 1);
return parentIds.join('.');
}
},
页:
[1]