if (this.tbSetLabel.Text.Trim() == "")
{
MessageBox.Show("请先 Enter 选择标签模板文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.tbSetLabel.Focus();
return;
} int VarTag = 0;
if (tbVar0.Text.Trim() != "")
{
VarTag++;
}
if (tbVar1.Text.Trim() != "")
{
VarTag++;
}
if (tbVar2.Text.Trim() != "")
{
VarTag++;
}
if (tbVar3.Text.Trim() != "")
{
VarTag++;
}
if (VarTag <= 0)
{
MessageBox.Show("最少必须配置一个标签变量,请重新配置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.tbVar0.Focus();
return;
}
else
{
if (MessageBox.Show("您本次配置了 " + VarTag + "个 标签变量,请确认与您事先设计好的标签模板变量数量相同?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
LabelManager2.Application labelapp = new LabelManager2.Application(); //创建lppa.exe进程
try
{
string strPath = System.Windows.Forms.Application.StartupPath + "\\" + tbSetLabel.Text.Trim();
labelapp.Documents.Open(strPath, false);
LabelManager2.Document labeldoc = labelapp.ActiveDocument; if (VarTag == 1)
{
labeldoc.Variables.FormVariables.Item("var0").Value = tbVar0.Text.Trim();
}
if (VarTag == 2)
{
labeldoc.Variables.FormVariables.Item("var0").Value = tbVar0.Text.Trim();
labeldoc.Variables.FormVariables.Item("var1").Value = tbVar1.Text.Trim();
}
if (VarTag == 3)
{
string Var0 = "AB3R 7003 AG";
this.tbVar0.Text = Var0;
labeldoc.Variables.FormVariables.Item("var0").Value = Var0; string Var1 = "FFTB0212" + DateTime.Now.ToString("yyMMddHHmmss");
this.tbVar1.Text = Var1;
labeldoc.Variables.FormVariables.Item("var1").Value = Var1; labeldoc.Variables.FormVariables.Item("var2").Value = tbVar2.Text.Trim();
}
if (VarTag == 4)
{
//dataGridView1.Rows.Add(Var0);
//labeldoc.Variables.FormVariables.Item("var0").Value = dataGridView1.Rows[0].Cells[0].Value.ToString(); labeldoc.Variables.FormVariables.Item("var0").Value = tbVar0.Text.Trim();
labeldoc.Variables.FormVariables.Item("var1").Value = tbVar1.Text.Trim();
labeldoc.Variables.FormVariables.Item("var2").Value = tbVar2.Text.Trim();
labeldoc.Variables.FormVariables.Item("var3").Value = tbVar3.Text.Trim();
} string sql = "insert into BarCode_PrintRecord(BarCode0,BarCode1,BarCode2,BarCode3,CreatePerson,CreateDate) values (' " + tbVar0.Text.Trim() + " ','" + tbVar1.Text.Trim() + "','" + tbVar2.Text.Trim() + "','" + tbVar3.Text.Trim() + "','',GETDATE())";
SqlHelper.ExecuteNonQuery(sql); labeldoc.PrintDocument(); //打印一次
labeldoc.FormFeed(); //结束打印 labeldoc.Close(true); MessageBox.Show("\"打印条码\"完成!");
}

  

条码打印程序操作说明

(C#程序调用CodeSoft预先设计好的标签模块实现打印功能)

  1. 安装 CODESOFT 7 Enterprise
  2. 安装 条码打印机驱动程序

3.  安装 .NET Framework 4.5.2

4.  安装SQL Server 2008及以上版本,执行生成相应表脚本

以下以“南昌D4”项目为例演示:

一、设计条码模板(CODESOFT)

Var0、Var1、Var2共3个变量

设计好后 保存到 条码打印程序的根目录

二、打印条码

  1. 选择事先设计好的模板
  2. 配置标签变量(标签变量数量和模板数量相同)
  3. 点击”打印条码”

三、验证数据

查看对应表是否生成条码成功

查看打印机是否打印条码成功

C#程序调用CodeSoft预先设计好的标签模块实现打印功能的更多相关文章

  1. C# - WinFrm应用程序调用SharpZipLib实现文件的压缩和解压缩

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序调用SharpZipLib,实现文件的简单压缩和解压缩功能. SharpZipLib 开源地址戳这里. 准备工作 搭建WinFrm前台界面 添 ...

  2. C# 标签(条码)的打印与设计(一)

    C# 标签(条码)的打印与设计(一) C# 标签(条码)的打印与设计(二) 总结:自定义设计条码器.

  3. 架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)

    在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务.通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解. 远程调 ...

  4. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  5. C#之VS2010ASP.NET页面调用Web Service和winform程序调用Web Service

    一:用ASP.NET调用Web Service 打开VS2010,打开“文件-新建-网站”,选择“ASP.NET网站” 选好存储位置,语言后点击确定,进入默认页面.然后先添加Web引用,把WebSer ...

  6. 【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)

    原文:[ASP.NET Web API教程]3.3 通过WPF应用程序调用Web API(C#) 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的 ...

  7. 【原】Java程序调用远程Shell脚本

    此程序的目的是执行远程机器上的Shell脚本. [环境参数]远程机器IP:192.168.234.123用户名:root密码:rootShell脚本的路径:/home/IFileGenTool/Bak ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. python程序调用C/C++代码

    这篇用来记录在些模拟Canoe生成CAN数据桢工具时遇到的问题, 生成CAN数据桢,主要分为两个关注点: 1.如何从can信号名获取到can信号的ID长度以及信号的起始位,并将信号值按照一定的规则填写 ...

随机推荐

  1. MySQL 5.6 记录 SQL 语句与慢查询

    环境: MySQL 如果需要记录 MySQL 的查询语句,需要在配置文件(Linux 下为 my.cnf,Windows 下为 my.ini)中添加配置: general_log = ON gener ...

  2. 百度网盘生成二维码api

    分享出自精神,灵感来自大脑,在百度云网盘分享每一个文件,都会在页面生成一个二维码扫描的图片: 我就进一步看了该图片的地址: 发现没有,圈圈内是不是有点眼熟,就跟其他二维码api接口一样,只要盗用这段东 ...

  3. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析

    mongodb和memcached不是一个范畴内的东西.mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.mongodb和memcached不存在谁替换谁的问题. 和 ...

  4. How to use aws CloudFront for CDN

    How to use aws CloudFront for CDN 1. create a new distribution in AWS cloudfront service, select alt ...

  5. Java-马士兵动态代理模式

    Java-马士兵动态代理模式 模拟jdk的动态代理的实现原理, 这些东西没有必要写出来,写项目的时候一般用不上,主要是为了面试和理解原理: java动态代理有什么作用 作用非常大,在很多底层框架中都会 ...

  6. PCB板的质量可接受性标准 IPC-A-600H 中文版下载

    对于电子行业的小伙伴来说,经常要找PCB板厂打板,总难免遇到跟板厂因PCB上的质量缺陷扯皮的时候,这是就要有一份公认PCB质量可接受性标准作为最终PCB产品的验收标准,即IPC-A-600标准规范. ...

  7. QtAlgorithms

    qSort() qCopy() qFill() #include <QCoreApplication> #include<QDebug> #include<QVector ...

  8. 使用clearInterval清除计时循环时,最后一次循环还是会执行解决办法

    原代码: var interv=setInterval(function(){ alert("setInterval执行"); },2000) clearInterval(inte ...

  9. PDO和消息队列的一点个人理解

    什么是消息队列,百度百科说,···消息队列····是在消息的传输过程中保存消息的容器. 看着网上林林总总的文章,都说是为了应对高并发,处理数据量超级大的一种数据容器,也可以说是利用各种方式,先把数据存 ...

  10. 移动应用抓包调试利器Charles

    转载:http://www.jianshu.com/p/68684780c1b0 一.Charles是什么? Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不 ...