二开案例.表单插件.单据上查询辅助资料时设置过滤条件

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

二开案例.表单插件.单据上查询辅助资料时设置过滤条件

【应用场景】单据上查询辅助资料时设置过滤条件,例如只显示编码0开头的辅助资料,显示未审核的辅助资料数据。

【案例演示】采购订单,新增一个辅助资料字段,查询该辅助资料时,未审核的数据也显示出来。

【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】单据上查询辅助资料时设置过滤条件

    /// </summary>

    [Description("【表单插件】单据上查询辅助资料时设置过滤条件"), HotUpdate]

    public class SetAssistantFilterBeforeF7SelectBillPlugIn : AbstractDynamicFormPlugIn

    {

        public override void BeforeF7Select(BeforeF7SelectEventArgs e)

        {

            base.BeforeF7Select(e);

            // 给某个辅助资料字段的查询附加过滤条件

            if (e.FieldKey.EqualsIgnoreCase("F_Jac_Assistant"))

            {

                // 只显示编码0开头的辅助资料

                e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString(" FNumber like '%0%'");

                // 未审核的辅助资料也显示出来

                var listFilterParameter = ((Kingdee.BOS.Core.List.ListShowParameter)e.DynamicFormShowParameter).ListFilterParameter;

                if (!string.IsNullOrWhiteSpace(listFilterParameter.Filter))

                {

                    // 参考:Kingdee.BOS.Core.BasedataController.AssistantController.BuildCoreFilter

                    // 未审核的辅助资料也显示出来

                    listFilterParameter.Filter = listFilterParameter.Filter.Replace("AND FDOCUMENTSTATUS='C'", "");

                }


                return;

            }

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,新增单选辅助资料字段,注册表单插件,保存元数据,开发完毕。

如果使用Python插件,代码(文末附件可下载源代码)及注册方式如下图:

#【Python】【表单插件】单据上查询辅助资料时设置过滤条件

import clr

clr.AddReference('mscorlib')

clr.AddReference('Kingdee.BOS.Core')

from System import *

from Kingdee.BOS.Core.DynamicForm.PlugIn import *

from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *

from Kingdee.BOS.Util import *


def BeforeF7Select(e):

    if (e.FieldKey.Equals("F_Jac_Assistant", StringComparison.OrdinalIgnoreCase)):

        # 只显示编码0开头的辅助资料

        e.ListFilterParameter.Filter = StringUtils.JoinFilterString(e.ListFilterParameter.Filter, " FNumber like '%0%'");

        # 未审核的辅助资料也显示出来

        listFilterParameter = e.DynamicFormShowParameter.ListFilterParameter;

        if (not String.IsNullOrWhiteSpace(listFilterParameter.Filter)):

            # 未审核的辅助资料也显示出来

            listFilterParameter.Filter = listFilterParameter.Filter.Replace("AND FDOCUMENTSTATUS='C'", "");




现在可以登录业务站点,打开采购订单新增界面,查询辅助资料,此时,未审核的辅助资料也可以显示出来啦。














【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696


【Python】【表单插件】单据上查询辅助资料时设置过滤条件.rar

二开案例.表单插件.单据上查询辅助资料时设置过滤条件

【应用场景】单据上查询辅助资料时设置过滤条件,例如只显示编码0开头的辅助资料,显示未审核的辅助资料数据。【案例演示】采购订单,新增...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息