我们的单据通常是连续的。比如:PUR2019090001,PUR2019090002,PUR2019090003,PUR2019090004、
这是通常情况,而我们可能会删除单据。普通的递增算法总是取最大序号+1,从而无法利用那些被删除的空缺编号。
比如客户要求在U8凭证中尽量把删除的凭证编号要利用起来。这样对于凭证的打印检视有好处。类似的采购单跟踪时,也不希望看到空缺的编号。
有2种方法。
1)遍历逐个查找。取某段编码,比如PUR2019090001-1000然后放入datastore排序遍历。取出一个空缺值来用。
2)制作一个模板的齐全的编码表,放入一个独立的table中。利用exists来结合表查询来取得。
比如:
codelist(id)表放入0001-9999的编码。
select id
from codelist
where not eixsts(select 1 from pur_table where docno like ‘PUR201909’+ clodelist.id)
我突然想到还没去检验,需要的话大家认真调试一下。