可视化报告生成器FastReport VCL功能指南:如何使用Delphi / Lazarus创建CODE 39和CODE 39扩展条形码
报表生成器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个是宽的。基本组成如下:
- 一个字母(字符)由9个小节和空格表示。
- 星号(*)附加在条形码的开头和结尾。(开始/停止字符)
- 字符之间的间隔称为“字符间间隙”。通常,间隙宽度与窄条宽度一样宽。(最大宽度规定为窄条宽度的3到5.3倍。)
字符间距
下表概述了Code 39规范。分配给每个字符的数字值(开始/停止除外)在以下所述的校验和算法中使用。
这是执行校验和计算的方法:
1.取条形码中每个字符的值(0到42),不包括开始和结束代码。
2.对值求和。
3.将结果除以43。
4 .余数是要附加的校验和字符的值。
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-。两个条形码中的$ / +%以相同的方式编码,但是如果将大写字母替换为小写字母,则会出现更改。
在视觉设计器中创建条形码
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;
还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入FastReport技术交流群(783996712),我们很高兴为您提供查询和咨询。