報表生成器FastReport VCL是用於在軟件中集成商務智能的現代解決方案。它提供了可視化模板設計器,能夠訪問最受歡迎的數據源,報告引擎,預覽,將過濾器導出爲30多種格式,並能夠部署到雲,Web,電子郵件和打印中。算法
近日,FastReport VCL更新至v6.7,在新版本中,添加了對最新版本IDE的支持,簡化了用於付款標準的條形碼的建立,新增從預覽窗口直接編輯RichView的功能,同時修復了多個Bug問題。歡迎下載體驗。(點擊下方按鈕下載)編程
CODE 39是Intermec Corporation在1975年開發的條形碼。條形碼中最多能夠包含43個字符,包括數字,字母和一些符號:0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ-。$ / +%。因爲能夠處理字母,所以CODE 39在工業領域必不可少,而且在汽車和電子等行業中使用。例如,在德國,它用於藥品,但主要用於倉儲。在美國,代碼39被標準化爲ANSI MH 10.8 M-1983和MIL-STD-1189。該標準後來被取消,並由ANSI / AIM BC1 / 1995代替。 編碼


CODE 39以其條形和空格模式命名,在9個條形和空格中有3個是寬的。基本組成以下:url
- 一個字母(字符)由9個小節和空格表示。
- 星號(*)附加在條形碼的開頭和結尾。(開始/中止字符)
- 字符之間的間隔稱爲「字符間間隙」。一般,間隙寬度與窄條寬度同樣寬。(最大寬度規定爲窄條寬度的3到5.3倍。)
字符間距spa
下表概述了Code 39規範。分配給每一個字符的數字值(開始/中止除外)在如下所述的校驗和算法中使用。.net
代碼39有時與可選的模43校驗位一塊兒使用,帶有校驗位的代碼稱爲代碼39 mod43。
這是執行校驗和計算的方法:
1.取條形碼中每一個字符的值(0到42),不包括開始和結束代碼。
2.對值求和。設計
3.將結果除以43。3d
4 .餘數是要附加的校驗和字符的值。code

Code 39 Extended是Code 39的擴展版本,支持ASCII字符集。它能夠編碼128個字符:0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ!#$%&'()* +,-。/ :; <=>?@ [\] ^ _`{|} abcdefg hijklmnopqrs tuvwxyz,其中包括26個大寫字母( AZ),26個小寫字母(az)和帶空格的特殊字符。
請務必注意,擴展代碼39條形碼的長度大約是常規代碼39條形碼的兩倍。根據ISO 646,經過組合兩個符號字符來顯示這些字符,第一個由$ +%/四個字符之一組成,後跟26個字母之一。若是使用完整的ASCII字符集對解碼器進行編程,則僅傳輸ASCII等效字符,而不傳輸符號字符組合。
Code 39 Extended也能夠與可選的43模校驗和一塊兒使用,帶有校驗位的代碼看起來像「 CODE 39 EXTENDED mod 43」。
CODE 39和CODE 39 Extended的並排比較
讓咱們比較不一樣條形碼中的相同短語。在這兩種狀況下,咱們在第一欄中都看不到任何區別。可是爲何沒有區別呢?這是由於字符0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ-。兩個條形碼中的$ / +%以相同的方式編碼,可是若是將大寫字母替換爲小寫字母,則會出現更改。
再一次,在CODE 39 Extended中,經過組合兩個符號字符來顯示字符,第一個由$ +%/四個字符之一組成,而後由26個字母之一組成。

在視覺設計器中建立條形碼
FastReport VCL容許您在報告中使用上述兩種條形碼類型。讓咱們看看如何與他們合做。
在FastReport VCL設計器中,將obCatBarcode組件添加到報告中,而後從列表中選擇條形碼類型:
接下來,轉到條形碼編輯器:

代碼–條形碼數值的區域;
條形碼類型–條形碼類型能夠在編輯器中當即更改,而無需在報告中添加新組件;
Calc CheckSum –校驗。全部線性條形碼都具備此屬性。還記得「錯過閱讀」嗎?咱們必須以某種方式與之抗爭!此屬性肯定是否應自動計算校驗和。若是禁用,則校驗和必須出如今對象文本中;
縮放–設置條形碼的縮放比例,僅與「自動調整大小」屬性結合使用;
文字–啓用/禁用條形碼下的文字顯示;
旋轉–容許您將對象的旋轉設置爲固定角度之一– 0、90、180、270度。
單擊F(x)圖標並進入大表達式編輯器。
能夠在FastReport VCL設計器或文檔中找到更多詳細信息。 連接1 和連接2
轉到obCatBarcode組件的屬性。
Code字段的內容將傳輸到Expression字段。若是「表達式」字段爲空,則顯示「文本」字段中的文本。
簡而言之,「文本」是靜態文本,「表達式」包含計算得出的表達式,包括來自數據源的值。
從Delphi / Lazarus代碼建立條形碼
uses frxBarcod; procedure TForm1.Button1Click(Sender: TObject); var bc: TfrxBarcodeView; begin bc := TfrxBarcodeView(frxReport1.FindObject('BarCode1')); {Set the type of the barcode} bc.BarType := bcCode39; {Set the fixed barcode value} bc.Text := '123456'; {Set the calculated barcode value} //bc.Expression := '<YourDatasetName."FieldName1"> + <YourDatasetName."FieldName2">'; {Set whether it is necessary to calculate the checksum and add it to the end of the barcode} bc.CalcCheckSum := False; {Set the scale at which the barcode will be displayed} bc.Zoom := 2; {Set the angle of the barcode rotation. Can take the following values: 0, 90, 180, 270} bc.Rotation := 0; {Set whether to set the width of the barcode depending on its content.} {If set to False, Zoom will be set to keep the barcode width fixed} bc.AutoSize := True; {Set the barcode background color} bc.Color := clNone; {Set the barcode lines color} bc.ColorBar := clBlack; {Set whether to display the text at the bottom of the barcode} bc.ShowText := True; frxReport1.ShowReport(); end;
如今,咱們能夠在業務應用程序中使用CODE 39標準的條形碼(不只對數字進行編碼,並且對字母字符進行編碼),例如,以在標籤上輸出(例如,也採用ZPL格式)。
還想要更多嗎?您能夠點擊閱讀【FastReport 報表2020最新資源盤點】,查找須要的教程資源。若是您有任何疑問或需求,請隨時加入FastReport技術交流羣(783996712),咱們很高興爲您提供查詢和諮詢。