蘭云 韓震宇 馬鵬 鄒龍飛
摘 要: Web數(shù)據(jù)庫技術(shù)飛速發(fā)展和條碼技術(shù)的日漸成熟,使二者的結(jié)合開發(fā)使用越來越受到企業(yè)的青睞。設(shè)計(jì)了一個基于B/S結(jié)構(gòu)的條碼標(biāo)簽打印系統(tǒng),以方便企業(yè)內(nèi)部網(wǎng)中生產(chǎn)部門的用戶能在車間內(nèi)打印出連續(xù)不重復(fù)序列號的條碼標(biāo)簽,驗(yàn)證部門用戶能通過內(nèi)部網(wǎng)訪問Web數(shù)據(jù)庫驗(yàn)證標(biāo)簽內(nèi)容是否正確。系統(tǒng)開發(fā)采用三層B/S結(jié)構(gòu)模式、ASP.NET技術(shù)和SQL Server 2008數(shù)據(jù)庫。系統(tǒng)界面友好、操作簡單。
關(guān)鍵詞: 條碼; B/S結(jié)構(gòu); 打印; ASP.NET
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2015)06-29-03
Abstract: With the rapid development of Web database technology and barcode technology, enterprises are more and more prefer to use the combination of the two in their application development. A barcode label printing system based on B/S structure is designed in this paper, so that the users in production department can print out the barcode label, which has unique serial number on it, by the intranet, in the workshop, and the users in verification department can access the Web database through the intranet to validate the information on the label. The system adopts B/S three-tier model, and uses ASP.NET technology and SQL Server 2008 database, it has a friendly interface and is easy to operate.
Key words: barcode; B/S structure; printing; ASP.NET
0 引言
條碼技術(shù)是一種廣泛應(yīng)用于制造業(yè)、運(yùn)輸業(yè)、服飾業(yè),乃至政府機(jī)關(guān)公文管理、圖書管理、醫(yī)院病歷管理,甚至資產(chǎn)管理等領(lǐng)域的自動識別技術(shù),條碼具有輸入速度快、準(zhǔn)確度高、成本低、可靠性強(qiáng)等優(yōu)點(diǎn)[1]。條碼在現(xiàn)代生產(chǎn)中的應(yīng)用主要目的是,根據(jù)訂單制定合理的生產(chǎn)計(jì)劃,減少原材料、半成品、成品的積壓,消除冗余環(huán)節(jié)和生產(chǎn)浪費(fèi),節(jié)約成本,保證質(zhì)量。條碼應(yīng)用使產(chǎn)品的生產(chǎn)工藝在生產(chǎn)線上能即時(shí)、有效地反映出來,省卻了人工跟蹤的勞動,快速統(tǒng)計(jì)和查詢生產(chǎn)數(shù)據(jù),為生產(chǎn)調(diào)度、排單等提供依據(jù)。對于檢驗(yàn)出的不合格產(chǎn)品,能記錄下是工人人為問題或者是零件的問題,提供實(shí)用的分析報(bào)告[2]。
Web數(shù)據(jù)庫開發(fā)技術(shù)是網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù)飛速發(fā)展的必然產(chǎn)物。Web技術(shù)發(fā)展到今天,已經(jīng)可以使Web技術(shù)與數(shù)據(jù)庫技術(shù)完美的融合,為Internet用戶提供使用簡便和內(nèi)容豐富的動態(tài)服務(wù)。隨著Web數(shù)據(jù)庫技術(shù)、條碼技術(shù)的日漸成熟。企業(yè)已認(rèn)同將兩者結(jié)合開發(fā)使用,對于其在生產(chǎn)管理中的作用越來越重視。
Web打印是很多B/S結(jié)構(gòu)軟件項(xiàng)目必不可少的功能,也是開發(fā)人員所面臨的一個共同難題。Web應(yīng)用程序的打印有種種限制,在開發(fā)ASP.NET下的Web應(yīng)用程序時(shí),由于只能采用瀏覽器作為用戶界面進(jìn)行交互,所以不能精確地控制打印機(jī)[3]。因此,傳統(tǒng)的Web打印方法不能滿足用戶在生產(chǎn)線上打印連續(xù)不重復(fù)條碼標(biāo)簽的要求。本文介紹了基于B/S結(jié)構(gòu)的條碼打印與驗(yàn)證系統(tǒng)的思想和關(guān)鍵模塊的實(shí)現(xiàn)技術(shù)。通過服務(wù)器控制打印機(jī)來解決客戶打印標(biāo)簽的要求。服務(wù)器端采用ASP.NET,數(shù)據(jù)庫使用SQL Server2008,編程環(huán)境VS2008,腳本語言采用JavaScript。
1 系統(tǒng)介紹
1.1 系統(tǒng)原理
企業(yè)使用B/S結(jié)構(gòu)的應(yīng)用系統(tǒng)時(shí),根據(jù)企業(yè)的規(guī)模和地理分布情況,可以使用星形拓?fù)浣Y(jié)構(gòu)建立企業(yè)內(nèi)部通信網(wǎng)絡(luò)Intranet,或利用Internet虛擬專網(wǎng)進(jìn)行通信[4]。本系統(tǒng)采用前者,因其安全、快捷、準(zhǔn)確。整個網(wǎng)絡(luò)都使用TCP/IP協(xié)議。系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
1.2 標(biāo)簽說明
產(chǎn)品標(biāo)簽內(nèi)容包括產(chǎn)品型號編碼,批次號,日期碼(格式4位:年年周周,如1502),數(shù)量(裝在卷盤里或者盒子里的產(chǎn)品數(shù)量),序列號(格式14位,如LLA150000001AA,第1,2位和第13,14位固定不變。第3位為0-9,A-Z其中之一。第4,5位為年份。第6-12位為36進(jìn)制的數(shù))等五項(xiàng)內(nèi)容。每條信息對應(yīng)一個一維碼,二維碼內(nèi)容包括所有產(chǎn)品信息加上防偽碼。序列號要求連續(xù)不可重復(fù)。標(biāo)簽分為盒子標(biāo)簽和卷盤標(biāo)簽兩種,二者區(qū)別在于數(shù)量不同(特殊情況下相同,即一個盒子里只裝一個卷盤),卷盤是裝在盒子內(nèi)的,盒子標(biāo)簽上的數(shù)量等于裝在盒子內(nèi)所有卷盤標(biāo)簽數(shù)量的和。同一個批次的產(chǎn)品,卷盤標(biāo)簽和盒子標(biāo)簽上的序列號要求連續(xù),先卷盤標(biāo)簽連續(xù)再盒子標(biāo)簽連續(xù)。標(biāo)簽樣本如圖2所示。
1.3 系統(tǒng)功能和流程圖
系統(tǒng)功能針對管理員、生產(chǎn)用戶和驗(yàn)證用戶而設(shè)置,分別建立了三個角色。
生產(chǎn)用戶和驗(yàn)證用戶登錄后的頁面都有三部分內(nèi)容,生產(chǎn)用戶為:打印標(biāo)簽、打印記錄查詢和修改密碼。驗(yàn)證用戶為:驗(yàn)證頁面、驗(yàn)證記錄查詢和修改密碼。
管理員主要設(shè)置了九部分內(nèi)容。一是產(chǎn)品型號/數(shù)量配置,即不同型號對應(yīng)的盒子標(biāo)簽的數(shù)量和卷盤標(biāo)簽的數(shù)量;二是打印機(jī)配置,即生成線上的每臺客戶機(jī)對應(yīng)一臺打印機(jī);三是參數(shù)改變,即序列號的第3位改變和Web服務(wù)的URL改變;四是注冊新用戶;五是管理用戶;六是修改密碼;七是打印標(biāo)簽;八是驗(yàn)證頁面;九是打印和驗(yàn)證記錄查詢。以管理員為例,系統(tǒng)流程圖如圖3所示。
2 數(shù)據(jù)表結(jié)構(gòu)
本系統(tǒng)涉及到的主要數(shù)據(jù)表有四個,其中表1(DefaultPrinter)用于記錄生產(chǎn)車間內(nèi)客戶機(jī)對應(yīng)的打印機(jī),表2(Devc_Number)用于記錄不同產(chǎn)品型號對應(yīng)的卷盤標(biāo)簽和盒子標(biāo)簽上的數(shù)量,表3(Important)用于記錄序列號中的第3位及第6-12位數(shù)和取產(chǎn)品型號是Web服務(wù)的URL地址,表4(PrintRecord)用于存儲打印標(biāo)簽的記錄,這四個表的字段設(shè)定情況見表1-表4。
3 系統(tǒng)實(shí)現(xiàn)關(guān)鍵模塊
首先,Web應(yīng)用程序的開發(fā)人員必須考慮用戶在使用應(yīng)用程序時(shí),如何在各個請求之間保存狀態(tài)。要為用戶保存狀態(tài),就必須在某種數(shù)據(jù)庫中記錄用戶狀態(tài)[5]。這在ASP.NET2.0中很容易做到,只要使用提供程序,就可以用比較高級的模式把狀態(tài)記錄到數(shù)據(jù)存儲器中。ASP.NET中許多提供程序都可以與SQL Server一同使用。例如本系統(tǒng)所需要的成員、角色管理和其他提供程序系統(tǒng)都可以和SQL Server一同使用。為了使用Microsoft SQL Server2005或2008,只需使用aspnet_regsql.exe工具建立數(shù)據(jù)庫,創(chuàng)建必須的表、角色、存儲過程和提供程序需要的其他項(xiàng)。
3.1 登錄模塊
用戶登錄界面為系統(tǒng)用戶提供交互,輸入用戶名和密碼,登錄本系統(tǒng)。不同的角色能使用的功能也不同。配置web.config文件使未驗(yàn)證用戶進(jìn)入Default.aspx頁面,即登錄頁面。
3.2 管理員參數(shù)配置模塊
這里參數(shù)配置包括型號/批次號配置、打印機(jī)配置和參數(shù)改變。型號與卷盤標(biāo)簽、盒子標(biāo)簽上數(shù)量的關(guān)系由管理員一一錄入;打印機(jī)配置頁面初始化時(shí),會在IP欄的文本框顯示登錄客戶機(jī)的IP地址,選擇打印機(jī)的下拉列表中顯示服務(wù)器分享的所有打印機(jī),管理員選擇相應(yīng)打印機(jī),按確定后,就可為該客戶機(jī)配置默認(rèn)打印標(biāo)簽的打印機(jī);參數(shù)改變,在SN第三位的下拉列表框選擇即可,如果需要改變Web服務(wù)的URL,就在WebService的文本框中修改URL地址,確認(rèn)即可,表3就會發(fā)生相應(yīng)改變。
3.3 打印模塊
打印頁面如圖4所示。打印分為樣品標(biāo)簽打印和正式標(biāo)簽打印兩種,由左下角的復(fù)選框“打印樣品標(biāo)簽”控制打印那種標(biāo)簽。二者區(qū)別在于,前者輸入LotNumber后還需輸入LPN(型號),此時(shí)LPN文本框可用。后者輸入LotNumber后,服務(wù)器到表3的URL去取出相應(yīng)的信息,并從返回的XML文檔中篩選出該LotNumber對應(yīng)的LPN且顯示在頁面的LPN文本框中,此時(shí)LPN文本框?yàn)椴豢删庉嫛?/p>
Date,即標(biāo)簽的日期碼的獲取。輸入LotNumber后取系統(tǒng)時(shí)間換算為“年年周周”的格式,如需要修改,選擇右下角的“修改Date”復(fù)選框,即可修改Date,但修改后的Date不能比當(dāng)時(shí)系統(tǒng)的時(shí)間大。
打印的標(biāo)簽張數(shù),有自動算出和輸入張數(shù)兩種選擇。自動算出,即選中Ship Quantity(一個批次的總產(chǎn)品數(shù),一定卷盤標(biāo)簽上數(shù)量的倍數(shù))前的單選按鈕,此時(shí)卷盤標(biāo)簽張數(shù)和盒子標(biāo)簽張數(shù)的文本框?yàn)榛疑豢删庉嫞惠斎霃垟?shù),即選擇卷盤標(biāo)簽張數(shù)前的單選按鈕,此時(shí)卷盤標(biāo)簽張數(shù)和盒子標(biāo)簽張數(shù)的文本框?yàn)榘咨删庉?,Ship Quantity文本框?yàn)榛疑豢删庉嫛?/p>
為了使打印標(biāo)簽更具靈活性,添加了自定義標(biāo)簽上產(chǎn)品數(shù)量的功能,即打印標(biāo)簽時(shí)不從表2取對應(yīng)型號的數(shù)量,而在自定義QTY文本框中取,打印標(biāo)簽的張數(shù)從自定義張數(shù)文本框中取。
4 結(jié)束語
本文著重介紹了基于B/S結(jié)構(gòu)的條碼打印與驗(yàn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),該系統(tǒng)為產(chǎn)品的生產(chǎn)管理提供了極大便利,并且對企業(yè)的經(jīng)營、節(jié)約成本和提高管理效率提升控制力。我們今后會在企業(yè)應(yīng)用過程中不斷修改和完善系統(tǒng)功能,使該系統(tǒng)的可讀性、可操作性、可擴(kuò)展性和可維護(hù)性更好。
參考文獻(xiàn):
[1] 劉志海.條碼技術(shù)及程序設(shè)計(jì)案例[M].化學(xué)工業(yè)出版社,2009.
[2] 林烈青.倉庫管理系統(tǒng)開發(fā)案例解析[M].機(jī)械工業(yè)出版社,2007.
[3] 田穎.ASP.NET中的Web打印方法[J].鐵路計(jì)算機(jī)應(yīng)用,2007.16(2):
43-46
[4] 任泰明.基于B/S結(jié)構(gòu)的軟件開發(fā)技術(shù)[M].西安電子科技大學(xué)出版
社,2006.
[5] Bill Evjen,Scott Hanselman.ASP.NET 2.0高級編程[M].清華大學(xué)出
版社,2006.