有個code128c的函式,在pb9.5下可以正常使用,在pb11.5下不能正常生成條碼,已經將mid()改成mida(),len()改成lena(),貌似中間的數字已經可以生成條碼,開始和結束符還是亂碼,char()那里可能還要進行修改,請問該怎樣進行修改?
請直接指出怎么樣修改,不要凈說pb11.5是unicode,一個漢字當一個位元組之類的無實際幫助的話。
代碼如下:
string ls_input_number
string ls_StartC,ls_End
string ls_rtn_char = ''
string ls_Code
string ls_00,ls_95,ls_96,ls_97,ls_98,ls_99,ls_CodeB,ls_CodeA,ls_FNC1
integer i,k,li_len,li_mid_char,li_xc,li_sum = 0
ls_input_number = trim(as_input)
if isnull(ls_input_number) then ls_input_number = ''
li_len = lenA(ls_input_number)
if ls_input_number = '' or mod(li_len,2) <> 0 then return ''
if not isnumber(ls_input_number) then return ''
ls_StartC = char(167) + char(175)
ls_End = char(167) + char(176)
ls_00 = char(167) + char(163)
ls_95 = char(167) + char(164)
ls_96 = char(167) + char(165)
ls_97 = char(167) + char(166)
ls_98 = char(167) + char(168)
ls_99 = char(167) + char(169)
ls_CodeB = char(167) + char(170)
ls_CodeA = char(167) + char(171)
ls_FNC1 = char(167) + char(172)
k = 0
For i = 1 to li_len step 2
k += 1
li_mid_char = integer(MidA(ls_input_number,i,2))
if li_mid_char = 0 then
ls_rtn_char += ls_00
elseif li_mid_char = 95 then
ls_rtn_char += ls_95
elseif li_mid_char = 96 then
ls_rtn_char += ls_96
elseif li_mid_char = 97 then
ls_rtn_char += ls_97
elseif li_mid_char = 98 then
ls_rtn_char += ls_98
elseif li_mid_char = 99 then
ls_rtn_char += ls_99
else
ls_rtn_char += string(char(li_mid_char + 32))
end if
li_sum += li_mid_char * k
Next
li_xc = mod(105 + li_sum,103)
if li_xc = 0 then
ls_code = ls_00
elseif li_xc = 95 then
ls_code = ls_95
elseif li_xc = 96 then
ls_code = ls_96
elseif li_xc = 97 then
ls_code = ls_97
elseif li_xc = 98 then
ls_code = ls_98
elseif li_xc = 99 then
ls_code = ls_99
elseif li_xc = 100 then
ls_code = ls_CodeB
elseif li_xc = 101 then
ls_code = ls_CodeA
elseif li_xc = 102 then
ls_code = ls_FNC1
else
ls_code = string(char(li_xc + 32))
end if
return ls_StartC + ls_rtn_char + ls_code + ls_End
uj5u.com熱心網友回復:
把char換成charAuj5u.com熱心網友回復:
charA試過了,也不行的,起始符和結束符都是亂碼,數字是0時也會出亂碼uj5u.com熱心網友回復:
如果單純是列印條碼,建議還是用專門的條碼軟件,那樣識別效率高uj5u.com熱心網友回復:
在電腦里安裝對應的條碼字體,然后在PB換下要顯示成條碼的欄位的字體uj5u.com熱心網友回復:
哪有換一下條形碼字體就行這么好的事,又開始符又轉換碼、校驗碼、結束碼的很麻煩轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/63619.html
標籤:腳本語言
下一篇:動態庫呼叫宣告的問題
