可視化報告生成器FastReport VCL功能指南:如何使用Delphi / Lazarus創(chuàng)建CODE 39和CODE 39擴展條形碼
報表生成器FastReport VCL是用于在軟件中集成商務(wù)智能的現(xiàn)代解決方案。它提供了可視化模板設(shè)計器,可以訪問最受歡迎的數(shù)據(jù)源,報告引擎,預(yù)覽,將過濾器導(dǎo)出為30多種格式,并可以部署到云,Web,電子郵件和打印中。
近日,F(xiàn)astReport VCL更新至v6.7,在新版本中,添加了對最新版本IDE的支持,簡化了用于付款標(biāo)準(zhǔn)的條形碼的創(chuàng)建,新增從預(yù)覽窗口直接編輯RichView的功能,同時修復(fù)了多個Bug問題。歡迎下載體驗。(點擊下方按鈕下載)
CODE 39是Intermec Corporation在1975年開發(fā)的條形碼。條形碼中最多可以包含43個字符,包括數(shù)字,字母和一些符號:0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ-。$ / +%。由于可以處理字母,因此CODE 39在工業(yè)領(lǐng)域必不可少,并且在汽車和電子等行業(yè)中使用。例如,在德國,它用于藥品,但主要用于倉儲。在美國,代碼39被標(biāo)準(zhǔn)化為ANSI MH 10.8 M-1983和MIL-STD-1189。該標(biāo)準(zhǔn)后來被取消,并由ANSI / AIM BC1 / 1995代替。
CODE 39以其條形和空格模式命名,在9個條形和空格中有3個是寬的?;窘M成如下:
- 一個字母(字符)由9個小節(jié)和空格表示。
- 星號(*)附加在條形碼的開頭和結(jié)尾。(開始/停止字符)
- 字符之間的間隔稱為“字符間間隙”。通常,間隙寬度與窄條寬度一樣寬。(最大寬度規(guī)定為窄條寬度的3到5.3倍。)
字符間距
下表概述了Code 39規(guī)范。分配給每個字符的數(shù)字值(開始/停止除外)在以下所述的校驗和算法中使用。
這是執(zhí)行校驗和計算的方法:
1.取條形碼中每個字符的值(0到42),不包括開始和結(jié)束代碼。
2.對值求和。
3.將結(jié)果除以43。
4 .余數(shù)是要附加的校驗和字符的值。
Code 39 Extended是Code 39的擴展版本,支持ASCII字符集。它可以編碼128個字符:0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ!#$%&'()* +,-。/ :; <=>?@ [\] ^ _`{|} abcdefg hijklmnopqrs tuvwxyz,其中包括26個大寫字母( AZ),26個小寫字母(az)和帶空格的特殊字符。
請務(wù)必注意,擴展代碼39條形碼的長度大約是常規(guī)代碼39條形碼的兩倍。根據(jù)ISO 646,通過組合兩個符號字符來顯示這些字符,第一個由$ +%/四個字符之一組成,后跟26個字母之一。如果使用完整的ASCII字符集對解碼器進行編程,則僅傳輸ASCII等效字符,而不傳輸符號字符組合。
Code 39 Extended也可以與可選的43模校驗和一起使用,帶有校驗位的代碼看起來像“ CODE 39 EXTENDED mod 43”。
CODE 39和CODE 39 Extended的并排比較
讓我們比較不同條形碼中的相同短語。在這兩種情況下,我們在第一欄中都看不到任何區(qū)別。但是為什么沒有區(qū)別呢?這是因為字符0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ-。兩個條形碼中的$ / +%以相同的方式編碼,但是如果將大寫字母替換為小寫字母,則會出現(xiàn)更改。
在視覺設(shè)計器中創(chuàng)建條形碼
FastReport VCL允許您在報告中使用上述兩種條形碼類型。讓我們看看如何與他們合作。
在FastReport VCL設(shè)計器中,將obCatBarcode組件添加到報告中,然后從列表中選擇條形碼類型:接下來,轉(zhuǎn)到條形碼編輯器:
代碼–條形碼數(shù)值的區(qū)域;
條形碼類型–條形碼類型可以在編輯器中立即更改,而無需在報告中添加新組件;
Calc CheckSum –校驗。所有線性條形碼都具有此屬性。還記得“錯過閱讀”嗎?我們必須以某種方式與之抗?fàn)?!此屬性確定是否應(yīng)自動計算校驗和。如果禁用,則校驗和必須出現(xiàn)在對象文本中;
縮放–設(shè)置條形碼的縮放比例,僅與“自動調(diào)整大小”屬性結(jié)合使用;
文字–啟用/禁用條形碼下的文字顯示;
旋轉(zhuǎn)–允許您將對象的旋轉(zhuǎn)設(shè)置為固定角度之一– 0、90、180、270度。
單擊F(x)圖標(biāo)并進入大表達式編輯器。
可以在FastReport VCL設(shè)計器或文檔中找到更多詳細(xì)信息。 鏈接1 和鏈接2
轉(zhuǎn)到obCatBarcode組件的屬性。
Code字段的內(nèi)容將傳輸?shù)紼xpression字段。如果“表達式”字段為空,則顯示“文本”字段中的文本。
簡而言之,“文本”是靜態(tài)文本,“表達式”包含計算得出的表達式,包括來自數(shù)據(jù)源的值。
從Delphi / Lazarus代碼創(chuàng)建條形碼
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;
還想要更多嗎?您可以點擊閱讀【FastReport 報表2020最新資源盤點】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入FastReport技術(shù)交流群(783996712),我們很高興為您提供查詢和咨詢。