zoukankan      html  css  js  c++  java
  • 商品EAN13条码的生成

    最近客户要求在货品资料中生成商品条码(即EAN13,国际商品条码),虽然系统中有商品条码生成的工具,但是对不上号,根本无法使用,客户的货品资料已经有部分有条码,更重要的是客户要求生成商品条码的货品无法正常筛选出来(比如:GW开头,或者是GM开头,而且要求的是GW和GM后面全是数字的货品才要求生成),客户又急着用,没有办法的情况下,就自己动手写了一个小工具,虽然客户无法使用,但是对于维护客户的商品条码生成,确是相当的方便,现记录下,以便将来查看:
    生成EAN13条码的SQL函数代码:
    create function dbo.EAN13(@value varchar(13))
        returns varchar(13)
    as
    begin
        declare @s1 int ,@s2 int ,@s3 int
        declare @t table (id int identity(1,1),b bit)
        insert into @t(b)
           select top 13 1 from syscolumns
        set @value='0'+reverse(@value)
        select @s1=sum(cast(substring(@value,id,1) as int))
        from @t a
        where len(@value)>=id and id%2=0
        set @s1=@s1*3
        select @s2=sum(cast(substring(@value,id,1) as int))
        from @t a
        where len(@value)>=id and id>=3 and id%2=1
        set @s3=right(@s1+@s2,1)
    return left(reverse(@value),12)+ltrim(10-case @s3 when '0' then '10' else @s3 end)
    end
    go
    函数调用:
    select dbo.ean13(694386035966) 返回值:6943860359663
    在程序中执行时,可以手工写入SQL语句,这样,可以自由的提出要生成的货品资料,例如:
    select code,name,standardcode from goods where (patindex('GW[0-9]%',Code)>0 or patindex('GM[0-9]%',Code)>0) and
    (standardcode is  null)
    动态的指定SQL语句,相当方便。

     
  • 相关阅读:
    es数据采集脚本样例
    实时文本采集器
    闭包理解
    django orm 联表查询优化
    关于vue中使用ajax页面不更新问题
    悲观锁和乐观锁的区别
    golang基础-tailf日志组件使用
    通过request获取不同方式请求的传参
    排序算法比对,插入算法和冒泡算法
    安利一波超级好课 —— 在家也不能闲着呀!!!
  • 原文地址:https://www.cnblogs.com/edrp/p/1531098.html
Copyright © 2011-2022 走看看