發表人 |
內容 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 2011-06-25 00:57:12
![[Up]](/forum/templates/default/images/icon_up.gif)
1樓
|
e3Admin
![[Avatar]](/forum/images/avatar/a87ff679a2f3e71d9181a67b7542122c.png)
註冊時間: 2011-06-09 18:31:13
文章: 73
離線
|
單表單編輯, 或雙表單編輯, 的型板有一個
工具列的標準功能, "新增匯入", 可以匯入
excel的資料到新增資料中, 操作請看E3的
操作手冊.
標準匯入資料是以字串為主, 如果資料較複製
或是要先做調整再匯入時, 可以設定一個中間
的調整function, 來做資料加工程式. 尤其是
出貨單, 進貨單..等, 的雙表單匯入, 很難用標
準模式匯入, 都要依客戶的需求做匯入.
我們以 E3/SDK示範項目 "郵遞區號編輯" 做
加入匯入功能, 先看以下的程式碼.
A. 主選單項目
src/com/dasam/e3010001/client/SystemDataCmz.java, 加入 "newimp" 權限細項
x.add2(rs,1,"D",".郵遞區號編輯","edit.CmzZipCode",1,"edit_1",2,"newimp");
B. 標準匯入功能
src/com/dasam/e3010001/client/edit/CmzZipCode.java
行47~50先做加入 新增匯入 的工具列按鍵, 記得加好, 要先打開群組權限.
行10 是設定那些是參照欄位, 寫入前會先檢查是否有參照筆.
public class CmzZipCode extends XFrameEditI {
public CmzZipCode() throws Exception {
this.isVoidWorkMode=true;
this.isUnvoidWorkMode=true;
this.convLangTables = "cmzZipCode,x";
this.filterList = uiFilter("filter");
this.serviceClassId = "edit.CmzZipCode";
//this.importRefreFields = "deparId"; //匯入時要參照欄位,
//this.adjustImportData = new com.dasam.work.XMethod(this,"exeAdjustImportData",null);
}
//==========================================================================
public void doWorkInit(HashMap map) throws Exception {
super.doWorkDefault(map,this);
this.moveRecord("init", XLet.getString(map.get("#link_edit_initValue")));
//editor layout
//"主碼"
XEText eId = new XEText(tbl("id"),10,this,"id");
xlay.add(eId,0,0);
eId.setFindRecord(this);
//資料視窗
XButton2 btnView = XTool.getViewButton("CmzZipCodeView",eId,this,"id", xwbar.getButton("first"));
xlay.addComH(eId,btnView,1,0);
editMap.put(btnView,"view");
//"名稱"
XEText eName = new XEText(tbl("name"),20,this,"name");
xlay.add(eName,0,0);
//"備註"
XEText eMemo = new XEText(tbl("memo"),20,this,"memo");
xlay.add(eMemo,0,0);
this.addEditStateLabel("v",0,0,0);
this.viewPack();
setWorkObjectValue(DATA_RS);
setWorkObjectEditStatus("view");
}
//==========================================================================
//加入"匯入"的按鍵
public HashMap getWorkBarMap() throws Exception {
if (!this.isPassCtrl("newimp")) return super.getWorkBarMap();//無新增匯入權限,
return XTool.getImportWorkBarMap(super.getWorkBarMap());//加入 '匯入',
}
//==========================================================================
//excel匯入調整,
/*public void exeAdjustImportData(boolean isData, XRowSet rs, org.apache.poi.hssf.usermodel.HSSFRow row) throws Exception {
if (isData){
//id, excel第1欄
Object id = XExport.getCellValue(row.getCell(row.getFirstCellNum()));
rs.setObject("id",id);
//name, excel第2欄
Object name = XExport.getCellValue(row.getCell((short)(row.getFirstCellNum()+1)));
rs.setObject("name",name);
}
}*/
}
C. 匯入功能加工
以上面的程式碼, 把行11及 行54~63的備註拿掉,
就可以自行設計 exeAdjustImportData() 中的程式
碼, 做匯入前的資料加工了.
|
修改5次,最後2011-06-26 21:56:38 |
輕輕敲醒沈睡的心靈~ 企鵝的初章 ^^  |
|
 |
|
|
|