第一范文网 - 专业文章范例文档资料分享平台

K3Cloud+BOS+插件开发百问百答

来源:用户分享 时间:2025/8/6 3:37:05 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

//物料属性

lstSelectorItemInfos.Add(newSelectorItemInfo(\)); //使用组织

lstSelectorItemInfos.Add(newSelectorItemInfo(\));

//方法1:

DynamicObject[] objs = viewService.Load( this.Context,

materialMetada.BusinessInfo.GetDynamicObjectType(), queryParameter);

//方法2:

objs = viewService.Load( this.Context,

newobject[] { 10001 },

materialMetada.BusinessInfo.GetDynamicObjectType());

//方法3:

objs = viewService.Load( this.Context,

materialMetada.BusinessInfo, lstSelectorItemInfos, filter);

//方法4:

objs = viewService.Load( this.Context, \,

lstSelectorItemInfos, filter); } } }

2.1.2. 如何调用保存(Save)操作

2.1.2.1. Web层插件,如何调用保存(Save)操作

? 实现思路

? 调用BusinessDataServiceHelper类提供的Save方法

? 插件准备

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

? 类文件引用BusinessDataServiceHelper类所在的命名空间Kingdee.BOS.ServiceHelper

? BusinessDataServiceHelper.Save方法介绍

BusinessDataServiceHelper提供4个Save方法,看上去差不多,其实本质有区别,可以将这4个方法区分为2类方法

? 直接调用Orm把数据保存到数据库

? publicstaticDynamicObject Save(Context ctx, DynamicObject dataObject) ? publicstaticDynamicObject[] Save(Context ctx, DynamicObject[]

dataObject)

? 模拟保存操作服务端完整过程,调用填充主键、生成单据编号,执行校验器,调用

服务端服务与服务端插件,最后调用Orm把数据保存到数据库 ? publicstaticDynamicObject[] Save(Context ctx, BusinessInfo

businessInfo, DynamicObject[] dataObject, string operationNumber)

? publicstaticIOperationResult

string operationNumber = \)

Save(Context

ctx,

BusinessInfo

businessInfo, DynamicObject dataObject, OperateOption option = null,

? Save方法参数介绍 名称 ctx dataObject businessInfo option operationNumber 类型 Context DynamicObject BusinessInfo OperateOption string 说明 系统全局信息,这里主要使用全局信息中的数据库连接信息 待保存的数据对象 待保存数据对象的元数据信息 自定义额外参数对象,服务端服务和服务端插件都能持有此对象 当前操作的操作码

? 示例代码 C#

using Kingdee.BOS.Core.Bill.PlugIn;

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

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

using System.Threading.Tasks;

namespace MyDynamicFormPlugIn {

[System.ComponentModel.Description(\区分当前类应用在哪个模型上\)] publicclassClass2 : AbstractBillPlugIn

{

publicoverridevoid ButtonClick(ButtonClickEventArgs e) {

//直接调用Orm保存,把数据保存到数据库

BusinessDataServiceHelper.Save(this.Context, this.View.Model.DataObject); //执行保存服务端服务和保存操作的服务端插件

BusinessDataServiceHelper.Save(this.Context, this.View.BusinessInfo,

this.View.Model.DataObject);

} } }

2.1.2.2. App层插件,如何调用保存(Save)操作

? 实现思路

? 通过Kingdee.BOS.App.dll组件提供的ServiceHelper类,调用GetService泛型方法,

获取SaveService服务,调用SaveService提供的Save方法

? 插件准备

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

Kingdee.BOS.DataEntity.dll

? 类文件引用相关命名空间,详见示例代码

? ISaveService.Save接口介绍

同Web层插件介绍,分为两类方法

详见Web层插件、BusinessDataServiceHelper.Save介绍

? 示例代码 C#

using Kingdee.BOS.Contracts;

using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Orm.DataEntity; using System;

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

using System.Threading.Tasks;

namespace MyOperaionServicePlugIn

{

[System.ComponentModel.Description(\区分当前类应用在哪个操作上\)] publicclassClass1 : AbstractOperationServicePlugIn {

publicoverridevoid BeforeExecuteOperationTransaction(

BeforeExecuteOperationTransaction e)

{

//例如:保存id为10001的物料 //获取元数据服务

IMetaDataService metadataService =

Kingdee.BOS.App.ServiceHelper.GetService();

//获取保存服务

ISaveService saveService = Kingdee.BOS.App.ServiceHelper.GetService(); //获取加载数据服务

IViewService viewService = Kingdee.BOS.App.ServiceHelper.GetService();

//获取物料元数据

FormMetadata materialMetadata = metadataService.Load(this.Context,\)

asFormMetadata;

//获取id为10001的物料数据

DynamicObject[] objs = viewService.Load( this.Context,

newobject[] { 10001 },

materialMetadata.BusinessInfo.GetDynamicObjectType()); //保存id为10001的物料

saveService.Save(this.Context, objs);

saveService.Save(this.Context, materialMetadata.BusinessInfo, objs); } } }

2.1.3. 如何调用提交(Submit)操作

2.1.3.1. Web层插件,如何调用提交(Submit)操作

? 实现思路

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

Submit方法

? 插件准备

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

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

搜索更多关于: K3Cloud+BOS+插件开发百问百答 的文档
K3Cloud+BOS+插件开发百问百答.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c85ctp3xc1d2mdyw42w5a_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top