1.3 动态表单插件
金蝶云社区-云小爱
云小爱
4人赞赏了该文章 8,144次浏览 未经作者许可,禁止转载编辑于2014年04月02日 17:12:50
动态表单模型是通过插件代理实现业务逻辑,对外部的接口主要是插件,这些接口可以提供给二次开发使用。 命名空间Kingdee.BOS.Core.DynamicForm.PlugIn 主要类及说明:
[tr][td=3%] [td=44%]Class[td=51%]Description
[tr][td=3%][td=44%]AbstractDynamicFormDataBinder [td=51%]动态表单数据绑定器抽象类
[tr][td=3%][td=44%]AbstractDynamicFormPlugIn [td=51%]动态表单插件抽象基类
[tr][td=3%][td=44%]AbstractDynamicWebFormBuilderPlugIn [td=51%]动态表单页面元数据构建插件
[tr][td=3%][td=44%]AbstractOperationServicePlugIn [td=51%]操作服务插件抽象类
主要接口:
[tr][td=3%] [td=36%]Interface[td=59%]Description
[tr][td=3%][td=36%]IDynamicFormModelPlugIn [td=59%]动态表单Model层插件控制接口;实现本接口的插件,可以接收Model层的事件
[tr][td=3%][td=36%]IDynamicFormViewPlugIn [td=59%]动态表单View层插件接口;实现本接口的插件可以接收动态表单View层事件
继承体系动态表单插件分4类,单据、基础资料、动态表单和列表。
[tr][td=92]业务模型[td=123]类(插件、服务)[td=365]继承自抽象类
[tr][td=1,3,92]表单插件[td=123]单据插件[td=365]Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn
[tr][td=123]基础资料插件[td=365]Kingdee.BOS.Core.Base.PlugIn.AbstractBasePlugIn
[tr][td=123]动态表单插件[td=365]Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractDynamicFormPlugIn
[tr][td=92]列表插件[td=123]列表插件[td=365]Kingdee.BOS.Core.List.PlugIn.AbstractListPlugIn
接口视图访问接口接口名:IdynamicFormViewPlugIn动态表单View层插件接口;实现本接口的插件可以接收动态表单View层事件。
[tr][td=18] [td=195]Name[td=311]Description
[tr][td=18][td=195]AfterBarItemClick[td=311]菜单单击事件完成后处理扩展接口
[tr][td=18][td=195]AfterBindData[td=311]绑定数据后事件处理后扩展接口
[tr][td=18][td=195]AfterButtonClick[td=311]按钮单击之后调用
[tr][td=18][td=195]AfterCopyRow[td=311]分录行拷贝后调用
[tr][td=18][td=195]AfterDoOperation[td=311]操作完成后调用
[tr][td=18][td=195]AfterEntryBarItemClick[td=311]分录菜单单击事件处理扩展接口
[tr][td=18][td=195]AfterF7Select[td=311]基础资料选择返回后调用
[tr][td=18][td=195]AfterToolBarItemClick[td=311]工具栏单击事件处理扩展接口
[tr][td=18][td=195]BarItemClick[td=311]主菜单单击事件处理扩展接口
[tr][td=18][td=195]BeforeBindData[td=311]绑定数据前事件处理后扩展接口,主要用于加载数据到界面前对控件状态进行设置
[tr][td=18][td=195]BeforeClosed[td=311]页面准备关闭
[tr][td=18][td=195]BeforeDoOperation[td=311]操作开始前调用
[tr][td=18][td=195]BeforeF7Select[td=311]基础资料界面调出之前抛出
[tr][td=18][td=195]ButtonClick[td=311]按钮单击时调用
[tr][td=18][td=195]EntityRowClick[td=311]分录行单击事件
[tr][td=18][td=195]EntityRowDoubleClick[td=311]分录行双击事件
[tr][td=18][td=195]EntryBarItemClick[td=311]分录菜单单击事件处理扩展接口
[tr][td=18][td=195]EntryButtonCellClick[td=311]表格按钮单击时调用
[tr][td=18][td=195]FieldLabelClick[td=311]字段标题单击事件
[tr][td=18][td=195]FireEntryCheck[td=311]单据体列全选事件
[tr][td=18][td=195]ListViewClick[td=311]列表控件单击事件
[tr][td=18][td=195]OnInitialize[td=311]页面初始化
[tr][td=18][td=195]TabItemSelectedChange[td=311]页签控件的页签选中事件
[tr][td=18][td=195]ToolBarItemClick[td=311]工具栏单击事件处理扩展接口
[tr][td=18][td=195]TreeDragDrop[td=311]KDTree 拖拽事件
[tr][td=18][td=195]TreeNodeClick[td=311]TreeView 节点单击之后调用
[tr][td=18][td=195]TreeNodeDoubleClick[td=311]TreeView 节点双击之后调用
模型访问接口接口名:IdynamicFormModelPlugIn动态表单Model层插件控制接口;实现本接口的插件,可以接收Model层的事件。主要包括:
[tr][td=18] [td=196]Name[td=322]Description
[tr][td=18][td=196]AfterCopyRow[td=322]分录行拷贝后扩展接口
[tr][td=18][td=196]AfterCreateNewData[td=322]业务对象创建后的扩展接口
[tr][td=18][td=196]AfterCreateNewEntryRow[td=322]新增、插入、多行输入后调用
[tr][td=18][td=196]AfterDeleteEntry[td=322]清空分录数据完成时调用
[tr][td=18][td=196]AfterDeleteRow[td=322]成功删除分录行后扩展接口调用
[tr][td=18][td=196]BeforeDeleteEntry[td=322]清空分录数据前调用,可以由插件模型决定是否Cancel本次行为
[tr][td=18][td=196]BeforeDeleteRow[td=322]删除分录行前调用
[tr][td=18][td=196]BeforeSetItemValueByNumber[td=322]在根据编码检索数据之前调用; 通过重载本事件,可以设置必要的过滤条件,以限定检索范围;
[tr][td=18][td=196]BeforeUpdateValue[td=322]值改变更新前的扩展接口
[tr][td=18][td=196]CreateNewData[td=322]创建新业务对象扩展接口,插件可以更加需要自己创建对象
[tr][td=18][td=196]DataChanged[td=322]字段值改变后扩展接口
[tr][td=18][td=196]GetTreeViewData[td=322]请求取树形控件数据
加载机制动态表单元模型包括外观模型和表单逻辑模型,第一次访问时会先加载元数据,初始化视图和模型对象,初始化页面,然后创建数据包并绑定数据。对于二次开发提供了一系列插件允许二次开发在加载表单时对视图、模型、数据包及界面进行控制,插件在加载过程中的执行顺序如下:PreOpenForm 动态表单打开前事件OnInitializeService 服务初始化OnSetBusinessInfo 处理逻辑元数据OnSetLayoutInfo 处理外观元数据OnCreateDataBinder 创建数据绑定器事件OnInitialize 页面初始化CreateNewData 动态表单数据包创建AfterCreateNewEntryRow 创建分录行后AfterCreateNewData 动态表单数据包创建后AfterCreateModelData 模型数据包创建完毕OnLoad 页面加载BeforeBindData 绑定数据前事件AfterBindData 绑定数据及控件状态BeforeClosed 页面关闭前 对于大多数二次开发来说并不需要掌握所有接口。