日期:2021年8月29日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助
,帮忙点个赞
,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006
一、前言与系统对接的构思
细心的小伙伴们,在超市经常可以看到打称的小姐姐们,熟练地把货品放在称上,然后按一串数字序列,打印出条形码,贴到袋子上面,等拿到收银台,收银小姐姐只需要扫码,就可以把货品销售信息轻松录入到销售系统。这么高效的销售运作,得益于 伯纳德·塞尔沃 、 约瑟夫·伍德兰德 与一家连锁超市的总裁。
好了,回归正题,近段时间真的很忙很忙,周末忙里偷闲,查了一些相关的文章与文献,对构建ERP系统对接电子秤有了更多的理解,于是写下了这篇文章,总共有两个方案:
比较 | 存储型方案 | 非存储型方案 |
---|---|---|
示例 | 210829000001 | 210001 000950 或 210001 0009500 |
含义 | 加粗区域为年月日,红色区域 为自增序列 | 红色区域 为货品代码 ,加粗区域为重量,另外示例中的斜体0为校验码,与软件操作无关 |
优点 | 可以兼容ERP现有货品编码,无需重复修改编码 | 销售信息记录在条码中,可以使用现有电子秤系统的条码规则直接打印 |
缺点 | 销售信息记录在数据库,需要联网或直连ERP系统,而条形码仅仅记录存储销售信息记录的ID值 | ERP中货品货品编码需要重新录入,或者可以让货品有两个编码(一个是原本的编码,另一个是条形码) |
如上所示,非存储型的一个示例:
00031
表示小白菜
,00280
表示2.80元
,录入系统后,可以反算得到重量0.352kg
;
其实,后半段也可以表示重量,如条码:2 300031 00352
9,00352
为0.352kg,后面的9仅为校验位,无其他含义。
二、什么是条形码
个人理解:一般情况为一串13位的纯数字序列组合,有些码制分类也可以允许字母、特殊字符,并且可以长度自由的序列组合;
百度百科:条形码(
barcode
)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。
条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用 。
摘录于《百度百科-条形码》,条码的发展历史也可以点此链接了解。
Interleaved 2 of 5
(交叉2/5码)不太适合商场的条形码编码,实际上在民航和物流行业广泛使用,该码由Intermec在1972年发明;EAN13
、Code128C
以及EAN128
的条码宽度比较短,打印所需纸张尺寸也就可以比较小,比如4×3,5×3等等尺寸,而且编码灵活,更适合于超级市场和其它零售业;其中EAN13
的条码最后一位为校验位
,由条码规则自动生成,只用于检验该条码的正确性;Code39
、Code128A
以及Code128B
,的条码宽度比较长,打印所需纸张尺寸也需要比较宽,另外没有长度限制,编码灵活,其中Code39
、Code128B
的编码的信息可以是数字,也可以包含字母,该三种码制分类的条码主要应用于工业生产线领域、图书管理等,如表示产品序列号、图书、文档编号等;
三、存储型对接方案
条形码编码上没有记录货品代码和销售相关信息,所有数据都得由条形码编码去数据库查询获得;
- 将货品放到电子秤,电子秤将重量数据传输到ERP系统,如键盘输入一样,输入重量;
- 在ERP系统中,选择或者输入对应的货品,【1】和【2】两个步骤可以互相调换;
- 点击打印,该条形码被消耗,并将货品代码、数量(重量)以及对应的条码存储到数据库,生成不重复的条形码编码;
- 再次称重,重复【1】、【2】和【3】;
- 最后,收银员扫码每个货品上的条形码,生成对应的销售货品记录;
此方案的编码资源是有限的,如:210829
000001
,前两位始终会出现重复;
为了避免重复,可以在存储ID的时候,在条码前面多加一个年份2021,即2021210829000001
,扫码获取到的条码为210829000001
,后台销售数据的时候,我们再把2021给补齐(2021210829000001
),就可以获取相关的销售数据啦^ - ^
在有生之年是不会有重复的,可以说实现了条码资源的可持续性使用;
四、非存储型对接方案
条形码编码上记录了货品代码和销售相关信息,条码编码相关数据,就可以销售的相关数据;
- 按照电子秤条形码编码规则,在ERP中设置好编码规则;
- 将货品放到电子秤,在电子秤上面输入货品代码或者所谓的货品代码(都是一串纯数字序列,可以是ERP系统的货品代码,或者是给货品再加一个标记,这个标记称之为“所谓的货品代码”);
- 打印条形码;
- 再次称重,重复【2】和【3】;
- 最后,收银员扫码每个货品上的条形码,生成对应的销售货品记录;
例如:12位的条形码编码210001009500
,采用EAN13
码制分类,会自动生成为13位编码2100010009500
,可以分为以下4部分,如下:
- 计算公式:
数量=金额/货品单价
,其中货品单价由货品代码可以获取; - 编码规则:13,21,4,6,2
- 编码含义:13→13位条码;21→编码规则分类;4→货品代码长度;6→金额的长度;2→金额中的小数长度;
说明 | Ⅰ | Ⅱ | Ⅲ | Ⅳ |
---|---|---|---|---|
编码规则 | 21 | 4 | 6/2 | - |
编码分段 | 21 | 0001 | 000950 | 0 |
编码含义 | 指定哪一种编码规则 | 货品代码 或 所谓货品代码 | 金额 | 校验位 |
示例解析 | 21的编码规则 | 0001 小白菜 | 9.50 元 | 仅用于验证条码正确性 |
例如:12位的条形码编码220001009500
,采用EAN13
码制分类,会自动生成为13位编码2200010009507
,可以分为以下4部分,如下:
- 计算公式:
金额=货品单价 × 重量(或 数量)
,其中货品单价由货品代码可以获取; - 编码规则:13,22,4,6,3
- 编码含义:13→13位条码;22→编码规则分类;4→货品代码长度;6→重量的长度;3→重量中的小数长度;
说明 | Ⅰ | Ⅱ | Ⅲ | Ⅳ |
---|---|---|---|---|
编码规则 | 22 | 4 | 6/3 | - |
编码分段 | 22 | 0001 | 000950 | 7 |
编码含义 | 指定哪一种编码规则 | 货品代码 或 所谓货品代码 | 重量(数量) | 校验位 |
示例解析 | 22的编码规则 | 0001 小白菜 | 0.950 kg | 仅用于验证条码正确性 |
版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/119979594