如何为我的条形码报告添加起点和终点?

问题描述 投票:0回答:1

我为客户出勤创建了条形码水晶报表, 我使用了 IDAutomationHC39M 字体 并创建存储过程来生成条形码

然后我创建了以下空白并在单击按钮时打印标签报告

private void btnbarcode_Click(object sender, EventArgs e)
        {
                   
                RPT.barcode myreport = new RPT.barcode();
                myreport.SetParameterValue("@INVOICE_ID", txtOrder.Text);
                myreport.SetDatabaseLogon("admin", "1234");
                RPT.RPT_TESTS myform = new RPT.RPT_TESTS();
                myform.crystalReportViewer1.ReportSource = myreport;
                myform.ShowDialog();
            
        }

打印标签后条码阅读器无法读取条码的问题,我看了一些帖子 我需要像这样添加起点和终点

"*" invoice_ID "*" 

我将如何解决这个问题并修复条形码以便条形码阅读器可读 如何向我的代码添加起点和终点,这是正确的字体 IDAutomationHC39 吗?

c# crystal-reports
1个回答
0
投票

您可以使用

"*" & invoice_ID & "*"
等公式手动编码此条形码。您共享的公式具有所有可用的正确元素,您只需要&符号来表示应该连接文本值。如果您的发票编号完全是数字,您可能需要使用
ToText()
函数将您的发票编号转换为文本数据类型以避免错误。所以这会将公式更改为
"*" & ToText(invoice_ID) & "*"
.

但是,我强烈建议您考虑获取一个用户函数库,又名 UFL,其中包含用于编码 Code 39 条形码的函数。您使用的手动编码可能会导致一些问题,因为编码不仅仅是开始和停止代码,例如测试字符串中的非法字符。一个好的 UFL 中的函数将测试被编码的值,以确保不存在动态方式的非法字符,这些字符可以快速、轻松地重复使用,而无需将编码过程的代码直接重写到公式中。由于 Code 39 条码的简单性,这不是什么大问题,但它仍然有助于避免必须记住允许的字符,尤其是当您需要使用具有校验和数字的其他条码类型时。自己计算这些校验和值可能很痛苦。

我使用在这里找到的杜鹃花UFL。但是还有很多来自不同来源的其他 UFL,可以通过 Google 搜索轻松找到。

一旦您将 DLL 文件放入您的 Crystal Reports 版本的正确文件夹中,它就像创建一个调用函数以编码 Code 39 条形码的公式字段一样简单。然后你所要做的就是将公式字段放在你的报告上并将字体设置为合适的条形码字体。

© www.soinside.com 2019 - 2024. All rights reserved.