EAN13碼數通用的商品條碼,其編碼數據長度為13位數字(12位商品數據碼+1位校驗碼),一般我們在用中瑯條碼打印軟件生成EAN13碼時,只需要輸入前12商品數據,校驗碼可以由條碼打印軟件自動生成,但是有時候我們需要自己生成EAN13碼的校驗碼怎么辦?下面就給大家介紹一下如果用中瑯條碼打印軟件中的腳本編程生成EAN13碼的校驗碼。EAN13碼的計算方法如下圖:
?
生成EAN13碼的校驗碼離不開EAN13碼的前12位商品數據碼,我們準備一批商品數據碼保存在TXT文檔中,通過數據庫導入條碼打印軟件中使用。
為了方便對比,在標簽上分別添加一個條形碼和一個普通文本,條形碼類型設置成“EAN13”,數據源中導入TXT文檔中的12位商品數據碼,可以看到保存后EAN13條形碼的校驗碼已經由有條碼打印軟件自動生成,在普通文本的屬性-數據源中也導入同樣的商品數據碼,保存后是沒有校驗碼,下面用腳本編程實現。
打開普通文本的“圖形屬性”-“數據源”,再次導入一次TXT數據(數據源中相當于導入了兩次商品數據碼),選中第二個商品數據碼,點擊右側的“+”,添加一個處理方法,類型選擇“腳本編程”,在輸入框中輸入以下腳本代碼:
var a = dataObj.getOriginalDataValue() + "";
var b =strReturn.split(""); //split()函數,把原數據按照數字從左到右分裂成b[0]、b[1]、b[2]、b[3]、b[4]……b[11]等12部分
var c1 = 3*(Number(b[1])+Number(b[3])+Number(b[5])+Number(b[7])+Number(b[9])+Number(b[11])); //Number()函數把個對象數值轉換成數字,在按照公式求和并乘以3得到c1
var c2 = Number(b[0])+Number(b[2])+Number(b[4])+Number(b[6])+Number(b[8])+Number(b[10]); //求和得到c2
var cc =(c1+c2) %10; //求和c1和c2并取個位數得到cc
var c =(10-cc) %10; //這個地方取個位數是為了c為10時是取0
strReturn = strReturn +c.toFixed(0); //輸出原數據和計算的校驗碼,由于計算的校驗碼含小數點,取整輸出
通過以上腳本編程代碼就可以把12位商品數據碼生成一個校驗碼,再和前面的12位商品數據碼組合到一塊就是一個完整的13位EAN碼數據。保存設置后通過條碼打印軟件中“打印預覽”可以查看效果,文本中的數據和下面的條形碼一樣,校驗位也一一對應。