摘 要:河北中煙NC-ERP系統(tǒng)的快速實(shí)施,需要對(duì)從屬?gòu)S家提取大量數(shù)據(jù),整合后導(dǎo)入到NC-ERP系統(tǒng)。然而,因數(shù)據(jù)提取工作量過(guò)大,實(shí)際實(shí)施困難。我利用多年的編程經(jīng)驗(yàn),在對(duì)本廠備件數(shù)據(jù)進(jìn)行分析歸類,通過(guò)編程實(shí)現(xiàn)編碼,導(dǎo)出本廠備件數(shù)據(jù),再導(dǎo)入到中煙公司NC-ERP中,從而較好解決了這一難題,為項(xiàng)目快速實(shí)施打下堅(jiān)實(shí)的基礎(chǔ)。
關(guān)鍵詞:煙草;備件;數(shù)據(jù)快速導(dǎo)入;編程方案
中圖分類號(hào):F270.7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4117(2011)09-0359-01
NC-ERP是河北中煙公司實(shí)行信息化的重要項(xiàng)目,實(shí)施所需要采集的數(shù)據(jù)信息系統(tǒng)包含原料、輔料、備件、銷售管理四大子系統(tǒng)。為實(shí)現(xiàn)本廠備件導(dǎo)出數(shù)據(jù)并編碼,我寫了一序列程序,從而從技術(shù)上實(shí)現(xiàn)了本廠備件數(shù)據(jù)快速導(dǎo)入導(dǎo)出,10分鐘內(nèi)快速導(dǎo)出本廠3萬(wàn)多種備件,同時(shí)為備件進(jìn)行編碼。
一、NC-ERP備件存貨導(dǎo)出導(dǎo)入的程序開發(fā)思路
河北中煙NC-ERP實(shí)施,需要提取下面廠家的數(shù)據(jù)信息,且數(shù)據(jù)信息系統(tǒng)是建立在原料、輔料、備件、銷售管理四大子系統(tǒng)的基礎(chǔ)上。如果逐一手工提取,工作量過(guò)大,耗時(shí)長(zhǎng),將直接導(dǎo)致NC-ERP實(shí)施困難。那么,怎么才能解決廠的數(shù)據(jù)快速導(dǎo)出?經(jīng)過(guò)反復(fù)研究本廠ERP備件數(shù)據(jù),對(duì)分類進(jìn)行剝離,保存到excel中,通過(guò)編寫程序,就可以導(dǎo)出數(shù)據(jù),并導(dǎo)入到NC-ERP中,就可以實(shí)現(xiàn)??梢?,這一程序的開發(fā)應(yīng)用,滿足了公司NC-ERP數(shù)據(jù)信息系統(tǒng)對(duì)于數(shù)據(jù)快速導(dǎo)入的需要。程序開發(fā)的原則:
一是基于解決NC-ERP備件存貨數(shù)據(jù)快速導(dǎo)出導(dǎo)入的應(yīng)用問(wèn)題。在本廠ERP中,涉及三萬(wàn)多種備件。一個(gè)大類包含若干個(gè)子類,子類又包含子類。手工導(dǎo)入的困難顯而易見。通過(guò)幾層分類,把分類信息保存到excel表格中,通過(guò)編程實(shí)現(xiàn)分類讀取其目錄下的備件,并進(jìn)行編碼,保存到excel表格,再將數(shù)據(jù)導(dǎo)入到中煙公司NC-ERP中,就能解決這一應(yīng)用問(wèn)題。
二是解決公司ERP數(shù)據(jù)快速導(dǎo)入的代碼開發(fā)工具。應(yīng)用問(wèn)題解決所用的代碼系統(tǒng),是用eclipse工具來(lái)開發(fā)的。所運(yùn)用的基本工具為jxl.jar這個(gè)包。實(shí)際上,jxl.jar的功能基本上可以滿足提取的數(shù)據(jù)進(jìn)行數(shù)據(jù)整合工作的需要。由于jxl.jar通過(guò)java操作excel表格的工具類庫(kù),支持Excel 95-2000的所有版本,生成Excel 2000標(biāo)準(zhǔn)格式,支持字體、數(shù)字、日期操作,支持圖像和圖表等等,功能已能滿足代碼開發(fā)過(guò)程中所有的需要。
三是解決數(shù)據(jù)快速導(dǎo)入的基本編程思路。應(yīng)用程序的開發(fā)目的在于將下面廠家數(shù)據(jù)快速導(dǎo)出并導(dǎo)入NC-ERP,解決公司ERP的數(shù)據(jù)完善問(wèn)題。我們根據(jù)本廠ERP所有數(shù)據(jù)分類特征,提取備件信息,即可以通過(guò)這一應(yīng)用程序的實(shí)際運(yùn)行來(lái)得到,從而直接導(dǎo)出到excel表格中。即通過(guò)對(duì)ERP所有分類信息進(jìn)行編碼,再依賴jxl.jar來(lái)編寫程序開發(fā)代碼,通過(guò)運(yùn)行這一應(yīng)用程序,就能得到導(dǎo)出數(shù)據(jù)。再將導(dǎo)出數(shù)據(jù)導(dǎo)入公司NC-ERP中。
二、NC-ERP備件存貨導(dǎo)出導(dǎo)入實(shí)現(xiàn)的基本步驟
這里以河北保定煙廠的備件系統(tǒng)數(shù)據(jù)提取為例,來(lái)說(shuō)明這一應(yīng)用程序?qū)崿F(xiàn)的基本步驟。
第一步:確定代碼編寫規(guī)則。由于涉及到要提取的信息實(shí)際種類繁多,要提取的關(guān)于備件的各類信息,備件數(shù)量就高達(dá)三萬(wàn)多。手工操作分類,機(jī)械提取,幾乎不可能。而數(shù)據(jù)無(wú)法導(dǎo)入到公司NC-ERP中,顯然,就無(wú)法解決公司ERP的快速實(shí)施問(wèn)題。采用層層分類法,根據(jù)分類結(jié)構(gòu),由一個(gè)類信息導(dǎo)出另一個(gè)類信息。如保定煙廠的備件信息:先分為三個(gè)大類,即專用件、通用件,其它五金、工具及雜件。而每一個(gè)專用件的子結(jié)構(gòu)中,又可以繼續(xù)分類,即確定下一級(jí)子結(jié)構(gòu)。這樣確定分類規(guī)則后,對(duì)應(yīng)于每一個(gè)子結(jié)構(gòu),就可以對(duì)相對(duì)應(yīng)的備件數(shù)據(jù)進(jìn)行編碼。在這里規(guī)定為一般是16位,不能超過(guò)16位。具體分類及編碼如下:
0401這是大分類,表示專用件;04010301這里的01表示專用件分類 ;0401030101是下面的分類,再然后是6位的流水號(hào)。
第二步:根據(jù)編寫程序獲取數(shù)據(jù)導(dǎo)出。實(shí)現(xiàn)公司NC-ERP數(shù)據(jù)快速導(dǎo)入,技術(shù)關(guān)鍵在于獲取導(dǎo)出數(shù)據(jù)。主要工作就是通過(guò)對(duì)保定煙廠ERP數(shù)據(jù)分類結(jié)構(gòu),寫出程序。再運(yùn)行程序,根據(jù)導(dǎo)入數(shù)據(jù),導(dǎo)出關(guān)鍵數(shù)據(jù)并分配編碼存到excel中。應(yīng)用JxlRead功能就能完成,即通過(guò)java的excel操作包jxl.jar,讀取表格中的分類來(lái)獲取存貨的id,名字,單位,規(guī)格型號(hào)等等。通過(guò)這一操作,就能導(dǎo)出以上信息的數(shù)據(jù)表格。只需要根據(jù)上面的操作原理,利用所開發(fā)的應(yīng)用程序,就能獲得數(shù)據(jù)導(dǎo)出,并分配編碼存到excel中。就能減少工作量。
第三步,完成數(shù)據(jù)分配編碼。根據(jù)上一步導(dǎo)出的表格,讀取并按編碼規(guī)則進(jìn)行編碼。經(jīng)歷這一步,從下面廠家提取的數(shù)據(jù),運(yùn)行程序后,就相當(dāng)于進(jìn)行了一次數(shù)據(jù)整合,得到導(dǎo)出數(shù)據(jù),然后把EXECL自動(dòng)轉(zhuǎn)為XML再導(dǎo)入中煙NC-ERP中。從而實(shí)現(xiàn)河北中煙NC-ERP數(shù)據(jù)完善。
三、代碼系統(tǒng)開發(fā)示例
為擴(kuò)大這一程序的應(yīng)用功能,我們基于jxl.jar這個(gè)包開發(fā)了一系列程序,作為代碼開發(fā)的基本jar包,來(lái)解決公司ERP的快速導(dǎo)入應(yīng)用程序編寫問(wèn)題,并針對(duì)ERP所有分類數(shù)據(jù)的實(shí)際應(yīng)用,開發(fā)了相對(duì)應(yīng)的程序。從而滿足了快速導(dǎo)出導(dǎo)入需求,具體代碼開示例發(fā)如下:
import jxl.write.*;
import java.io.*;
import jxl.*;
import jxl.read.*;
public class JxlUpdate {
Workbook wb = Workbook.getWorkbook(new File(filePath));
WritableSheet wsheet0 = wwb.getSheet(0);
int i=13,j=6;
for (int k=0;k { String temp=String.valueOf(i); i++; //System.out.println(temp); int len=j-temp.length(); String a=\"0\"; for (int l=0;l a=a+\"0\"; wsheet0.addCell(new Label(0, k, a+temp));} 作者單位:河北白沙煙草有限責(zé)任公司保定卷煙廠