二开案例.单据转换插件.设置选单条件

【应用场景】
通过插件的方式干预选单列表的结果集。

【案例演示】
采购申请单下推采购订单,通过插件方式,给采购申请单的选单列表附加过滤条件。
【实现步骤】
<1>编写单据转换插件,代码如下。
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn;
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.App.PlugIn
{
/// <summary>
/// 【单据转换插件】设置选单条件
/// </summary>
[Description("【单据转换插件】设置选单条件"), HotUpdate]
public class SetFilterForSelectBillListConvertPlugIn : AbstractConvertPlugIn
{
/// <summary>
/// 选单前事件;解析字段映射关系中配置的过滤选项
/// 此事件开始前,刚完成用于选单列表取数的QueryBuilderParemeter的构建,e.FilterOptionsSQL来自于QueryBuilderParemeter.FilterClauseWihtKey
/// 此事件结束后,e.FilterOptionsSQL将直接赋值给QueryBuilderParemeter.FilterClauseWihtKey
/// </summary>
/// <param name="e"></param>
public override void OnParseFilterOptions(ParseFilterOptionsEventArgs e)
{
base.OnParseFilterOptions(e);
// 增加过滤条件:申请数量大于10
var filter = " FReqQty > 10 ";
e.FilterOptionsSQL = e.FilterOptionsSQL.JoinFilterString(filter);
}
/// <summary>
/// 选单前事件:解析过滤策略中配置的条件
/// 此事件开始前,刚完成选单条件策略中的过滤条件的解析,e.FilterPolicySQL来自于:【选单条件策略中的过滤表格设置的过滤条件(JsonSetting)】+【选单条件策略中的附加条件(CustFilter)】+【按目标组织基础资料属性过滤的条件(TargetOrgBDFilterList)】
/// 此事件结束后,e.FilterPolicySQL将使用AND操作符合并到QueryBuilderParemeter.FilterClauseWihtKey,后续作用于选单列表取数
/// </s
二开案例.单据转换插件.设置选单条件
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



