低代碼開(kāi)發(fā)平臺(tái)的單據(jù)序列號(hào)怎么做?(低代碼開(kāi)發(fā)平臺(tái)的單據(jù)序列號(hào)怎么做的)
發(fā)現(xiàn)朋友們?cè)囉昧宋覀兊牡痛a開(kāi)發(fā)平臺(tái)以來(lái),怎么生成序列號(hào)是一個(gè)咨詢(xún)得比較多的問(wèn)題,因?yàn)槟承┣闆r下確實(shí)需要序列號(hào)。
我們的低代碼平臺(tái)專(zhuān)門(mén)提供了一個(gè)“單據(jù)序列號(hào)”控件:
我們提供了專(zhuān)門(mén)的序列號(hào)字段
序列號(hào)字段和普通文本框的區(qū)別在于多了幾個(gè)屬性:
單據(jù)序列號(hào)控件的屬性
編號(hào)前綴:
比如我們希望以公司名首字母來(lái)(或者模塊名)做前綴可以輸入“HH”這樣的,如果您希望加上年月(yyyyMM)則可以設(shè)為:"HH" Date2String(ToDay(),"yyyyMM"),那么生成的編號(hào)前綴就是“HH202301”這樣的了。這里的腳本還可以通過(guò)GetValue("字段名")來(lái)獲取本單據(jù)上的其他字段值來(lái)一起生成序列號(hào);
可變前綴:
“編號(hào)前綴”中已經(jīng)可以通過(guò)腳本實(shí)現(xiàn)可變的部分,但是,如果“編號(hào)前綴”中加年月后,則只要年月改變那么自增部分都會(huì)重新從0開(kāi)始,比如1月份是:HH20230100001,..HH20230100999這樣的,而2月份HH20230200001,..HH20230200999,只要年月變了可變部分就會(huì)從1開(kāi)始;
怎么解決這種問(wèn)題呢?可以把上面提到的“年月”部分設(shè)置在本“可變前綴”屬性上。這樣的話得到的單據(jù)編號(hào)就會(huì)是:HH20230100001,HH20230100002,..HH20230100099,HH20230200100,HH20230200101,HH20230200999這樣連續(xù)的了。
編號(hào)后綴:
如果我們希望可變部分在中間,比如:HH2023010000001CAR,…HH2023010000999CAR,結(jié)尾用CAR這樣的標(biāo)志,那么這里就可以設(shè)置單據(jù)后綴了,單據(jù)后綴同樣支持腳本;
編號(hào)可變部分長(zhǎng)度:
這個(gè)屬性很好理解,就是可變部分的長(zhǎng)度,比如可變部分長(zhǎng)度填10則生成的序號(hào)部分為:0000000001這樣的,如果為5則是這樣的:00001;
設(shè)置好規(guī)則后自動(dòng)生成編號(hào)
但是,一個(gè)系統(tǒng)不可能只有一個(gè)人在操作,那么如果多個(gè)人在差不多的時(shí)間內(nèi)點(diǎn)“新增”某個(gè)單據(jù),他們界面上看到的單據(jù)都將會(huì)是HH202300001這樣的,因?yàn)樗麄兌歼€沒(méi)有保存,所以系統(tǒng)判斷不了實(shí)際的單據(jù)序號(hào),這種情況如果接入一個(gè)其他服務(wù)來(lái)做(比如一個(gè)能夠序號(hào)自增的服務(wù)等等)應(yīng)該可以解決,當(dāng)然這種解決辦法也可能會(huì)存在斷號(hào),比如我點(diǎn)新增后不保存又關(guān)閉了頁(yè)面。
但是這樣就會(huì)引入并依賴(lài)于其他服務(wù)了,我們的解決方法是在保存的時(shí)候再次重新計(jì)算編號(hào),按照這幾個(gè)人保存的順序重新對(duì)這幾個(gè)人進(jìn)行編號(hào)。