运行在App服务层的插件,如何加载单据,IViewService.Load()

Ø 运行在App层的插件
包括操作插件、单据转换插件、反写插件、账表取数插件等,此类插件掌控着某种特定服务的执行过程,与交互界面无关;
Ø 实现思路
通过Kingdee.BOS.App.dll的ServiceHelper类获取ViewService服务,调用此服务提供的Load方法
Ø 插件准备
插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、Kingdee.BOS.DataEntity.dll
类文件引用相关命名空间,详见示例代码
Ø IViewService接口介绍
public DynamicObject[] Load(Context ctx, BusinessInfo businessInfo, List<SelectorItemInfo> selector, OQLFilter ofilter).
构建过滤条件OQLFilter,检索某些字段片段信息(List<SelectorItemInfo>)的目标数据集合
public DynamicObject[] Load(Context ctx, DynamicObjectType type, QueryBuilderParemeter queryParemeter)
构建过滤条件QueryBuilderParemeter,检索满足条件的目标数据集合
public DynamicObject[] Load(Context ctx, Object[] pkArray, DynamicObjectType type)
指定目标数据id集合,根据数据id集合,动态对象类型,检索满足条件的目标数据集合
public DynamicObject[] Load(Context ctx, string formid, List<SelectorItemInfo> selector, OQLFilter ofilter)
指定单据模型唯一标示,感兴趣的字段片段信息(也就是说,只取部分字段出来,不会把这个模型的所有字段数据都取出来),构建过滤条件OQLFilter
Ø 方法参数介绍
名称 | 类型 | 说明 |
ctx | Context | 系统上下文信息 |
businessInfo | BusinessInfo | 待检索数据的模型元数据信息 |
selector | List<SelectorItemInfo> | 字段片段信息 |
ofilter | OQLFilter | 快速过滤条件对象 |
type | DynamicObjectType | 动态实体类型 |
queryParemeter | QueryBuilderParemeter | 查询过滤对象 |
pkArray | Object[] | 目标实体数据id集合 |
formid | string | 待查询模型唯一标示 |
Ø 示例代码
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.Core.SqlBuilder; using Kingdee.BOS.Orm.DataEntity; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace MyOperaionServicePlugIn { public class Class6 : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { //加载id为10001的物料数据 //获取ViewService IViewService viewService = Kingdee.BOS.App.ServiceHelper.GetService<IViewService>(); //获取元数据服务 IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>();
//获取物料元数据 FormMetadata materialMetada = metadataService.Load(this.Context, "BD_Material") as FormMetadata;
//构建过滤条件
| |
运行在App服务层的插件,如何加载单据,IViewService.Load()
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



