二开案例.单据插件.编码规则按组织隔离

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

二开案例.单据插件.编码规则按组织隔离

【应用场景】

星空仅支持按单据类型设置编码规则,不支持按组织设置编码规则。

如果希望编码规则的流水号按组织隔离,目前只能通过变通的方式实现。

本文提供了一种实现该需求的解决方案。

<1>单据上新增一个文本字段,用于存储主业务组织的编码。

<2>编写单据插件,把主业务组织的编码,赋值给步骤1新增的文本字段。

<3>调整编码规则,不再直接使用主业务组织字段做编码依据和编码元素,改为使用该文本字段。

如果需要对组织编码进行格式化,例如将组织编码中的某些字符去掉,只需调整单据插件代码,无需再调整编码规则。



【案例演示】

采购订单,编码规则的流水号按主业务组织隔离。


【实现步骤】

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

using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
    /// <summary>
    /// 【单据插件】编码规则按组织隔离
    /// </summary>
    [Description("【单据插件】编码规则按组织隔离"), HotUpdate]
    public class CodeRuleSplitByOrgBillPlugIn : AbstractBillPlugIn
    {
        public override void AfterCreateNewData(EventArgs e)
        {
            base.AfterCreateNewData(e);
            //BindOrgNumber();
        }
        public override void AfterCreateModelData(EventArgs e)
        {
            base.AfterCreateModelData(e);
            BindOrgNumber();
        }
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);
            //BindOrgNumber();
        }
        private void BindOrgNumber()
        {
            var orgObj = this.Model.GetValue("FPurchaseOrgId") as DynamicObject;
            if (orgObj != null)
            {
                var orgNumber = orgObj["Number"].ToString();
                // 去除编码中的特殊字符
                orgNumber = orgNumber.Replace(".", "");
                this.Model.SetValue("F_Jac_Text", orgNumber);
            }
        }
    }
}



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


<3>BOSIDE扩展采购订单,新增文本字段,注册表单插件,保存元数据。


<4>登录业务站点,打开编码规则列表,调整采购订单的默认编码规则,如下图,至此,开发完毕。

调整后,编码规则将按照组织编码生成不同的编码依据,使用自己独立的流水号,从而达到组织隔离的效果。


【功能验证】

<1>登录业务站点,打开采购订单新增界面,分别在不同的组织下录单,不同组织下的单据编号的流水号将独立运作。


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













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

二开案例.单据插件.编码规则按组织隔离

【应用场景】星空仅支持按单据类型设置编码规则,不支持按组织设置编码规则。如果希望编码规则的流水号按组织隔离,目前只能通过变通的方式...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息