submitService.Submit( this.Context,
materialMetadata.BusinessInfo, newobject[] { 10001 }, \); } } }
2.1.4. 如何调用审核/反审核(Audit/UnAudit)操作
2.1.4.1. Web层插件,如何调用审核/反审核(Audit/UnAudit)操作
? 实现思路
? 调用Kingdee.BOS.ServiceHelper.dll组件提供的BusinessDataServiceHelper类提供的
SetBillStatus方法
? 插件准备
? 插件工程引用Kingdee.BOS.ServiceHelper.dll组件
? 插件类文件引用BusinessDataServiceHelper所在的命名空间
? BusinessDataServiceHelper.SetBillStatus方法介绍
SetBillStatus方法与SetStatus方法看上去类似,其实完全不一样,其参数列表也完全不一样,调用单据审核操作的服务端要使用SetBillStatus方法,SetStatus方法后续介绍 ? SetBillStatus方法参数介绍 名称 ctx businessInfo pkEntryIds paras 类型 Context BusinessInfo List
? 示例代码 C#
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; 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(\区分当前类应用在哪个模型上\)] publicclassClass4 : AbstractListPlugIn {
publicoverridevoid ButtonClick(ButtonClickEventArgs e) {
List
newList
KeyValuePair
IOperationResult auditResult = BusinessDataServiceHelper.SetBillStatus( this.Context,
this.View.BusinessInfo,
lstKeyValuePairs, null, \);
//反审核id为10001的当前单据
IOperationResult unAuditResult = BusinessDataServiceHelper.SetBillStatus( this.Context,
this.View.BusinessInfo,
lstKeyValuePairs, null, \); } } }
2.1.4.2. App层插件,如何调用审核/反审核(Audit/UnAudit)操作
? 实现思路
? 调用Kingdee.BOS.App.dll组件提供的ServiceHelper类提供的GetService泛型方法,
获取改变单据状态服务,调用此服务提供的SetBillStatus方法
? 插件准备
? 插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、
Kingdee.BOS.DataEntity.dll
? 类文件引用相关命名空间,详见示例代码
? 接口介绍
? 同Web层插件介绍
? 示例代码 C#
using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.DynamicForm; 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 {
publicclassClass3 : AbstractOperationServicePlugIn {
publicoverridevoid BeforeExecuteOperationTransaction(
BeforeExecuteOperationTransaction e)
{
//审核\\反审核id为10001的物料数据 //获取单据状态转换服务
ISetStatusService setStatusService =
Kingdee.BOS.App.ServiceHelper.GetService
//获取元数据服务
IMetaDataService metaDataService =
Kingdee.BOS.App.ServiceHelper.GetService
//构建id为10001的数据集合
List object>>(); KeyValuePair FormMetadata materialMetaData = metaDataService.Load(this.Context, \) asFormMetadata; //审核 IOperationResult auditResult = setStatusService.SetBillStatus( this.Context, materialMetaData.BusinessInfo, lstKeyValuePairs, null, \); //反审核 IOperationResult unAuditResult = setStatusService.SetBillStatus( this.Context, materialMetaData.BusinessInfo, lstKeyValuePairs, null, \); } } } 2.1.5. 如何调用禁用(Disabled)操作 2.1.5.1. Web层插件,如何调用禁用(Disabled)操作 ? 实现思路 ? 调用Kingdee.BOS.ServiceHelper.dll组件提供的BusinessDataServiceHelper类所提供 的SetState方法 ? 插件准备 ? 插件工程引用Kingdee.BOS.ServiceHelper.dll组件 ? 插件类文件引用BusinessDataServiceHelper所在的命名空间 ? BusinessDataServiceHelper.SetState方法介绍 ? SetState方法直接操作数据库,执行update语句,按方法参数构建一条例如update xxx set xxx =’ xxx’ where xxx = xxx的指令 ? SetState参数介绍 名称 ctx tableName fieldName fieldValue pkFieldName pkFieldValues 类型 Context string string string string object[] 说明 系统上下文全局信息 待执行update指令的表名 待禁用的状态字段的字段名 待禁用的状态字段的目标值 当前表的唯一标识字段名 当前表的唯一标示字段值集合 ? 示例代码 C# using Kingdee.BOS.Core.DynamicForm.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 { publicclassClass5 : AbstractDynamicFormPlugIn { publicoverridevoid ButtonClick(ButtonClickEventArgs e) { //禁用物料id为10001和10002的数据 BusinessDataServiceHelper.SetState( this.Context, \, \, \, \, newobject[] { 10001, 10002 }); } } } 2.1.5.2. App层插件,如何调用禁用(Disabled)操作 ? 实现思路 ? 调用Kingdee.BOS.App.dll组件提供的ServiceHelper类提供的GetService泛型方法, 访问BusinessDataService服务的SetState方法