金蝶 EAS 编码规则 新增显示且不允许断号

2023-12-25 19:32

本文主要是介绍金蝶 EAS 编码规则 新增显示且不允许断号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如下是引自金蝶社区:https://club.kingdee.com/forum.php?mod=viewthread&tid=898038

不允许断号是不能在单据新增的调用getnumber的,因为会出现这样一个场景,但用户新增一个单据时,调用了getnumber方法,抢号动作发生了,但是这时用户不保存这条单据,那么就造成断号了。如果要在不允许断号的时候能够显示出编码可以调用编码规则的readnumber方法生成一个临时的编码,真正保存的时候(在bean方法里)调用的是getnumber。

新增显示且不允许断号的实现就是要在单据新增的时候调用readnumber生成一个临时的编码,然后在单据保存的时候再调用getnumber方法。

 

新增时显示且不允许断号,具体实现方法如下:

1. 在新增单据时,通过readNumber方法获取临时编码:

String number = "";
try{ RenewalAppInfo info = new RenewalAppInfo();ICodingRuleManager iCodingRuleManager = null;OrgUnitInfo orgUnit = ContextUtil.getCurrentOrgUnit(ctx);if(orgUnit != null){iCodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);if(iCodingRuleManager.isExist(info, orgUnit.getId().toString())){number = iCodingRuleManager.readNumber(info, orgUnit.getId().toString()); } } 
} catch(Exception e){e.printStackTrace();
}

2. 在保存单据时,保证真正的编码,重写**ControllerBean的方法,另外注意:应该是_addnew方法,而不能是_save方法。

protected IObjectPK _addnew(Context ctx, IObjectValue model)throws BOSException, EASBizException {DanJuInfo info = (DanJuInfo) model;String number = "";ICodingRuleManager iCodingRuleManager = null;OrgUnitInfo orgUnit = ContextUtil.getCurrentOrgUnit(ctx);if (orgUnit != null) {try {iCodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);if (iCodingRuleManager.isExist(info, orgUnit.getId().toString())) {number = iCodingRuleManager.getNumber(info, orgUnit.getId().toString());}} catch (Exception e) {e.printStackTrace();}}info.setNumber(number);return super._addnew(ctx, model);
}

3. 在删除单据时,回收编码,同样是重写**ControllerBean的方法:

protected void _delete(Context ctx, IObjectPK pk) throws BOSException,EASBizException {RenewalAppInfo info = RenewalAppFactory.getLocalInstance(ctx).getRenewalAppInfo(pk);String number = info.getNumber();super._delete(ctx, pk);//回收编码ICodingRuleManager iCodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);iCodingRuleManager.recycleNumber(info, ContextUtil.getCurrentOrgUnit(ctx).getId().toString(), number);}

 

 

 

断号表:T_BAS_IntermitNO

最大号表:T_BAS_MaxSerial

通过编码规则的编号查询:

select * from T_BAS_IntermitNO where FCODINGRULEENTRYID in(
select FID from T_BAS_CodingRuleEntry where fcodingruleid in(
select fid from T_BAS_CodingRule where fnumber='规则编码'
) )
select  * from T_BAS_MaxSerial where fcodingruleentryid in(
select FID from T_BAS_CodingRuleEntry where fcodingruleid in(
select fid from T_BAS_CodingRule where fnumber='规则编码'
)) 

 

 

编码规则不支持编辑的解决办法:

增加扩展属性 CRNumberEdit ,并设置为true,之后在编码规则里面勾选“支持修改”即可。

如果是在web端增加的扩展属性,必须将扩展方案启用,并重启客户端后,新增编码规则里面的“允许修改”复选框才能勾选。

这篇关于金蝶 EAS 编码规则 新增显示且不允许断号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/536678

相关文章

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return