自定义实现凭证唯一识别字段原创
金蝶云社区-战斗的凯文
战斗的凯文
96人赞赏了该文章 332次浏览 未经作者许可,禁止转载编辑于2024年05月30日 18:09:41

        使用星空企业版总账的用户都知道,要想唯一识别一张凭证,系统中默认是通过“账簿+年度+期间+凭证字+凭证号”这5个字段来实现的,这很繁琐。能不能只通过一个字段就能唯一识别一张凭证,而且即使后面凭证号发生变化,如凭证整理,也能实时体现出来。办法当然有,那就是利用数据库的计算列特性。当计算列参考的物理字段的值发生变化时,计算列的值也会实现随着变化,这就不怕凭证号变化了。

        实现步骤:

        1,在数据库中增加计算列,这里以账簿ID,年度,期间,凭证字ID和凭证号五个字段为列,采用“_”分隔,并用“0”在左侧充足位置,以确保对齐,方便识别:

ALTER TABLE T_GL_VOUCHER ADD FNumber AS 'VCH_'+  
REPLICATE('0', 6 - LEN(CONVERT(VARCHAR, FACCOUNTBOOKID))) + CONVERT(VARCHAR, FACCOUNTBOOKID) +'_'+
CONVERT(CHAR(6),FYEAR*100+FPERIOD)+ '_'+
REPLICATE('0', 6 - LEN(CONVERT(VARCHAR, FVOUCHERGROUPID))) + CONVERT(VARCHAR, FVOUCHERGROUPID) +'_'+
REPLICATE('0', 5 - LEN(CONVERT(VARCHAR, FVOUCHERGROUPNO))) + CONVERT(VARCHAR, FVOUCHERGROUPNO)

        完成后的字段如下图所示:

image.png

        2,数据已有,下一步就是将这些值正常显示在凭证上。在BOS设计器(协同开发平台)中,找到“凭证”(GL_VOUCHER),在单据头上增加一个文本字段,指定期字段名为FNUMBER,注意:这个字段名应该和前面增加的字段名一致,否则无法正常显示值的内容。设置适合的位置和宽度,指定不可修改,保存即可。

赞 96