K3Cloud+BOS+插件开发百问百答(8)

2019-08-20 18:49

? 插件准备

? 插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、

Kingdee.BOS.DataEntity.dll ? 类文件引用相关命名空间,详见示例代码

? 接口介绍

? 同Web层插件介绍 ? 示例代码 C#

using Kingdee.BOS.Contracts;

using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using System;

using System.Collections.Generic; using System.Linq; using System.Text;

using System.Threading.Tasks;

namespace MyOperaionServicePlugIn {

publicclassClass4 : AbstractOperationServicePlugIn {

publicoverridevoid BeforeExecuteOperationTransaction(

BeforeExecuteOperationTransaction e)

{ //获取数据服务

IBusinessDataService businessDataService =

Kingdee.BOS.App.ServiceHelper.GetService(); businessDataService.SetState( this.Context, \, \, \,

\,

newobject[] { 10001, 10002 }); } } }

2.1.6. 如何删除(Delete)单据

2.1.6.1. Web层插件,如何删除(Delete)单据

? 实现思路

? 调用Kingdee.BOS.ServiceHelper.dll组件的BusinessDataServiceHelper类提供的Delete

方法

? 插件准备

? 插件工程引用Kingdee.BOS.ServiceHelper.dll组件

? 插件类文件引用BusinessDataServiceHelper所在的命名空间

? 方法介绍

BusinessDataServiceHelper提供两个Delete方法,其区别在于

? 参数不带元数据描述信息的,直接执行数据库删除操作,把数据删除

? publicstaticvoid Delete(Context ctx, object[] Ids, DynamicObjectType

dynamicObjectType)

? 参数带元数据描述信息的,执行删除操作的服务端完整服务,如执行删除操作的校

验器、删除操作的服务端服务、删除操作的服务端插件

? publicstaticIOperationResult Delete(Context ctx, BusinessInfo

businessInfo, object[] Ids, OperateOption option = null, string operationNumber = \)

? 参数介绍 名称 ctx Ids dynamicObjectType businessInfo option 类型 Context object[] DynamicObjectType BusinessInfo OperateOption 说明 系统上下文全局信息 待删除数据的id集合 待删除数据的动态实体类型 待删除数据的元数据描述信息 业务控制额外选项,删除的服务端服务和插件都能持有此对象 删除操作的操作码 operationNumber string ? 示例代码 C#

using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.ServiceHelper;

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

using System.Threading.Tasks;

namespace MyDynamicFormPlugIn {

publicclassClass6 : AbstractDynamicFormPlugIn {

publicoverridevoid ButtonClick(ButtonClickEventArgs e) {

//删除id为10001和10002的物料 //获取物料元数据

FormMetadata materialMetadata =

MetaDataServiceHelper.Load(this.Context,\) asFormMetadata; //模拟删除服务端操作完整过程

BusinessDataServiceHelper.Delete( this.Context,

materialMetadata.BusinessInfo, newobject[] { 10001, 10002 }); } } }

2.1.6.2. App层插件,如何删除单据

? 实现思路

? 调用Kingdee.BOS.App.dll组件的ServiceHelper类提供的GetService泛型方法获取删

除服务

? 插件准备

? 插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、

Kingdee.BOS.DataEntity.dll ? 类文件引用相关命名空间,详见示例代码

? 接口介绍

? 同Web层插件介绍

? 示例代码 C# using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using System;

using System.Collections.Generic; using System.Linq; using System.Text;

using System.Threading.Tasks;

namespace MyOperaionServicePlugIn {

publicclassClass5 : AbstractOperationServicePlugIn {

publicoverridevoid BeforeExecuteOperationTransaction(

BeforeExecuteOperationTransaction e)

{ //获取删除服务

IDeleteService deleteService =

Kingdee.BOS.App.ServiceHelper.GetService(); //获取元数据服务

IMetaDataService metaDataService =

Kingdee.BOS.App.ServiceHelper.GetService(); //获取物料元数据

FormMetadata materialMetadata =

metaDataService.Load(this.Context,\) asFormMetadata; //执行删除服务的完整过程(推荐方式) deleteService.Delete( this.Context,

materialMetadata.BusinessInfo, newobject[] { 10001, 10002 });

//直接执行数据删除 (风险极高,仅适用于未定义单据,只是利用ORM模型存取数据的情况)

// 调用此服务会跳过删除校验,仅删除ORM模型内含表格的数据,其他相关数据不会处理,如果有

上下游单据及反写,不会撤销关联及回滚反写,从而造成数据错误! deleteService.Delete( this.Context,

newobject[] { 10001, 10002 },

materialMetadata.BusinessInfo.GetDynamicObjectType()); } } }

2.2. 调用单据操作后,如何判断结果,并处理交互提示

? 操作返回结果接口定义: C# publicinterfaceIOperationResult : IInteractionResult ? IInteractionResult接口定义: C#

publicinterfaceIInteractionResult {

// 交互表单显示标题

string FormTitle { get; set; } // 交互上下文信息

InteractionContext InteractionContext { get; set; } // 本次交互的发起人 string Sponsor { get; set; } }

? 交互上下文信息定义: C#

publicclassInteractionContext {

public InteractionContext(); // 当前表单模型信息

publicBusinessInfo BusinessInfo { get; } // 数据上下文

publicContext Context { get; set; } // 交互服务操作的实体集合

publicExtendedDataEntity[] DataEntities { get; set; }

// 自定义交互表单的初始化参数:InteractionFormId属性有值时,本属性才生效 publicDynamicFormShowParameter FormShowParameter { get; set; } // 交互表单标识:默认为BOS_K3Displayer publicstring InteractionFormId { get; set; }

// 是否交互(发现有领域把此当成单纯的自定义信息提示用,所以加此标识来加以区分)默认是交互类型异常,如作它用,请在此标识

publicbool IsInteractive { get; set; } // K3显示器模型

publicK3DisplayerModel K3DisplayerModel { get; set; } // 其它控制选项

publicOperateOption Option { get; set; }

// 简单交互信息(批量自定义消息时,此属性建议赋值,以便平台在批量操作时作简单提示) publicstring SimpleMessage { get; set; }


K3Cloud+BOS+插件开发百问百答(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑电气毕业设计说明书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: