树形单据体

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

树形单据体

# 1 功能介绍 树形单据体是单据体的一种特例,会将单据体以父子层级的样式去展示。其中在设计时的属性和单据体是一样的,行数据中包含id和pid,用来决定数据之间的父子关系。未展开的节点展示时异步加载下级数据。 # 2 控件对象 `kd.bos.form.control.TreeEntryGrid` # 3 视觉展示 ![image.webp](/download/01009d5de57a933a45e2af8aeb92f38d00e7.webp) # 4 属性说明 树形单据体基础的属性、插件代码和单据体相同,请参考[单据体](https://vip.kingdee.com/article/224093028678171392) # 5 数据配置 * 前端通过插入数据来构造树形单据体数据时,单据需要配置两个操作:新增分录和插入分录 * 可以由后端直接构造树形单据体数据 ![tree.webp](/download/01006d16fc9fa1674c09b588c5defedb042d.webp) # 6 树形单据体接口介绍 ## 6.1 控件编程模型 ### 6.1.1 控件编程模型定义 树形单据体的控件编程模型为TreeEntryGrid,派生自EntryGrid,定义如下: ```java package kd.bos.form.control; public class TreeEntryGrid extends EntryGrid ``` ### 6.1.2 控件方法清单 TreeEntryGrid除了继承父控件EntryGrid的方法,还提供了一些树形单据体特别的控制方法: | 方法 | 说明 | | --- | --- | | setCollapse | 展开、收起全部行 | | collapse | 折叠指定行 | | expand | 展开指定行 | ### 6.1.3 控件方法的使用 **1)setCollapse** * 方法介绍:根据参数要求,展开、或者收起全部行。 * 方法定义: ```java /** * 展开/收起全部行 */ @Override public void setCollapse(boolean isCollapse) ``` * 参数说明: ```java boolean isCollapse :设置为true,则折叠全部行;设置为false,展开全部行 ``` * 应用示例: ```java // 展开全部行 TreeEntryGrid grid = this.getView().getControl(Key_TreeEntry); grid.setCollapse(false); ``` **2)collapse** * 方法介绍:折叠指定行,子行也自动折叠。 * 方法定义: ```java /** * 折叠/收起行 * * @param row 行索引 */ @KSMethod public void collapse(int row) ``` * 参数说明: ```java int row:行索引 ``` * 应用示例: ```java // 折叠指定行(子行也会自动折叠) TreeEntryGrid grid = this.getView().getControl(Key_TreeEntry); int rowIndex = this.getModel().getEntryCurrentRowIndex(Key_TreeEntry); grid.collapse(rowIndex); ``` **3)expand** * 方法介绍:展开指定行,子行也自动展开。 * 方法定义: ```java /** * 展开行 * * @param row 行索引 */ @KSMethod public void expand(int row) ``` * 参数说明: ```java int row:行索引 ``` * 应用示例: ```java // 第二种方法:展开指定行及其子行 TreeEntryGrid grid = this.getView().getControl(Key_TreeEntry); int rowIndex = this.getModel().getEntryCurrentRowIndex(Key_TreeEntry); grid.expand(rowIndex); ``` ## 6.2 数据模型 ### 6.2.1 属性对象 树形单据体在主实体模型 MainEntityType 中的属性对象是 TreeEntryProp,派生自单据体的属性对象EntryProp,暂未增加新的控制方法: ```java package kd.bos.entity.property; public class TreeEntryProp extends EntryProp { ``` 树形单据体属性对象TreeEntryProp关联子实体类型TreeEntryType,未增加新方法,但是,会向子实体模型中,强制注册一个属性对象pid,用来记录父行内码值: ```java package kd.bos.entity; public class TreeEntryType extends EntryType{ ``` ### 6.2.2 属性值 树形单据体,数据结构与标准单据体相似,请参阅标准单据体的属性值介绍。 在树形单据体行数据包中,固定多了一个隐藏的列(pid),记录父行的标识(id)。 即树形单据体数据包中,固定有如下两列: * id:本行标识; * pid:父行标识;如果是顶级行,pid为0或者null。 ## 6.3 单据体数据操作接口 单据体数据操作接口 IEntryOperate提供的方法,也适用于树形单据体,只是对其中部分方法,针对树形单据体进行了特别的处理。 下文介绍经过特别处理的方法,其他方法,请参阅标准单据体数据操作接口IEntryOperate介绍章节。 ### 6.3.1 方法清单 **1)createNewEntryRow** * 方法介绍:为树形单据体添加顶级行,仅设置行标识id的值,不设置父行标识pid的值。 * 方法定义: ```java public int createNewEntryRow(String entrykey) ``` * 参数说明: ```java String entrykey:树形单据体标识 ``` * 应用示例: ```java this.getModel().createNewEntryRow(Key_TreeEntry); ``` **2)insertEntryRow** * 方法介绍:为指定树形单据体行,添加新的子行。 * 方法定义: ```java int insertEntryRow(String entrykey, int row); ``` * 参数说明: ```java String entrykey:树形单据体标识; int row:行标识。系统会在此行下面,增加一个子行,排在全部子行的最后面 ``` **3)deleteEntryRow** * 方法介绍:删除树形单据体行之前,判断出有子行,禁止删除。 * 方法定义: ```java void deleteEntryRow(String entryKey, int rowIndex); ``` * 参数说明: ```java String entrykey:树形单据体标识; int row:需要删除的行标识。如果此行下有子行,则删除出错,提示有子行; ``` ## 6.4 插件事件 树形单据体提供的插件事件,与标准单据体一致,无须特别介绍。

树形单据体

# 1 功能介绍树形单据体是单据体的一种特例,会将单据体以父子层级的样式去展示。其中在设计时的属性和单据体是一样的,行数据中包含id和...
点击下载文档
上一篇:通用控件——标签下一篇:子单据体
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息