单据转换插件--构建源单查询参数事件(OnQueryBuilderParemeter )原创
13人赞赏了该文章
343次浏览
编辑于2023年09月20日 09:21:19
一、说明
1、OnQueryBuilderParemeter 构建源单查询参数事件,主要用来构建查询那些字段和过滤条件,在平台查询参数构建后触发,可以增加自定义字段。
2、事件参数:QueryBuilderParemeterEventArgs
Context 输入参数,上下文信息
SourceBusinessInfo 输入参数,源单据业务对象(元数据)
DicFieldAlias 字段Key与字段别名关系字典
SelectItems 需要查询的字段集合
QueryParameter 查询参数
二、相关代码
using System; using System.ComponentModel; using System.Text; using Kingdee.BOS.Core; using Kingdee.BOS.Util; using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn; using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Core.Metadata.ConvertElement; using Kingdee.BOS.Core.Metadata.EntityElement; namespace Kingdee.BOS.TestPlugIn.BillABillB { [HotUpdate] [Description("单据转换插件")] public class BillConvertPlugIn : AbstractConvertPlugIn { /// <summary> /// 构建源单查询参数事件 /// </summary> /// <param name="e"></param> public override void OnQueryBuilderParemeter(QueryBuilderParemeterEventArgs e) { base.OnQueryBuilderParemeter(e); //直接增加单据上的文本,数量,基础资料等字段 var selectItem1 = new SelectorItemInfo("fieldKey1"); e.DicFieldAlias["fieldKey1"] = "fieldKey1"; e.QueryParameter.SelectItems.Add(selectItem1); //增加基础资料中的简单引用字段,比如物料中的备注 var fMaterialKey = "fMaterialKey"; var fDemoKey = "fDemoKey"; var sourceKey = string.Format("{0}.{1}", fMaterialKey, fDemoKey); var selectItem = new SelectorRefItemInfo(sourceKey); string fieldAlias = string.Format("f{0}", e.DicFieldAlias.Count); e.DicFieldAlias[sourceKey] = fieldAlias; selectItem.PropertyName = fieldAlias; e.QueryParameter.SelectItems.Add(selectItem); // 增加基础资料中的简单引用字段,比如物料中的使用组织内码 var fMaterialKey2 = "fMaterialKey"; var fUserOrgKey = "fUserOrgKey.Id"; var sourceKey2 = string.Format("{0}.{1}", fMaterialKey, fUserOrgKey); var selectItem2 = new SelectorRefItemInfo(sourceKey); string fieldAlias2 = string.Format("f{0}", e.DicFieldAlias.Count); e.DicFieldAlias[sourceKey2] = fieldAlias2; selectItem.PropertyName = fieldAlias2; e.QueryParameter.SelectItems.Add(selectItem2); //增加辅助属性仓位 var selectItem3 = new SelectorRefItemInfo(string.Format("{0}.{1}", "FStock1", "FStockProperty")); string fieldAlias3 = string.Format("f{0}", e.DicFieldAlias.Count); e.DicFieldAlias["FStock1.FStockProperty"] = fieldAlias3; //仓位属性列别名 selectItem.PropertyName = fieldAlias3; e.SelectItems.Add(selectItem3); } } }
赞 13
13人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0