二开案例.单据插件.编码规则按组织隔离
【应用场景】
星空仅支持按单据类型设置编码规则,不支持按组织设置编码规则。
如果希望编码规则的流水号按组织隔离,目前只能通过变通的方式实现。
本文提供了一种实现该需求的解决方案。
<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
二开案例.单据插件.编码规则按组织隔离
【应用场景】星空仅支持按单据类型设置编码规则,不支持按组织设置编码规则。如果希望编码规则的流水号按组织隔离,目前只能通过变通的方式...
点击下载文档
本文2024-09-23 04:01:29发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162620.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章