本文为我的.NET控件库DevExpress使用笔记,我的DevExpress版本为13.1
1、控件类型全称:DevExpress.XtraEditors.BarCodeControl
2、控件所在程序集:DevExpress.XtraBars.v13.1.dll
3、工具箱内分类:DX.13.1: Common Controls
4、控件样式截图
5、BarCodeControl支持多种方案的条形码,该控件的Symbology属性可以设置具体使用哪种规则生成条形码。以中国的零售商品编码为例,根据国标GB12904-2008中的描述,中国的零售商品编码分为13位代码结构和8位代码结构两种,采用ISO/IEC-15420中定义的EAN/UPC条码码制。因此要想生成国内零售商品的条形码,只需要将Symbology属性设置为EAN13或EAN8,并在Text属性中填入条码数字即可,注意由于条码最右侧的数字为校验位,控件可以自动计算出来,因此不需填写(即上面那张图只需要把Text设置成690123456789就可以了)。
6、如果采用EAN13的编码方式,对应的生成类就是DevExpress.XtraPrinting.BarCode.EAN13Generator,如果采用EAN8的编码方式,对应的生成类就是DevExpress.XtraPrinting.BarCode.EAN8Generator,在某一包含了BarCodeControl的窗体的Designer.cs文件中,考察自动生成的代码可以发现DevExpress将这些生成器类的实例赋值给了BarCodeControl的Symbology属性。EAN8Generator继承自EAN13Generator,所有的生成器类最终继承自同一个基类,即DevExpress.XtraPrinting.BarCode.BarCodeGeneratorBase。
7、BarCodeControl共计支持25种不同的条形码(包括一些二维码),列举如下
Codabar,Code11,Code128,Code39,Code39Extended,Code93,Code93Extended,CodeMSI,DataMatrix,DataMatrixGS1,EAN128,EAN13,EAN8,Industrial2of5,IntelligentMail,Interleaved2of5,Matrix2of5,PDF417,PostNet,QRCode,UPCA,UPCE0,UPCE1,UPCSupplemental2,UPCSupplemental5
附:关于国标 GB 12904-2008 《商品条码 零售商品编码与条码表示》
1)EAN-13条码
由BarCodeControl生成的条码(Symbology设置为EAN13,Text设置为690123456789):
2)EAN-8条码
由BarCodeControl生成的条码(Symbology设置为EAN8,Text设置为6901234):
3)最右侧一位数字为校验码,无论是EAN-13还是EAN-8,它们的校验码计算方法都是一样的,一共分为5步:
(代码位置序号,最右侧校验位为序号1,其他数字的序号从右向左递增)
从代码位置序号2开始,所有偶数位的数字代码求和。
将步骤(1)的和乘以3。
从代码位置序号3开始,所有奇数位的数字代码求和。
将步骤(2)与步骤(3)的结果相加。
用10减去步骤(4)所得结果的个位数作为校验码(个位数为0,校验码为0)。
4)根据国际物品编码协会(GS1)统一分配的前缀码,EAN-13条码中,前三位为690-695代表中国大陆,471代表台湾,489代表香港,958代表澳门。
再补充一点:书籍的条形码另有标准(GB/T 12906-2008 《中国标准书号条码》),采用的也是EAN-13条码,最后一位是校验位,只是其他各位数字代表的意义不一样。根据该标准的说法,书籍条形码所代表的数字中,前三位数字是EAN·UCC前缀码,这GS1指定给国际标准书号(ISBN)系统专用的3位数字。
END