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码数据。保存设置后通过条码打印软件中“打印预览”可以查看效果,文本中的数据和下面的条形码一样,校验位也一一对应。