NC單據期初數據從Excel導入

Excel數據導入說明

一、實現原理

通過Excel和配置文件建立NC數據項的對應關係,然後將Excel裏面的數據組織成VO,最後將VO保存到數據庫中。單據的主表數據和子表數據是分別導入的,也就是說需要單據上增加兩個按鈕,如果是多子表,則需要單據上增加多個按鈕,將子表數據需要分別導入。

二、使用步驟:

1打Excel導入功能的通用補丁,部署plh模塊的EJB

2創建NC單據數據項的配置文件

2.1配置文件路徑

配置文件爲xml格式,需要放在固定的路徑下:nchome_ccppgcbjt\resources\cmconfig\file_export_import\。

2.2配置文件節點說明

l  Ufinterface 根節點,屬性roottag:導入數據的數據庫表名。屬性:headClass:對應的單據VO,如果是導入的主表數據則填寫表頭VO,如果是字表則爲表體VO。屬性:excelColumnLineNum:在Excel中的第幾行爲表頭字段,如下圖則爲1。

l  Column爲數據列的配置節點

Column的子節點爲數據列需要設置的屬性。

l  excel_column:對應Excel表裏面的列名稱。

l  field:對應VO裏面的字段。

l  nullallowed:是否允許爲空。

l  datatype:NC的數據類型,如日期爲:UFDate。

l  pkfield:設置爲field相同值。

l  ref:如果爲參照,則輸入參照的名稱,注意,這裏的參照需要從表bd_bdinfo中找,其中的bdname作爲這裏的參照名稱。

l  trantype:翻譯類型,當Excel中的某一列爲參照時,需要將值翻譯爲PK值,這裏支持兩種方式code和name。也就是說,excel可以放參照的編碼也可以放參照的名稱,例如部門,excel的值可以是“001”,也可以是“銷售部”。

l  table:默認爲head,不需要修改。

3在NC單據增加的按鈕上實現導入的業務邏輯

       3.1創建ImportDataFromExcel類的實例

                       需要在調用的單據UI的包下面創建ImportDataFromExcel類的實例,例如創建類importPsnFromExcelextends ImportDataFromExcel。

3.2 UI事件調用

importPsnFromExcel importHeadData = new importPsnFromExcel(this.clientUI,"P1"); importHeadData.ImportHeadData("P2");

其中:P1參數爲單據編號字段,P2爲xml配置文件名稱。

如果單據有特殊的數據驗證或者單據的VO不繼承supervo,則在ImportDataFromExcel類的實例中重寫ImportHeadData方法,以及VO的保存方法importExceltopinv。

 

補丁代碼:我的資源:“單據UI按鈕導入Excel數據”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章