K3+Cloud+BOS开发培训_插件开发1-接口_第1页
K3+Cloud+BOS开发培训_插件开发1-接口_第2页
K3+Cloud+BOS开发培训_插件开发1-接口_第3页
K3+Cloud+BOS开发培训_插件开发1-接口_第4页
K3+Cloud+BOS开发培训_插件开发1-接口_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、架构模型动态表单领域模型插件开发步骤定义插件类(参照继承体系);分析业务定义重载方法;引用相关组件(参照组件引用规则);重载方法编码;设置编译路径,编译组件;打开IDE设计器,配置插件;动态表单视图接口IDynamicFormViewIDynamicFormViewService2个重要的属性BusinessInfoLayoutInfo界面元素访问1、访问菜单this.View.GetMainBarItemthis.View.GetBarItem2、访问表单控件this.View.GetControlthis.View.GetView3、访问字段this.View.GetFieldEditor

2、this.View.LockFieldthis.View.SetFormTitle4、执行操作ShowFormUpdateViewInvokeFieldUpdateService动态表单模型接口IDynamicFormModelIDynamicFormModelService属性BusinessInfoDataObject数据操作CreateNewDataCreateNewEntryRowInsertEntryRowGetEntryCurrentRowIndexLoadReferenceDataGetValueGetEntityDataObject动态表单插件命名空间:Kingdee.BOS.

3、Core.DynamicForm.PlugIn抽 象 类:AbstractDynamicFormPlugIn业务模型类(插件)继承自抽象类表单插件单据插件Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn基础资料插件Kingdee.BOS.Core.Base.PlugIn.AbstractBasePlugIn动态表单插件Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractDynamicFormPlugIn列表插件列表插件Kingdee.BOS.Core.List.PlugIn.AbstractListPlugIn接

4、口IDynamicFormViewPlugInIDynamicFormModelPlugIn加载机制OnInitializeCreateNewData / AfterCreateNewDataBeforeBindData / AfterBindDataBeforeClosed表单操作BeforeDoOperation / AfterDoOperationBeforeF7Select / AfterF7SelectTabItemSelectedChange表单事件BarItemClickEntryBarItemClickToolBarItemClickButtonClickEntityRowCl

5、ickEntityRowDoubleClickEntryButtonCellClick模型访问操作BeforeUpdateValueBeforeDeleteRowAfterDeleteRow单据插件(基础资料插件)继承自动态表单接口IBillViewPlugInOnBillInitialize参数BillOpenParameterIBillModelPlugInBeforeSave / AfterSaveBeforeSubmit / AfterSubmit列表插件继承自动态表单接口IListViewPlugInOnListInitialize参数ListOpenParameterAfterGe

6、tDataFormatCellValueIListModelPlugInPrepareFilterParameterBatchCopyData过滤条件插件接口IListFilterViewIListFilterModelFilterObjectQuickFilterObjectIsolationOrgIdGetFilterField事件OnParseSettingFireBeforeBindFilterMetadataFireBeforeSelectTreeNodeScheme服务插件命名空间:Kingdee.BOS.Core.DynamicForm.PlugIn抽象类:AbstractOpe

7、rationServicePlugIn继承体系:(继承自抽象类)Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractOperationServicePlugIn接口IOperationServicePlugInBeforeExecuteOperationTransactionAfterExecuteOperationTransactionBeginOperationTransactionEndOperationTransaction校验服务IOperationServicePlugInOnAddValidatorsSaveValidator : Abstra

8、ctValidatorValidate表单插件和列表插件继承层次表单单据叙事簿基础资料插件针对对象动态表单单据基础资料Kingdee.BOS.Core.dllAbstractBillPlugIn 接口AbstractBillPlugIn的ViewPlugin插件接口OnBillInitialize视图模型初始化事件AfterBindData绑定数据后事件处理接口BeforeF7Select基础资料弹出前事件BeforeClosed窗口关闭前事件BarItemClick菜单单击事件处理扩展接口AfterBarItemClick菜单单击事件后BeforeDoOperation操作调用前事件Afte

9、rDoOperation操作调用完成后事件ButtonClick按钮单击事件AfterButtonClick按钮单击后事件ListViewClick列表项目单击事件TreeNodeClick树控件单击事件TreeDragDrop树控件拖拽EntityRowClick分录行单击事件AbstractBillPlugIn的ModelPlugIn接口动态表单数据模型插件编程接口定义了数据模型扩展允许通过接口处理数据,以实现特定业务需求AbstractBillPlugIn插件方法CreateNewData数据模型创建实体对象事件AfterCreateNewData数据模型创建实体对象完成后事件Befor

10、eUpdateValue数据更新前事件DataChanged数据改变后事件CreateNewEntryRow创建分录行事件BeforeDeleteRow删除分录行事件AfterDeleteRow删除分录后事件叙事簿插件接口AbstractListPlugIn 的ViewPlugIn接口序时簿视图插件编程模型接口定义了序时簿视图模型扩展允许通过接口处理视图,实现特定业务需求ListInitialize视图模型初始化事件AfterGetData完成取数后事件FormatCellValue列表格式化接口BeforeButtonClick按钮和菜单单击前事件AfterButtonClick按钮和菜单单

11、击后事件CellDbButtonClick单元格双击事件AbstractListPlugIn 的ModelPlugIn接口序时簿数据模型插件编程接口定义了序时簿数据模型扩展允许通过接口处理数据,以实现特定业务需求PrepareFilterParameter准备过滤条件CreateFilterEditorControl触发创建过滤条件控件事件BatchCopyData复制单据事件AfterBatchCopyData复制单据完毕事件服务插件插件特性IOperationServicePlugin一般会附加校验器运行于App层事务保护插件针对对象操作Kingdee.BOS.Core.dll服务插件Ab

12、stractOperationServicePlugIn应用服务器插件与业务数据更新操作在一个事务执行校验器插件AbstractValidator在服务插件的OnAddValidators加入AbstractOperationServicePlugIn插件方法OnPreparePropertys可以定制加载指定字段到实体里OnAddValidators添加自定义数据校验器BeforeExecuteOperationTransaction执行操作事务前事件AfterExecuteOperationTransaction执行操作事务后事件BeginOperationTransaction调用操作事

13、件前触发(支持事务)EndOperationTransaction调用操作事件完毕(支持事务)表单构建插件继承层次表单单据叙事簿基础资料插件针对对象动态表单单据基础资料Kingdee.BOS.Core.dllAbstractDynamicWebFormBuilderPlugIn插件方法CreateControl构建界面元素事件AfterCreateControl构建界面元素后事件CreateMainMenu构建菜单事件AfterCreateMainMenu构建菜单后事件表单插件调用过程由控制器创建视图、模型、插件代理初始化视图、模型由插件服务注册到插件代理插件代理初始化插件加载数据,通知插件创

14、建数据,创建表单数据包表单操作插件服务调用代理,发送事件通知插件代理调用插件,执行事件返回执行结果View对象属性this.View(View接口)this.View的常用属性BusinessInfo(界面业务对象元数据)LayoutInfo(布局元数据)Model(动态表单模型接口)OpenParameter(页面调用时传入的参数)方法GetFieldEditor (获取界面控件对象)UpdateView(重新更新界面数据及状态)ShowMessage(显示信息)更改界面控件状态this.View. GetFieldEditor示例: / / 设置金额列精度 / / / private vo

15、id SetColumnScale(short iScale, string strField) his.View.GetFieldEditor(strField, -1).Scale = iScale; 更新界面数据和状态this.View.UpdateView示例: / / 字段修改事件函数重载 / public override void DataChanged(DataChangedEventArgs e) switch (e.Key.ToUpper() case FPARENTDEPTID: /组织隶属方案和上级部门变化,重新生成部门全称 this.Model.SetValue(“F

16、FullName”, GetFullName(e.Key); this.View.UpdateView(“FFullName”); break; 显示信息this.View.ShowMessage示例: if (e.CurParentId = 0) this.View.ShowMessage(“请先选择顶层组织。”); return;Model对象属性this.View.Model(动态表单模型接口)This.View.Model的常用属性DataObject 当前对象的数据实体方法GetEntryCurrentRowIndex(获取分录当前行索引)GetEntryRowCount(获取分录行

17、数量)CreateNewEntryRow(新建分录行)GetValue(获取字段(对象)值)SetValue(设置字段(对象)值)获取单据属性:例如分录集合this.View.Model.DataObject示例: / / 获取分录集合 / DynamicObjectCollection entrys = (DynamicObjectCollection)this.View.Model.DataObjectPOOrderEntry;新增单据体分录行this.View.Model.CreateNewEntryRow示例:/ / 单据复制完成事件 / / public override void

18、AfterCopyData(CopyDataEventArgs e) base.AfterCopyData(e); /单据复制完,处理单据体 _billFormID = “”; this.View.Model.CreateNewEntryRow(“FFieldControl”); UpdateFieldControlRowLock(); 获取字段值this.View.Model.GetValue示例: /获取根节点组织复制到目标节点 Organization org = (DynamicObject) this.View.Model.GetValue(FRootORGID); targetRoot.id = rootOrgId; targetRoot.text = org.Name.ToString(); targetRoot.children = new List(); ctl = this.View.GetControl(FOrgTree);ctl.SetRootN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论