二开案例.单据插件.单据上查询维度关联字段的辅助属性时设置过滤条件

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

二开案例.单据插件.单据上查询维度关联字段的辅助属性时设置过滤条件

【应用场景】

给单据上查询维度关联字段的辅助属性时设置过滤条件。


【案例演示】

采购订单,编辑界面,分别将明细信息单据体上的辅助属性字段的维度显示样式设置为【弹出窗】和【固定列】,通过插件来干预辅助属性设置的基础资料的过滤条件。

【实现步骤】

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

using Kingdee.BOS.Core.Bill.PlugIn;

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

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】单据上查询维度关联字段的辅助属性时设置过滤条件

    /// </summary>

    [Description("【单据插件】单据上查询维度关联字段的辅助属性时设置过滤条件"), HotUpdate]

    public class SetBaseDataFilterBeforeFlexSelectBillPlugIn : AbstractBillPlugIn

    {

        /// <summary>

        /// 维度关联字段的维度显示样式设置为【弹出窗】,执行开窗时,走此接口

        /// </summary>

        /// <param name="e"></param>

        public override void BeforeFlexSelect(BeforeFlexSelectEventArgs e)

        {

            base.BeforeFlexSelect(e);

            // 给物料的辅助属性添加额外的过滤条件,从而控制辅助属性弹出窗界面上仅显示满足条件的辅助属性录入控件。

            // 例如:弹出窗模式下,物料的辅助属性设置了8个辅助属性,可通过插件控制仅显示【等级】这一个辅助属性)

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

            {

                //分录中物料

                var material = this.View.Model.GetValue("FMaterialId", e.Row) as DynamicObject;

                if (material != null)

                {

                    e.Filter = " AND t2.FName LIKE N'%等级%'";

                    // e.Cancel = true;// 执行此句将取消弹窗

                }

            }

        }


        /// <summary>

        /// 维度关联字段相关的基础资料或辅助资料执行模糊查询或F8开窗时,走此接口

        /// </summary>

        /// <param name="e"></param>

        public override void BeforeF7Select(BeforeF7SelectEventArgs e)

        {

            base.BeforeF7Select(e);

            // 给等级查询增加过滤条件

            if (e.FieldKey.EqualsIgnoreCase("$$FAUXPROPID__FF100001"))

            {

                // 维度关联字段的维度显示样式设置为【弹出窗】,在弹窗中对基础资料或辅助资料执行模糊查询或F8开窗时,走此接口

                e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString(" FDataValue like N'%A%' ");

            }


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

            {

                // 维度关联字段的维度显示样式设置为【固定列】,在单据体的固定列上对基础资料或辅助资料执行模糊查询或F8开窗时,走此接口

                e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString(" FDataValue like N'%A%' ");

            }

        }

    }

}


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


<3>BOSIDE扩展采购订单,注册表单插件,保存元数据,开发完毕。



现在可以登录业务站点,打开采购订单编辑界面,检验一下插件效果啦。

【固定列】模式:

【弹出窗】模式:

插件干预前效果:

插件干预后效果:

---------------------------------------------------------------------------------------------------------













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

二开案例.单据插件.单据上查询维度关联字段的辅助属性时设置过滤条件

【应用场景】给单据上查询维度关联字段的辅助属性时设置过滤条件。【案例演示】采购订单,编辑界面,分别将明细信息单据体上的辅助属性字段...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息