在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框架程序设计视频教程
[] []