摘 要 按照公司對標簽的管理要求,產品標簽作為商品的重要組成部分,標簽打印要美觀統(tǒng)一。結合MES系統(tǒng)數(shù)據(jù)庫數(shù)據(jù)表中合同信息,介紹利用Visual Studio開發(fā)環(huán)境下C#編程語言實現(xiàn)三種規(guī)格標簽打印的開發(fā)及應用。
【關鍵詞】C# 數(shù)據(jù)庫 軟件開發(fā)
在分廠鋼板和鋼卷的生產過程中,產品標識的打印是一項不可缺少的工作,標識美觀大方整潔也直接關系到產品的影響力。目前通過隨機自帶打印模板比較單一,數(shù)據(jù)輸入量較大,操作繁瑣而且嚴重制約了工作效率,造成了時間和耗材的浪費,從而也直接影響到分廠的成本消耗。本文結合公司標簽管理要求有效的進行資源整合結合軟件開發(fā)工具開發(fā)一款多功能標簽打印軟件,并在實際應用中起到了積極的作用,較之前效率大大提升。
1 背景介紹
分廠在鋼板和鋼卷標簽打印采用3臺斑馬打印機分別用于3種規(guī)格標簽打印,利用隨機自帶打印模板進行打印,打印模板需要根據(jù)不同標簽進行位置調整,打印內容的輸入比較笨拙,正因為這些局限性色帶及標簽紙浪費現(xiàn)象比較嚴重,這一現(xiàn)象嚴重時甚至出現(xiàn)了銷售中的質量疑義,迫使分廠改變這一局面。本著綠色生產和將本降耗目的出發(fā)迫切需要解決目前存在的問題,高效并快速地實現(xiàn)多種規(guī)格標簽的打印?,F(xiàn)場主要問題羅列如下:
(1)標簽模板單一化,不能同時打印多種規(guī)格標簽;
(2)打印內容人工逐行逐條輸入,出錯率較高;
(3)打印方式效率低下,不能批量打印。
2 功能設計
根據(jù)公司對鋼板和鋼卷的標簽管理要求如表1所示進行前臺畫面布局,數(shù)據(jù)的查詢及顯示、標簽類型的選擇、打印份數(shù)等功能。利用MES系統(tǒng)后臺數(shù)據(jù)庫中合同表數(shù)據(jù)根據(jù)選擇范圍進行SQL語句查詢并顯示在前臺窗口作為標簽所需要的打印數(shù)據(jù)內容,以一行作為一個標簽打印內容,選擇不同的標簽后會根據(jù)預制格式要求進行批處理打印。
3 軟件開發(fā)
數(shù)據(jù)流程圖如圖1所示進行以Visual studio 2010為開發(fā)環(huán)境C#為編程語言進行功能開發(fā)。
3.1 連接Oracle數(shù)據(jù)庫
連接oracle 10g數(shù)據(jù)庫,用于能夠讀取合同表數(shù)據(jù),利用System.Data.OracleClient命名空間,OracleConnection類來連接數(shù)據(jù)庫,定義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 獲取合同表數(shù)據(jù)
讀取合同表內與打印內容相關的字段。連接數(shù)據(jù)庫成功后可以用SQL語句進行對表的操作,這里我們只需要進行查詢出需要打印的字段并顯示在前臺數(shù)據(jù)窗口中,顯示出需要打印的標簽內容及數(shù)量。
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 定義標簽格式
根據(jù)標簽管理要求,3種標簽需要定義后才能使用,通過前臺畫面選擇不同標簽程序并調用不同的功能塊進行標簽的選擇和打印,由于兩種標簽打印在一行,只需在標簽位置直接輸出并打印內容,在鋼卷標簽處理上,每一行寫入固定行距即可實現(xiàn)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 打印功能實現(xiàn)
利用System.Drawing.Printing命名空間,將處理函數(shù)添加到PrintDocument的PrintPage事件中并調用printDocument_PrintPage類。printDocument_PrintPage類是根據(jù)3種標簽的格式進行了格式繪制,如字體類型、字體大小,打印位置等,根據(jù)前臺畫面選擇標簽類型來調用相應的格式繪制。
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
3.5 異常處理
3.5.1 數(shù)據(jù)庫連接和數(shù)據(jù)查詢異常處理
利用C#語言異常處理機制,對異常問題進行反饋。
try {…}catch (Exception e){…}
3.5.2 標簽類型選擇的異常處理
因為涉及3種標簽選擇,為避免打錯標簽問題,一通過用戶必須選擇標簽類型來解決;二通過打印內容的行數(shù)來判斷標簽選擇錯誤的問題,該異常處理有效的防止標簽打印錯誤造成不必要的浪費。
(1)Plate1.Checked == false &&Plate2.Checked; == false &&Coil.Checked; == false;
(2)if{table1.Columns.Count >4 &&Coil.Checked; == true}then{…}
4 應用效果
軟件對3種標簽分別進行打印格式繪制,解決了人工調整的麻煩,打印信息也直接從后臺數(shù)據(jù)庫中獲取,減少了人工輸入量和差錯率。軟件開發(fā)應用真正意義上做到了一鍵打印,體現(xiàn)了智能化。軟件的應用提高了打印的準確率,提升了工作效率,有效的控制了耗材的成本,原本在3臺打印機改為1臺打印機就可以實現(xiàn),并且標簽打印速度大大提升,提高了工作效率。軟件界面如圖2所示及現(xiàn)場應用效果如圖3所示。3種標簽通過本軟件的實際應用,收到了預期效果。
5 結論
通過以上的軟件的開發(fā)解決了多種規(guī)格標簽打印繁瑣的問題,使其操作簡單方便:自動調取數(shù)據(jù),一鍵打印,快速高效批處理打印,大大提高了工作效率。同時,該思路也為分廠所有崗位在數(shù)據(jù)處理,操作簡單化提供了切實可行的依據(jù)。軟件在分廠實際應用中也得到很好的驗證,為公司實行高效化,智能化,數(shù)據(jù)化生產的推廣提供很好的參考價值。
參考文獻
[1]繆勇,李新峰,付志濤.Visual C#學習筆記[M].北京:電子工業(yè)出版社,2008:212-394.
[2]路川,胡欣杰.Oracle 10g寶典[M].北京:電子工業(yè)出版社,2006:148-199.
作者簡介
何偉(1979-),男,江蘇省江陰市人。大學本科學歷?,F(xiàn)為江陰興澄特種鋼鐵有限公司工程師。研究方向為計算機。
作者單位
江陰興澄特種鋼鐵有限公司 江蘇省江陰市 214429