• 商品条码的生成


    最近客户要求在货品资料中生成商品条码(即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语句,相当方便。

     
  • 相关阅读:
    1-1-LVS负载均衡
    linux的软链接和硬连接的区别
    linux的目录结构及配置文件
    C6和C7对比
    1-6 RAID级别介绍
    Animation动画(一)
    Android中的BroadCast静态注册与动态注册
    Android中Action
    隐式Intent
    Volley框架使用(POST)
  • 原文地址:https://www.cnblogs.com/edrp/p/1645440.html
Copyright © 2020-2023  润新知