如下是引自金蝶社区: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 编码规则 新增显示且不允许断号相关推荐

  1. 金蝶EAS-BOS编码规则

    一.概述 1.编码规则,定义EAS系统中基础资料和业务对象编码规则.规则可以是无意义的,也可以表示一定的业务规则. 2.编码规则包括模板设置和规则定义. 二.编码规则模板 1.为具体的基础资料和业务对 ...

  2. 金蝶EAS 代码调用编码规则

    ICodingRuleManager manager = CodingRuleManagerFactory.getLocalInstance(ctx); //后端 TestInfo info = ne ...

  3. 已设置了参考编号的编码规则定义,但是新增单据的时候,没有出来自动编号是什么原因?...

    问题描述: 在AIO5系统中,已经在编码规则中设置了自动编号的,但是点击新增单据的时候,没有自动编码,是什么原因? 自动编码规则设置如图: 原因分析: 1.没有点击小钥匙标识. 2.没有在对象设置中, ...

  4. eas bos 获取编码规则

    /** * 获取编码规则 * IObjectValue 要获取编码规则的对象 * String * */ public static String getAutoCode(IObjectValue o ...

  5. 金蝶k3单据编码规则_编码规则

    1.名称: 设置编码规则名称 2.描述: 设置编码规则描述 3.允许修改: 支持手工输入编号 4.默认规则: 设置默认的一套规则 5.支持补号: 运行时支持手动补号,勾选后[允许修改]复选框字动勾选, ...

  6. 金蝶EAS BOS 元数据介绍

    元数据归类总结 解决方案 解决方案是元数据的最大载体,对应于一个元数据集合.任一个元数据都必须归属于某个解决方案,譬如,EAS就是一个解决方案. ♢ ♢ 所有客户端加载的元数据都是加载 deploye ...

  7. eas报错日记_金蝶EAS常见问题解答_基础业务服务_2016教程.docx

    金蝶EAS常见问题解答_基础业务服务_2016教程 目录1基础业务服务21.1基础组织21.2上机日志6问题描述61.3客户化菜单181.4 License许可351.5附件管理471.6编码规则62 ...

  8. eas库存状态调整单不能反审核_金蝶EAS常见问题集(资产管理系统).pdf

    金蝶EAS产品维护手册 资产管理系统 常见问题集锦(2010年上册) 本期概述  本手册中描述的常见问题基于EAS6.0产品编写.  本手册涵盖了金蝶EAS产品总账报表.资产管理.应收应付.供应链 ...

  9. 金蝶EAS初始化操作手册之管理单元初始化

    金蝶EAS初始化操作手册之管理单元初始化 author:cindyli position:project manager Company:HeNanDongling(河南东泠电子科技有限公司) pho ...

最新文章

  1. 《漫画算法》源码整理-6
  2. 快夸我!我把SpringBoot项目从18.18M瘦身到0.18M!
  3. SAP CRM my task 6个roundtrip的原理讲解
  4. 使用spring initialization创建SpringBoot项目
  5. 【机器视觉】常见机器视觉软件及选型要点分析
  6. java整人_写了一个整人程序,较简单,有兴趣者可以看看
  7. ibatis 存储过程 结果集 map_大数据之MapReduce shuffle过程
  8. dataframe切片_Kaggle:识别淋巴结病理切片有无癌细胞(logistic+svm+rf+CNN)
  9. Virtual Display Manager(windows虚拟显示器软件)官方中文版V3.3.2.44650 | Win7/win10虚拟显示器下载
  10. 助力单细胞高通量测序国产替代
  11. SQL Pivot 行转列
  12. Zookeeper 的基本使用
  13. 【窗体控件】:Button按钮控件
  14. 什么是国际物流专线?国际快递专线又是什么呢?
  15. Pycharm如何改变背景教程
  16. dataframe 设置空值_数据清洗--DataFrame中的空值处理方法
  17. 盘点国内十大免费CDN提供商
  18. SQL SERVER添加表注释、字段注释
  19. 代码随想录训练营day45
  20. 6:直角坐标系象限判断

热门文章

  1. 能上Q不能上网解决方案
  2. 动画中的“表现手法”和“表现方式”分别是什么?今天艺点动画大家庭来给你唠嗑唠嗑
  3. 30天打造专业红客四
  4. 页面滚动的时候自动切换导航栏
  5. mcnpf5输出结果_MCNP入门教程
  6. linux 搭建Discuz论坛教程-个人实践笔记
  7. JS 中 replace 和 replaceAll 的区别?
  8. 以下哪个函数不能选择mysql数据库_PHP使用以下哪个函数连接MySQL数据库服务器...
  9. C++方式实现人民币小写转大写
  10. webpack对css文件打包:css-loader和style-loader版本过高问题