pb生成code128条形码,用字体实现,文本框或label打印出来,有用过的给一段代码?
pb生成code128条形码,用字体实现,文本框或label打印出来,有用过的给一段代码?
本人刚接触pb,都在模仿。。。。 条形码
[解决办法]
code 128條型碼並不像 code 39可直接使用(code 39前後加上*即可), 需略加計算, 其原理網上有不少資料, PB實現方式如下
//function: of_str2code128(string as_value)
//Return value: string
//將傳入內容,計算檢查碼 及 加上前後碼,轉為 code 128 回傳
//以下為 Code128-B 編碼方式範例說明
//Example: CC
//Message : Start B C C
//Value 104 35 35
//Position: - 1 2
//Calculate Total: 104 + (35x1) + (35x2)= 209
//checksum code: 209 Mod 103 = 3
//checksum char : 3 = #
//Final code(Code128): (104)(35)(35)(3)(106)
//Final code(ASCII): (154)(67)(67)(35)(156)
//Final Display(ASCII): ? C C # ?
//Final message: (Start B) (CC) (#) (STOP)
char lc_endChar
long ll_loop, ll_asc, ll_total, ll_endAsc
string ls_RetVal
ll_total=104// Start B 碼為 104
For ll_loop=1 to len(as_value)
ll_asc = AscA(Mid(as_value, ll_loop, 1))
If ll_asc >= 32 Then
ll_total += (ll_asc - 32) * ll_loop
Else
ll_total += (ll_asc + 64) * ll_loop
End If
Next
ll_endAsc = Mod(ll_total, 103)
If ll_endAsc >= 95 Then
Choose Case ll_endAsc
Case 95
lc_endChar = "?"
Case 96
lc_endChar = "?"
Case 97
lc_endChar = "?"
Case 98
lc_endChar = "?"
Case 99
lc_endChar = "?"
Case 100
lc_endChar = "è"
Case 101
lc_endChar = "é"
Case 102
lc_endChar = "ê"
End Choose
Else
ll_endAsc += 32
lc_endChar = CharA(ll_endAsc)
End If
ls_RetVal ="ì" + as_value + lc_endChar + "?"
Return ls_RetVal