全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4198
推到 Plurk!
推到 Facebook!

Crystal Report 如何列印條碼?

尚未結案
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-01-18 15:29:05 IP:220.128.xxx.xxx 未訂閱
大家好,請問用 Crystal Report 如何列印條碼?
我查過很多網頁,包括 K-top 的,試過都不行,以最簡單的 Code39 為例,把欄位內容前後各加一個星號 *,應該就能滿足 Code39 的要求,字型選已按裝好的 3 of 9 Barcode,報表跑出來之後,拿給別人用讀碼機讀,讀不到,也試過複製螢幕存成圖檔,拿條碼辦識軟體來描一下圖檔,仍然分析不出來。
後來改試 Code128,用 Delphi 把文字編成 Code128,再用 Crystal Report 出來,一樣是跟上面一樣,讀不到,也無法用軟體辦識。
參考網頁後自己寫的轉碼程式如下。

function GetCode128(ApplyDocNo : string) : string;
var i, CheckSum : integer;
begin
Result := '';
if ApplyDocNo = '' then exit;
CheckSum := 104; //計算 CheckSum 用 Code128 編碼,STARTA 為 103
for i := 1 to Length(ApplyDocNo) do // Ascii 126 及以前的,都是減 32 就得到 Code128 編號
CheckSum := CheckSum (Ord(ApplyDocNo[i]) - 32) * i; // -32 轉為 Code128 序數
CheckSum := CheckSum mod 103;
Result := #154 ApplyDocNo Chr(CheckSum 32) #156; // 輸出文字用 ASCII
end;
編輯記錄
cancer 重新編輯於 2012-01-18 00:29:45, 註解 無‧
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-01-19 10:06:59 IP:122.121.xxx.xxx 訂閱
code39 的確是前後加上星號
但是 code128 不能這樣算,符號、字母可以用 A 組或是 B 組,但是數字只能用 C 組的壓縮碼
就算您正確的算出來了,算出來的結果也不一定和條碼字型能對應得上
因為不同廠牌的 code128 條碼字型對應 code128 序數的方式都不同
這也就是為什麼條碼字型廠商讓您免費下載條碼字型,卻要賣您轉換 API 的原因

印出來了還有好不好掃的問題,太粗、太細都不好掃
不是每一個人都有條碼掃描器,不過如果您有智慧型手機,可以下載條碼掃描軟體,掃得出來的話,條碼掃描器一定沒問題

有關條碼詳細的資料,請參閱 http://www.barcodeisland.com/symbolgy.phtml
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-04-25 9:44:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!