IDynamicFormModel接口调用示例代码.docx
文本预览下载声明
IDynamicFormModel接口调用示例代码
修订记录
Ver. No
日期
编制\修订
校对
批准
修改的章节号
V1.0丁振华
吴亮
赖碧云
初始版本
问题和意见
如果你对文档有任何意见、问题或想法,或者你的问题未在此文档中找到答案, HYPERLINK mailto:请通过电子邮件联系我们:%20liang_wu@ 请通过电子邮件联系我们: HYPERLINK mailto:liang_wu@ liang_wu@
IDynamicFormModel接口概要说明
IDynamicFormModel接口,对动态表单的数据模型进行管理,广泛应用于插件、操作、表单服务等需要存取表单数据的模块;
表单维护插件(AbstractDynamicFormPlugIn),属性Model指向IDynamicFormModel的接口实例;
公共属性
BillBusinessInfo
当前界面所管理的单据元数据对象。
语法
属性定义
C#
?
BusinessInfo BillBusinessInfo { get; }
备注
对于单据维护界面,此属性就是本单的元数据;而对于列表界面来说,此属性是列表界面展示的单据元数据。
常用属性
名称
描述
Elements
返回单据上的全部元素,包括全部字段、实体
Entrys
返回单据上的全部实体
MainOrgField
返回单据的主业务组织字段
常用方法
名称
描述
GetBillNoField()
获取单据编号字段,如果是基础资料,则返回基础资料编码
GetBillTypeField()
获取单据类型字段
GetBosFields()
获取单据全部字段
GetDynamicObjectType([bool forceRebuild = false])
获取单据的ORM数据模型对象,
参数决定是否重新构建ORM数据对象模型。单据元数据改变后,需要强制要求重新构建ORM数据对象模型。
GetEntity(string key)
获取单据的实体元数据
GetField(string key)
获取单据字段元数据
GetFieldList()
获取单据全部字段元数据列表
GetForm()
获取单据整体属性元数据
GetRealField(string key)
获取代理字段的真实字段元数据
GetRedBlueField()
获取红蓝单标志字段
GetSubBusinessInfo(System.Collections.Generic.Liststring sectionKeys)
根据所选字段,产生节选单据元数据
案例 – 供应链单据列表,默认按照日期、单据编号排序
代码来源
Kingdee.K3.SCM.Business.PlugIn.SCMBillList
需求背景
供应链单据,显示列表时,如果用户未明确指定排序字段,则列表将按照创建日期、单据编号、分录序号排序;
实现方案
设计一个公用列表插件,捕获PrepareFilterParameter事件,如判断出用户未设置排序字段,则到单据元数据中,尝试取单据的创建日期、单据编号、分录序号等信息,以这些字段作为排序字段。
注意,因为这是一个公用插件,需要用到BillBusinessInfo属性,动态的取创建日期、单据编号、分录序号等字段,不能直接写死字段Key,否则可能会引发字段不存在的错误。
关键字
单据元数据 界面元数据 去指定类型字段 取创建日期字段 取单据编号字段 列表排序
示例代码
C#
?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata.FormElement;
using Kingdee.BOS.Core.Metadata.BarElement;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.K3.Core;
using Kingdee.K3.Core.SCM;
using Kingdee.BOS.Core.Bill;
using Kingde
显示全部