您的位置:首页 > 其它

数据窗口中对记录进行单选或多选,进行删除操作

2015-01-14 11:10 246 查看
1、多选

在数据窗口控件的clicked事件中写入如下代码:

long lng_currentrow,lng_j

if row=0 then

return

else

lng_currentrow=row //当前鼠标点中行

end if

if keydown(keyshift!) then //按下SHIFT键

if i_lng_lastrow=0 then //上次没选中任何行

this.selectrow(lng_currentrow,true)

i_lng_lastrow=lng_currentrow //i_lng_lastrow为实例变量,记录上次点击行

else

this.selectrow(0,false) //全都不选中

if lng_currentrow>i_lng_lastrow then

for lng_j=i_lng_lastrow to lng_currentrow

this.selectrow(lng_j,true)

end for

else

for lng_j=i_lng_lastrow to lng_currentrow step -1

this.selectrow(lng_j,true)

end for

end if

end if

else

i_lng_lastrow=lng_currentrow

if keydown(keycontrol!) then //按下CTRL键

if this.isselected(lng_currentrow) then

this.selectrow(lng_currentrow,false)

else

this.selectrow(lng_currentrow,true)

end if

else //无任何键按下

this.selectrow(0,false)

this.selectrow(lng_currentrow,true)

end if

end if

在窗口的open事件中写入如下代码:

dw_1.object.datawindow.readonly=true

2、删除

long ll_Row, ll_Cnt

ll_Cnt = dw_1.RowCount()

if ll_Cnt > 0 then

for ll_Row = ll_Cnt to 1 step -1

if dw_1.IsSelected(ll_Row) then dw_1.deleterow(ll_Row)

next

// end for

end if

if messagebox("提示","确认删除吗?", Question!, YesNo!) = 1 then

dw_1.Update()

commit;

else //恢复删除的数据到数据窗口

long ll_rows

integer li_ret

ll_rows=dw_1.deletedcount() //统计在删除缓冲区的数据行

li_ret=dw_1.rowsmove(1,ll_rows,delete!,dw_1,1,primary!) //把要恢复删除的行从删除缓冲区移到主缓冲区

if li_ret=-1 then ll_rows=0 //当删除缓冲区数据为空时返回0

return ll_rows

end if
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐