数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

在PB中实现数据录入维持序号连续性的简单实现[2]


发布日期:2022年03月04日
 
在PB中实现数据录入维持序号连续性的简单实现[2]

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

[] []

               

上一篇:在PB中实现数据录入维持序号连续性的简单实现[1]

下一篇:PB中如何得到Crosstab中的列名