二开案例.单据转换插件.设置选单条件
【应用场景】
通过插件的方式干预选单列表的结果集。
【案例演示】
采购申请单下推采购订单,通过插件方式,给采购申请单的选单列表附加过滤条件。
【实现步骤】
<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,后续作用于选单列表取数
/// </summary>
/// <param name="e"></param>
public override void OnParseFilter(ParseFilterEventArgs e)
{
base.OnParseFilter(e);
// 增加过滤条件:单据编号必须包含【CGSQ】
var filter = " FBillNo LIKE 'CGSQ%' ";
e.FilterPolicySQL = e.FilterPolicySQL.JoinFilterString(filter);
e.PlugFilterDesc = "单据编号必须包含【CGSQ】";
}
}
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE打开单据转换主界面,在界面左边定位到采购申请单-采购订单的转换规则,然后在界面右边,选中具体的转换规则,扩展该转换规则,注册单据转换插件(注意需先停用转换规则才能编辑转换规则),保存单据转换规则,开发完毕。
修改单据转换规则的状态,启用改为停用:
注册单据转换插件:
现在可以登录业务站点,打开采购订单新增界面,点击选单菜单,检验一下插件效果啦。
弹出选单主界面,选择来源单据和单据转换规则。
弹出选单列表,选择要下推的单据(本文插件主要影响此选单列表的结果集)。
选单完成后,下推生成新的采购订单。
【参考资料】
【业务流程汇总贴】https://vip.kingdee.com/article/22473
【单据转换精华知识汇总】https://vip.kingdee.com/article/146475
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.单据转换插件.设置选单条件
本文2024-09-23 04:01:45发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162648.html