最近客戶要求在貨品資料中生成商品條碼(即ean13,國際商品條碼),雖然系統中有商品條碼生成的工具,但是對不上號,根本無法使用,客戶的貨品資料已經有部分有條碼,更重要的是客戶要求生成商品條碼的貨品無法正常篩選出來(比如:gw開頭,或者是gm開頭,而且要求的是gw和gm後面全是數字的貨品才要求生成),客戶又急著用,沒有辦法的情況下,就自己動手寫了乙個小工具,雖然客戶無法使用,但是對於維護客戶的商品條碼生成,確是相當的方便,現記錄下,以便將來檢視:
生成ean13條碼的sql函式**:
create function dbo.ean13(@value varchar(13))
returns varchar(13)
asbegin
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)
endgo
函式呼叫:
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語句,相當方便。
如何生成帶附加碼的EAN13商品條碼
ean13碼是商品條碼中的標準碼,由國家 1 3位 廠商 4 8位 商品 9 12位 以及最後一位根據前面條碼資料校驗自動生成的校驗碼,共13位數字組成。一般的ean13商品條碼是不含附加碼,但是也有商品條碼含附加碼,這也是商品條碼的乙個特性,接下來我們看下在條碼列印軟體中如何製作帶附加碼的ean1...
編碼方式 EAN13商品條碼的結構和編碼方式
ean13商品條碼為ean條碼系統中的標準碼,共由13為數字組成 3位國家 4位廠商 5位產品 1位檢查碼 其排列如圖1。ean13商品條碼的結構和編碼方式如圖2 ean13商品條碼的結構包括 1 國家 由國際商品條碼總協會授權,我國的 位690 695,凡是我國核發的商品條碼均冠上690 695其...
執行緒池自學筆記13 秒殺商品練習
案例介紹 假如某網上 推出活動,新上架10部新手機免費送客戶體驗,要求所有參與活動的人員在規定的時間同時參與秒殺掙搶,假如有20人同時參與了該活動,請使用執行緒池模擬這個場景,保證前10人秒殺成功,後10人秒殺失敗 要求 1 使用執行緒池建立執行緒 2 解決執行緒安全問題 1 既然商品總數量是10個...