二开案例.列表插件.列表过滤时强制使用当前登录组织

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

二开案例.列表插件.列表过滤时强制使用当前登录组织

【应用场景】

列表过滤时,忽略过滤方案里的可选组织,强制使用当前登录组织过滤数据。



【案例演示】

采购订单,列表查询,强制使用当前登录组织过滤数据。

上传图片



【实现步骤】

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

using Kingdee.BOS.Core.List.PlugIn;

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

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【列表插件】列表过滤时强制使用当前登录组织

    /// </summary>

    [Description("【列表插件】列表过滤时强制使用当前登录组织"), HotUpdate]

    public class FilterByCurrentOrgListPlugIn : AbstractListPlugIn

    {

        public override void PrepareFilterParameter(FilterArgs e)

        {

            base.PrepareFilterParameter(e);

            // 【方式1】

            var filterString = GetOrgFilterString();

            e.FilterString = e.FilterString.JoinFilterString(filterString);

        }


        /// <summary>

        /// 获取组织过滤条件

        /// </summary>

        /// <returns></returns>

        private string GetOrgFilterString()

        {

            if (this.View.Context.CurrentOrganizationInfo == null)

            {

                return string.Empty;

            }

            var mainOrgField = this.View.BillBusinessInfo.MainOrgField;

            if (mainOrgField == null)

            {

                // 如果单据没有主业务组织,不处理。

                return string.Empty;

            }

            var filterString = string.Format("{0}={1}", mainOrgField.Key, this.View.Context.CurrentOrganizationInfo.ID);

            return filterString;

        }

    }

}


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

上传图片


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

上传图片



【功能验证】

<1>登录业务站点,打开采购订单列表,列表始终按当前登录组织过滤数据,效果下如图所示。

上传图片

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













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

二开案例.列表插件.列表过滤时强制使用当前登录组织

【应用场景】列表过滤时,忽略过滤方案里的可选组织,强制使用当前登录组织过滤数据。【案例演示】采购订单,列表查询,强制使用当前登录组...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息