//物料属性
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类所在的命名空间
相关推荐: