在Application畫板中在應用對象的Open事件中輸入如下代碼
// Profile project
SQLCADBMS = OR ORACLE
SQLCALogPass = password
SQLCAServerName = gxmis
SQLCALogId = projectdba
SQLCAAutoCommit = False
SQLCADBParm =
//以上為連接數據庫的配置由用戶根據具體設置
connect using sqlca;
open(w_autoserial) //打開w_autoserial窗口
窗口w_autoserial中的Open事件中輸入如下代碼
dw_settransobject(sqlca)
dw_retrieve()
為窗口w_autoserial中的數據窗口dw_聲明一個用戶事件ue_reassign_serial
用戶事件ue_reassign_serial的說明
Event Name ue_reassign_serial
Event ID
Return (none)
Argument serial_position long Value
其中參數serial_position接收數據窗口對象dw_employee中序號字段在Selection List的位置本例中序號字段位置為
事件腳本如下
long i
thissetredraw(false)
for i= to thisrowcount()
thisobjectData[iserial_position]=i //重置序號
next
thissetredraw(True)
編寫窗口w_autoserial中的Command Button控件腳本
cb_insert按鈕的clicked事件代碼
long ll_currll_newcur
ll_curr=dw_getrow()
ll_newcur=dw_insertrow(ll_curr)
//調用序號維護事件為序號字段在Selection List中的位置
dw_event trigger ue_reassign_serial()
dw_setfocus()
dw_setcolumn(name)
dw_scrolltorow(ll_newcur)
cb_add按鈕的clicked事件代碼
long ll_currll_newcur
ll_newcur=dw_insertrow()
dw_event trigger ue_reassign_serial()
dw_setfocus()
dw_setcolumn(name)
dw_scrolltorow(ll_newcur)
cb_delete按鈕的clicked事件代碼
if messagebox(刪除請求肯定要刪除該人員?stopsign!yesno!)= then
dw_deleterow()
dw_event trigger ue_reassign_serial()
end if
cb_save按鈕的clicked事件代碼
if dw_update()= then
commit;
else
rollback;
end if
本例在Powerbuild 數據庫oracle 上測試通過對於序號上千的表本方法也能應付自如如果程序中序號不為關鍵字或為一些簡單表格可在DataWindow中增加計算字段來實現以上功能計算字段表達式為getrow()
編輯推薦
ASP NET開發培訓視頻教程
Microsoft NET框架程序設計視頻教程
[] []
From:http://tw.wingwit.com/Article/program/PB/201311/24613.html