条码打印软件在条形码中设置多个变量的方法

很多时候,我们在BarTender软件中制作的条形码需要有规律的进行变动。这个过程看起来复杂,但就目前BarTender 10.1这一最新版本来说,实现BarTender条形码多个变量设置还是很容易的。下面小编就来一步步教大家如何实现这一过程的。

本文以给BarTender条码设置2个变量为例,三个及以上变量的操作方法雷同:

1、首先,创建条码:A 2015 0001,A和0001分别都需要序列化;

创建条形码

2、对A和0001这两个局部段数据分别单独来进行变量设置,而不是对A 2015 0001(也就是整体)进行变量设置,我们只需要把A和 2015 0001变成2个数据源来分开设置就OK了;若是BarTender条码设置3个变量,方法同理;

条形码属性

3、然后,对A数据源进行“序列化”设置,在“转换”选项中点击“序列化”后面的按钮,打开“序列设置”对话框,完成如下图的设置; 2015 0001也同样进行序列化设置;(若是有特殊字符,如本例中的空格,需要注意不要遗漏。)

序列设置

4、这样,查看打印预览,你就可以清晰的看到BarTender条码设置2个变量产生出来的变化,进而可以批量打印BarTender条码标签了。

变量设置

想要了解更多关于BarTender条码打印软件的详细信息,可点击BarTender教程服务中心查找你想要的内容。

本文转载于:http://www.bartender.cc/jiqiao/bt-duogebianliang.html

转载于:https://my.oschina.net/abbyychina/blog/832185

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于这个问题比较复杂,需要涉及到多个方面的知识,所以我将分步骤进行讲解。 1. 实现软件开机自启 在C#窗体应用程序实现软件开机自启,可以通过修改注册表来实现。 首先,在`Form_Load`事件添加以下代码: ```csharp private void Form1_Load(object sender, EventArgs e) { string appName = "MyApp"; // 修改为你的应用程序名称 string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; RegistryKey startup = Registry.CurrentUser.OpenSubKey(runKey, true); if (startup.GetValue(appName) == null) { startup.SetValue(appName, Application.ExecutablePath.ToString()); } } ``` 这段代码的作用是将应用程序的可执行文件路径添加到Windows注册表,实现开机自启。 2. 通过路径控制ICT测试软件的打开和关闭 在C#,可以使用`Process`类来启动和停止一个进程。在本例,我们可以通过以下代码实现打开和关闭ICT测试软件: ```csharp // 启动ICT测试软件 Process.Start(@"C:\Program Files\ICT\test.exe"); // 关闭ICT测试软件 foreach (var process in Process.GetProcessesByName("test")) { process.Kill(); } ``` 在这段代码,`Process.Start`用于启动ICT测试软件,`Process.GetProcessesByName`用于获取名称为“test”的进程,然后通过`process.Kill()`方法来关闭进程。 3. 生成可以设置良品和不良品条码的组件 在C#,可以使用`Label`控件来生成状态栏,可以使用`TextBox`控件来生成ICT条码栏。 ```csharp // 添加Label控件作为状态栏 Label label = new Label(); label.Text = "请扫描条码"; this.Controls.Add(label); // 添加TextBox控件作为ICT条码栏 TextBox textBox = new TextBox(); textBox.Location = new Point(10, 50); textBox.Width = 200; this.Controls.Add(textBox); ``` 这段代码可以将一个`Label`控件和一个`TextBox`控件添加到窗体。 4. 定时器扫描数据库并进行ICT测试 在C#,可以使用`Timer`控件来实现定时器。在本例,我们可以通过以下代码实现定时器的扫描和ICT测试的功能: ```csharp private void timer1_Tick(object sender, EventArgs e) { // 扫描数据库是否存在当天的设置的良品和不良品条码的测试记录 // 如果存在,则启动ICT测试软件,进行其他条码的ICT测试 // 如果不存在,则进行设置条码的ICT测试 // 判断扫描到的条码是否为设置的良品或不良品条码 string barcode = textBox.Text; bool isGoodBarcode = IsGoodBarcode(barcode); // 判断是否为良品条码 bool isBadBarcode = IsBadBarcode(barcode); // 判断是否为不良品条码 if (!isGoodBarcode && !isBadBarcode) { label.Text = "条码错误"; label.ForeColor = Color.Red; return; } // 如果是良品条码 if (isGoodBarcode) { label.Text = "请进行良品点检"; label.ForeColor = Color.Green; // 将扫到的良品条码通过模拟键盘复制黏贴到ICT条码栏 SendKeys.Send("^c"); // 复制 SendKeys.Send("{TAB}"); // 切换到ICT条码栏 SendKeys.Send("^v"); // 黏贴 SendKeys.Send("{ENTER}"); // 回车 // 提示“良品点检完成” label.Text = "良品点检完成"; label.ForeColor = Color.Green; } // 如果是不良品条码 if (isBadBarcode) { label.Text = "请进行不良品点检"; label.ForeColor = Color.Green; // 将扫到的不良品条码通过模拟键盘复制黏贴到ICT条码栏 SendKeys.Send("^c"); // 复制 SendKeys.Send("{TAB}"); // 切换到ICT条码栏 SendKeys.Send("^v"); // 黏贴 SendKeys.Send("{ENTER}"); // 回车 // 提示“不良品点检完成” label.Text = "不良品点检完成"; label.ForeColor = Color.Green; } // 将测试记录上传到数据库 } // 判断是否为良品条码 private bool IsGoodBarcode(string barcode) { // 从数据库获取当天设置的良品条码 string[] goodBarcodes = GetGoodBarcodes(); // 判断扫描到的条码是否为良品条码 foreach (var gb in goodBarcodes) { if (gb == barcode) { return true; } } return false; } // 判断是否为不良品条码 private bool IsBadBarcode(string barcode) { // 从数据库获取当天设置的不良品条码 string[] badBarcodes = GetBadBarcodes(); // 判断扫描到的条码是否为不良品条码 foreach (var bb in badBarcodes) { if (bb == barcode) { return true; } } return false; } ``` 这段代码,`timer1_Tick`事件是定时器触发时执行的方法。在这个方法,我们首先扫描数据库是否存在当天设置的良品和不良品条码的测试记录。如果存在,就启动ICT测试软件,进行其他条码的ICT测试。如果不存在,则进行设置条码的ICT测试。 然后,我们判断扫描到的条码是否为设置的良品或不良品条码。如果输入的条码不符合,`Label`控件的状态栏变红,并提示“条码错误”。如果输入的条码正确并为设置的良品条码,`Label`控件的状态栏变绿,并提示“请进行良品点检”,这时就将扫到的良品条码通过模拟键盘复制黏贴到ICT条码栏,进行ICT测试,测试完成后就提示“良品点检完成”。如果扫描的是不良品条码,则`Label`控件的状态栏变绿,并提示“请进行不良品点检”,这时就将扫描到的不良品条码通过模拟键盘复制黏贴到ICT条码栏,进行ICT测试。测试完成后,将测试记录上传到数据库。 在这段代码,`GetGoodBarcodes`和`GetBadBarcodes`方法分别用于从数据库获取当天设置的良品和不良品条码,这里省略了具体实现。 5. 其他条码的ICT测试 在本例,其他条码的ICT测试和设置条码测试一样,只不过只有设置条码测试之后记录后才能进行其他条码的ICT测试。这个功能可以通过一个布尔变量来实现。具体代码如下: ```csharp private bool isTestingSetBarcode = false; // 是否正在测试设置条码 private void timer1_Tick(object sender, EventArgs e) { // 如果正在测试设置条码,则直接返回 if (isTestingSetBarcode) { return; } // 扫描数据库是否存在当天的设置的良品和不良品条码的测试记录 // 如果存在,则启动ICT测试软件,进行其他条码的ICT测试 // 如果不存在,则进行设置条码的ICT测试 // 判断扫描到的条码是否为设置的良品或不良品条码 string barcode = textBox.Text; bool isGoodBarcode = IsGoodBarcode(barcode); // 判断是否为良品条码 bool isBadBarcode = IsBadBarcode(barcode); // 判断是否为不良品条码 if (!isGoodBarcode && !isBadBarcode) { label.Text = "条码错误"; label.ForeColor = Color.Red; return; } // 如果是良品条码 if (isGoodBarcode) { if (!IsSetBarcodeTestingComplete()) { return; } label.Text = "请进行良品点检"; label.ForeColor = Color.Green; // 将扫到的良品条码通过模拟键盘复制黏贴到ICT条码栏 SendKeys.Send("^c"); // 复制 SendKeys.Send("{TAB}"); // 切换到ICT条码栏 SendKeys.Send("^v"); // 黏贴 SendKeys.Send("{ENTER}"); // 回车 // 提示“良品点检完成” label.Text = "良品点检完成"; label.ForeColor = Color.Green; } // 如果是不良品条码 if (isBadBarcode) { if (!IsSetBarcodeTestingComplete()) { return; } label.Text = "请进行不良品点检"; label.ForeColor = Color.Green; // 将扫到的不良品条码通过模拟键盘复制黏贴到ICT条码栏 SendKeys.Send("^c"); // 复制 SendKeys.Send("{TAB}"); // 切换到ICT条码栏 SendKeys.Send("^v"); // 黏贴 SendKeys.Send("{ENTER}"); // 回车 // 提示“不良品点检完成” label.Text = "不良品点检完成"; label.ForeColor = Color.Green; } // 将测试记录上传到数据库 } // 判断是否正在测试设置条码 private bool IsSetBarcodeTestingComplete() { // TODO: 判断是否正在测试设置条码 if (true) // 如果测试完成 { isTestingSetBarcode = false; return true; } else { return false; } } ``` 在这段代码,我们添加了一个布尔变量`isTestingSetBarcode`来判断是否正在测试设置条码。如果正在测试,则直接返回。如果测试完成,则将布尔变量设为`false`,可以进行其他条码的ICT测试。如果没有测试完成,则将布尔变量设为`true`,等待测试完成后再进行其他条码的ICT测试。 这里的`IsSetBarcodeTestingComplete`方法用于判断是否正在测试设置条码,这里省略了具体实现,需要根据实际需要进行修改。 以上就是实现软件开机自启并控制ICT测试软件的打开和关闭,生成可以设置良品和不良品条码的组件,定时器扫描数据库并进行ICT测试,以及其他条码的ICT测试的C#代码实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值