S sunjinhua Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #1 注意:不是生成打印的结果,而是如何生成那13位数字。 我好给没有条码的商品生成条码。
L lishding Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #2 用个存诸过程数递增: 初始值:'0000000000000' select max('number') as temp_var from table1; if temp_var=0 then des_string:='0000000000000' else begin temp_var:=temp_var+1; des_string:=right('0000000000000'+inttostring(temp_var),13); end; des_string为新产生的条码,right函数可自己实现
用个存诸过程数递增: 初始值:'0000000000000' select max('number') as temp_var from table1; if temp_var=0 then des_string:='0000000000000' else begin temp_var:=temp_var+1; des_string:=right('0000000000000'+inttostring(temp_var),13); end; des_string为新产生的条码,right函数可自己实现
飞 飞龙在天 Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #3 条码分为很多种,13位条码只是其中之一,称为EAN13码。 如果你的条码需要在商品包装上公开使用,需要向主管部门申请。 如果只是内部使用,则不需要申请。 假设我们不需要申请,进行自编条码: 13位数字中,前12数字可以随意编,但是请注意:第13位数字是校验位!不能随便编! 校验位数字根据前12位数字依据一定的算法生成,这样的条码才有效。 所以,按照lishding兄的算法生成的条码是无效的。 当然,如果你不需要打印条码,只是为商品编码的话,不一定需要使用13位条码,随便 多少位,看你的需要。这样的编码使用lishding兄的算法也可。
条码分为很多种,13位条码只是其中之一,称为EAN13码。 如果你的条码需要在商品包装上公开使用,需要向主管部门申请。 如果只是内部使用,则不需要申请。 假设我们不需要申请,进行自编条码: 13位数字中,前12数字可以随意编,但是请注意:第13位数字是校验位!不能随便编! 校验位数字根据前12位数字依据一定的算法生成,这样的条码才有效。 所以,按照lishding兄的算法生成的条码是无效的。 当然,如果你不需要打印条码,只是为商品编码的话,不一定需要使用13位条码,随便 多少位,看你的需要。这样的编码使用lishding兄的算法也可。
S sunjinhua Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #4 to all:感谢两位作答。 为朋友作个POS超市收款系统,对于自制的商品要贴上条码出售,所以我为商品 编码表建立了条码字段,对于购进的商品,自带了条码,扫进去就可以了,而 对于没有条码的商品,要自动产生条码,由于第一次做这样的系统,不知条码方面 的知识,更不知如何生成唯一的条码,所以才求助。 按lishding的方法,生成的不是合法的条码,一定不能用条码打印机输出了; 而飞龙在天又没有提到具体的算法,即'校验位数字根据前12位数字依据一定的算法生成' 里一定的算法要如何做呢?
to all:感谢两位作答。 为朋友作个POS超市收款系统,对于自制的商品要贴上条码出售,所以我为商品 编码表建立了条码字段,对于购进的商品,自带了条码,扫进去就可以了,而 对于没有条码的商品,要自动产生条码,由于第一次做这样的系统,不知条码方面 的知识,更不知如何生成唯一的条码,所以才求助。 按lishding的方法,生成的不是合法的条码,一定不能用条码打印机输出了; 而飞龙在天又没有提到具体的算法,即'校验位数字根据前12位数字依据一定的算法生成' 里一定的算法要如何做呢?
飞 飞龙在天 Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #5 校验位生成算法: 代码位置序号:代码位置序号是指包括校验码在内的、由右至左的顺序号(校验码的 代码位置序号为1)。 计算步骤: 1.从代码位置序号2开始,所有偶数位的数字代码求和。 2.将步骤1的和乘以3。 3.从代码位置序号3开始,所有奇数位的数字代码求和。 4.将步骤2与步骤3的结果相加。 5.用“10”减去步骤4所得数值的个位数,所得结果为校验码。当步骤4所得数值的个位数 为0时,校验码为0。 把以上算法翻译成Delphi过程,不难吧?我就不代劳了。
校验位生成算法: 代码位置序号:代码位置序号是指包括校验码在内的、由右至左的顺序号(校验码的 代码位置序号为1)。 计算步骤: 1.从代码位置序号2开始,所有偶数位的数字代码求和。 2.将步骤1的和乘以3。 3.从代码位置序号3开始,所有奇数位的数字代码求和。 4.将步骤2与步骤3的结果相加。 5.用“10”减去步骤4所得数值的个位数,所得结果为校验码。当步骤4所得数值的个位数 为0时,校验码为0。 把以上算法翻译成Delphi过程,不难吧?我就不代劳了。