单据转换插件--获取源单数据前事件(OnBeforeGetSourceData)

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

单据转换插件--获取源单数据前事件(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脚本前触发,对查询对象、参数和过滤描...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息