摘 要 按照公司对标签的管理要求,产品标签作为商品的重要组成部分,标签打印要美观统一。结合MES系统数据库数据表中合同信息,介绍利用Visual Studio开发环境下C#编程语言实现三种规格标签打印的开发及应用。
【关键词】C# 数据库 软件开发
在分厂钢板和钢卷的生产过程中,产品标识的打印是一项不可缺少的工作,标识美观大方整洁也直接关系到产品的影响力。目前通过随机自带打印模板比较单一,数据输入量较大,操作繁琐而且严重制约了工作效率,造成了时间和耗材的浪费,从而也直接影响到分厂的成本消耗。本文结合公司标签管理要求有效的进行资源整合结合软件开发工具开发一款多功能标签打印软件,并在实际应用中起到了积极的作用,较之前效率大大提升。
1 背景介绍
分厂在钢板和钢卷标签打印采用3台斑马打印机分别用于3种规格标签打印,利用随机自带打印模板进行打印,打印模板需要根据不同标签进行位置调整,打印内容的输入比较笨拙,正因为这些局限性色带及标签纸浪费现象比较严重,这一现象严重时甚至出现了销售中的质量疑义,迫使分厂改变这一局面。本着绿色生产和将本降耗目的出发迫切需要解决目前存在的问题,高效并快速地实现多种规格标签的打印。现场主要问题罗列如下:
(1)标签模板单一化,不能同时打印多种规格标签;
(2)打印内容人工逐行逐条输入,出错率较高;
(3)打印方式效率低下,不能批量打印。
2 功能设计
根据公司对钢板和钢卷的标签管理要求如表1所示进行前台画面布局,数据的查询及显示、标签类型的选择、打印份数等功能。利用MES系统后台数据库中合同表数据根据选择范围进行SQL语句查询并显示在前台窗口作为标签所需要的打印数据内容,以一行作为一个标签打印内容,选择不同的标签后会根据预制格式要求进行批处理打印。
3 软件开发
数据流程图如图1所示进行以Visual studio 2010为开发环境C#为编程语言进行功能开发。
3.1 连接Oracle数据库
连接oracle 10g数据库,用于能够读取合同表数据,利用System.Data.OracleClient命名空间,OracleConnection类来连接数据库,定义myconnect实例化对象。方法如下:
StringconnString = "DataSource=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=172.16.117.190)(Port=1521)))(CONNECT_DATA=(SERVICE_NAME=pesdb)));user id=steckel;password=3500";
OracleConnectionmyconnect = new OracleConnection(connString);
3.2 获取合同表数据
读取合同表内与打印内容相关的字段。连接数据库成功后可以用SQL语句进行对表的操作,这里我们只需要进行查询出需要打印的字段并显示在前台数据窗口中,显示出需要打印的标签内容及数量。
string str1 = "select ORDER_PY,MAT_NO,SG_SIGN,THK_WID_LEN from ORDER where PRODUCT_TIME BETWEEN '" + TimeSt + "' AND '" + TimmeEn + "'";
OracleDataAdapter db1 = new OracleDataAdapter(str1, myconnect.conn);
DataTable table1 = new DataTable();
db1.Fill(table1);
dataGridView1.DataSource = table1;
3.3 定义标签格式
根据标签管理要求,3种标签需要定义后才能使用,通过前台画面选择不同标签程序并调用不同的功能块进行标签的选择和打印,由于两种标签打印在一行,只需在标签位置直接输出并打印内容,在钢卷标签处理上,每一行写入固定行距即可实现10行内容的输出和打印。
printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Plate1", 422,35);
printDocument2.DefaultPageSettings.PaperSize = new PaperSize("Plate2", 422,55);
printDocument3.DefaultPageSettings.PaperSize = new PaperSize("Coil", 394, 315);
3.4 打印功能实现
利用System.Drawing.Printing命名空间,将处理函数添加到PrintDocument的PrintPage事件中并调用printDocument_PrintPage类。printDocument_PrintPage类是根据3种标签的格式进行了格式绘制,如字体类型、字体大小,打印位置等,根据前台画面选择标签类型来调用相应的格式绘制。
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
3.5 异常处理
3.5.1 数据库连接和数据查询异常处理
利用C#语言异常处理机制,对异常问题进行反馈。
try {…}catch (Exception e){…}
3.5.2 标签类型选择的异常处理
因为涉及3种标签选择,为避免打错标签问题,一通过用户必须选择标签类型来解决;二通过打印内容的行数来判断标签选择错误的问题,该异常处理有效的防止标签打印错误造成不必要的浪费。
(1)Plate1.Checked == false &&Plate2.Checked; == false &&Coil.Checked; == false;
(2)if{table1.Columns.Count >4 &&Coil.Checked; == true}then{…}
4 应用效果
软件对3种标签分别进行打印格式绘制,解决了人工调整的麻烦,打印信息也直接从后台数据库中获取,减少了人工输入量和差错率。软件开发应用真正意义上做到了一键打印,体现了智能化。软件的应用提高了打印的准确率,提升了工作效率,有效的控制了耗材的成本,原本在3台打印机改为1台打印机就可以实现,并且标签打印速度大大提升,提高了工作效率。软件界面如图2所示及现场应用效果如图3所示。3种标签通过本软件的实际应用,收到了预期效果。
5 结论
通过以上的软件的开发解决了多种规格标签打印繁琐的问题,使其操作简单方便:自动调取数据,一键打印,快速高效批处理打印,大大提高了工作效率。同时,该思路也为分厂所有岗位在数据处理,操作简单化提供了切实可行的依据。軟件在分厂实际应用中也得到很好的验证,为公司实行高效化,智能化,数据化生产的推广提供很好的参考价值。
参考文献
[1]缪勇,李新峰,付志涛.Visual C#学习笔记[M].北京:电子工业出版社,2008:212-394.
[2]路川,胡欣杰.Oracle 10g宝典[M].北京:电子工业出版社,2006:148-199.
作者简介
何伟(1979-),男,江苏省江阴市人。大学本科学历。现为江阴兴澄特种钢铁有限公司工程师。研究方向为计算机。
作者单位
江阴兴澄特种钢铁有限公司 江苏省江阴市 214429