单据转换插件--获取源单数据前事件(OnBeforeGetSourceData)
一、说明
1、OnBeforeGetSourceData 获取源单数据前事件,在把查询参数对象解析为查询对象,执行sql脚本前触发,
对查询对象、参数和过滤描述进行干预,这是获取源单数据的最后一次干预,已经生成了相应的sql脚本,不会再去生成脚本了。
2、BeforeGetSourceDataEventArgs参数,相关属性
1)Context 上下文
2)BusinessInfo 源单元数据信息
3)QueryObject 输入/出参数,查询对象
4)ParamList 输入/出参数,SqlParam参数,输入值为解析源单选中行时在OnInSelectedRow事件中加入的参数或行数大于100产生的参数
5)filterDescriptionFilter 输入/出参数, 输入值为解析源单选中行产生的过滤条件,存在于下推筛选源单描述对象中,
自定义此处的过滤条件,当没有取到任何源单数据时,会影响到根据筛选源单描述对象找出具体不满足的条件情况。
二、代码示例
1、取数之前加上分录内码为1111的数据
using System; using System.ComponentModel; using System.Text; using System.Linq; using Kingdee.BOS.Core; using Kingdee.BOS.Util; using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn; using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args; namespace Kingdee.BOS.TestPlugIn.BillABillB { [HotUpdate] [Description("单据转换插件")] public class BillConvertPlugIn : AbstractConvertPlugIn { private string _pkKey = string.Empty; public override void OnInSelectedRow(InSelectedRowEventArgs e) { base.OnInSelectedRow(e); this._pkKey = e.PkKey; } public override void OnBeforeGetSourceData(BeforeGetSourceDataEventArgs e) { base.OnBeforeGetSourceData(e); var entryTbName = "BillA_Entry"; //表名 var entryTbNameAlias = e.QueryObject.DicTableAlias[entryTbName];//表别名 //再取数之前加上分录内码为1111的数据 var newPkKeyWhere = string.Format(" OR {0}.FEntryId = 1111", entryTbNameAlias); e.QueryObject.SQLWhere = e.QueryObject.SQLWhere + newPkKeyWhere; //刷选源单过滤条件也要加上 e.filterDescriptionFilter = e.filterDescriptionFilter + string.Format(" OR {0} = 1111", this._pkKey); } } }
单据转换插件--获取源单数据前事件(OnBeforeGetSourceData)
一、说明1、OnBeforeGetSourceData 获取源单数据前事件,在把查询参数对象解析为查询对象,执行sql脚本前触发,对查询对象、参数和过滤描...
点击下载文档
本文2024-09-16 18:17:58发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-21243.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章