發表人 |
內容 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 2011-06-20 19:22:44
![[Up]](/forum/templates/default/images/icon_up.gif)
1樓
|
e3Admin
![[Avatar]](/forum/images/avatar/a87ff679a2f3e71d9181a67b7542122c.png)
註冊時間: 2011-06-09 18:31:13
文章: 73
離線
|
單一表單編輯是指做MySQL一個資料表的編輯工作,
一般都是做參照的基本資料表.
這裡用SDK專案的 "郵遞區號編輯" 功能的分析設計
步驟. 這裡的原碼行號是標示作用, 並非原始檔的行號.
主要是做討論標示用.
所以如果要新增一個單表單的編輯程式, 可以照這些
步驟copy一次, 再修改要編輯的各欄位值.
A. 主選單項目
src/com/dasam/e3010001/client/SystemDataCmz.java
x.add2(rs,1,"D",".郵遞區號編輯","edit.CmzZipCode",1,"edit_1",2,null);
B. 建立資料庫
resource/cmz.sql
要注意, 行2,行4的資料表名稱要同步. 如何執行cmz.sql請看 E3/SDK安裝説明
insert ignore bjn_tableState values('cmzZipCode',0,0,0,'');
create table if not exists `cmzZipCode` (
`id` varchar(10) not null default '',
`name` varchar(50) not null default '', --簡稱
`memo` varchar(100) not null default '', --備註
`swDel` tinyint unsigned not null default 0, --作廢, 1=yes,
`creater` varchar(20) not null default '', --建立人員
`createTime` datetime not null default '0-0-0', --建立時間
`updater` varchar(20) not null default '', --修改人員
`updateTime` datetime not null default '0-0-0', --修改時間
primary key (id)
) type=InnoDB ;
C. 資料庫欄名中文對照及簡繁設定(3個文檔)
resource/com/dasam/e3010001/client/res/lang/cmz_table.ppt, cmz_ui.ppt, cmz_xclass.ppt
#============ cmz_table.ppt ============
#區碼-----------------
cmzZipCode.id = 區碼 || 区码
cmzZipCode.name = 名稱
#============ cmz_ui.ppt ============
#----------- edit.CmzZipCode ------------
edit.CmzZipCode.filter = a.id,1;a.name,1;[@x.memo,tbl],a.memo,1;[@x.swDel,tbl],a.swDel,2
# edit.CmzZipCodeView
edit.CmzZipCodeView.title = [@XTool.view_button.CmzZipCodeView,cls]
edit.CmzZipCodeView.filter = [@edit.CmzZipCode.filter]
#============ cmz_xclass.ppt ============
XTool.view_button.CmzZipCodeView = 郵遞區號資料視窗 || 邮递区号资料视窗
D. 資料視窗程式
Client: src/com/dasam/e3010001/client/edit/CmzZipCodeView.java
public class CmzZipCodeView extends com.dasam.client.gui.XDlgView {
public CmzZipCodeView() throws Exception {
this.convLangTables = "cmzZipCode";
this.setTitle(ui("title"));
this.filterList = uiFilter("filter");
this.serviceClassId = "edit.CmzZipCodeView";
this.fieldStyle = "{id=wd:80;ha:c}{name=wd:220}";
this.fieldList = "id,name";
}
}
Server: src/com/dasam/e3010001/server/edit/CmzZipCodeView.java
public class CmzZipCodeView extends XServiceListI {
public HashMap doWorkInit(HashMap map) throws Exception {
setXUserInformationObject(map, true); //建立user
setLastUpdateTime(map);
setPageRecord(map); //頁筆數
this.tableStateId = "cmzZipCode";
this.viewTableName = tableStateId;
if (filterString==null) filterString = XLet.getString(map.get("filter"));
this.viewSelect = "select a.id, concat(if(swDel=1,'*',''),name) as 'name', swDel from cmzZipCode a ";
return defaultFunctions(map);
}
}
E. 單表編輯主程式
Client: src/com/dasam/e3010001/client/edit/CmzZipCode.java
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";
}
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");
}
}
Server: src/com/dasam/e3010001/server/edit/CmzZipCode.java
public class CmzZipCode extends XServiceEditI {
public HashMap doWorkInit(HashMap map) throws Exception {
setXUserInformationObject(map, true); //建立user
setLastUpdateTime(map);
this.tableStateId = "cmzZipCode";
this.editTableName = tableStateId;
this.setDeleteWorkMode(false); //設定使用作廢方式,
this.isUnvoidWorkMode=true; //設定可使用回復作廢方式,
if (filterString==null) filterString = XLet.getString(map.get("filter"));
this.editSelect="select * from cmzZipCode a ";
HashMap ret = defaultFunctions(map);
return ret;
}
}
|
修改4次,最後2011-06-25 18:26:44 |
輕輕敲醒沈睡的心靈~ 企鵝的初章 ^^  |
|
 |
|
|
|