子单据体

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

子单据体

# 1 功能介绍 与父单据体的行关联,平级展示数据,一般用来单据录入数据。子单据体是单据体的一种特例,二者的属性和视觉完全相同,只不过子单据体需要关联父单据体,当父单据体选中行改变时,会切到该行关联当子单据体数据。 # 2 控件对象 `kd.bos.form.control.SubEntryGrid` # 3 属性说明 子单据体属性、插件代码和单据体相同,请参考[单据体](https://vip.kingdee.com/article/224093028678171392) # 4 子单据体配置 ![zipeizhi.webp](/download/0100af19e242c3ff42dfa6c6a7426ca61928.webp) # 5 子单据体接口介绍 ## 5.1 控件编程模型 子单据体的控件编程模型为 SubEntryGrid,派生自标准单据体的控件编程模型 EntryGrid,暂未增加新的控制方法: ```java package kd.bos.form.control; public class SubEntryGrid extends EntryGrid { ``` ## 5.2 数据模型 ### 5.2.1 属性对象 子单据体在主实体模型 MainEntityType 中的属性对象是 SubEntryProp,派生自单据体的属性对象EntryProp,暂未增加新方法: ```java package kd.bos.entity.property; public class SubEntryProp extends EntryProp { ``` 子单据体属性对象SubEntryProp关联子实体类型SubEntryType,未增加新方法: ```java package kd.bos.entity; public class SubEntryType extends EntryType ``` ### 5.2.2 属性值 子单据体,数据结构与标准单据体相似,请参阅[标准单据体的属性值介绍](https://vip.kingdee.com/knowledge/specialDetail/218022218066869248?category=218035559762017280&id=224093028694948608)。不过,子单据体的值,是放在父单据体数据包下面的; 如果从单据数据包入手,则必须先取到父单据体行数据包,然后再从下取子单据体行集合; 如下代码演示如何在动态表单插件中,取到子单据体行数据(必须指定父行号、子行号): ```java /** * 取子单据体行数据包 * * @param parentRow 父单据体行索引,必须 * @param row 子单据体行索引,必须 * @return */ private DynamicObject getSubEntryRow(int parentRow, int row){ DynamicObject subRowObj = null; // 方法一:调用IEntryOperate中的方法,获取子单据体行 IEntryOperate entryOperate = this.getModel(); entryOperate.setEntryCurrentRowIndex(KEY_ENTRYENTITY, parentRow); // 指定父行号 (必须) subRowObj = entryOperate.getEntryRowEntity(KEY_SUBENTRYENTITY, row); // 取指定行数据包 // 方法二:自行到单据数据包中,取子单据体行 DynamicObject billObj = this.getModel().getDataEntity(true); // 先取单据体行集合,之后取单据体行数据包 DynamicObjectCollection parentRowObjs = billObj.getDynamicObjectCollection(KEY_ENTRYENTITY); DynamicObject parentRowObj = parentRowObjs.get(parentRow); // 从单据体行数据包中,取子单据体行集合 DynamicObjectCollection subRowObjs = parentRowObj.getDynamicObjectCollection(KEY_SUBENTRYENTITY); subRowObj = subRowObjs.get(row); return subRowObj; } ``` ## 5.3 单据体数据操作接口 单据体数据操作接口IEntryOperate提供的方法,同样适用于子单据体。 但在调用IEntryOperate方法之前,必须先指定子单据体的父单据体行号,否则处理的数据行会错位。 动态表单插件,可以使用如下示意代码,获取 IEntryOperate 接口实例,之后调用其方法: ```java IEntryOperate entryOperate = this.getModel(); entryOperate.setEntryCurrentRowIndex(KEY_ENTRYENTITY, parentRow); // 必须先指定父行号 subRowObj = entryOperate.getEntryRowEntity(KEY_SUBENTRYENTITY, row); // 取指定行数据包 ``` ## 5.4 插件事件 子单据体提供的[插件事件](https://vip.kingdee.com/article/228922061182734592),与标准单据体一致,无须特别介绍。

子单据体

# 1 功能介绍与父单据体的行关联,平级展示数据,一般用来单据录入数据。子单据体是单据体的一种特例,二者的属性和视觉完全相同,只不过...
点击下载文档
上一篇:树形单据体下一篇:卡片分录
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息