以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  独占编辑  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76403)

--  作者:qinlao666
--  发布时间:2015/10/28 14:04:00
--  独占编辑

老师独占编辑有没有简便点的办法。

我有好几十个表格,每个表格都需要按教程那么设置吗?


--  作者:大红袍
--  发布时间:2015/10/28 14:54:00
--  

独占编辑很简单。

 

1、dataColchanged事件,写代码

 

e.datarow("编辑者") = user.name

e.datarow.Save

 

2、startEdit事件,写

 

If e.Row.DataRow.RowState <> DataRowState.Added Then
    Dim fdr As DataRow = e.Table.DataTable.sqlfind("_Identify = " & e.Row("_Identify") ) 
    If fdr IsNot Nothing AndAlso fdr.IsNull("编辑者") = False AndAlso fdr("编辑者") <> user.name Then
        e.cancel = True
        msgbox(fdr("编辑者") & " 正在编辑")
    End If
End If


 

3、BeforeSaveDataRow事件

 

e.datarow("编辑者") = nothing

[此贴子已经被作者于2015/10/28 14:54:29编辑过]

--  作者:qinlao666
--  发布时间:2015/10/28 16:02:00
--  
好吧,谢谢老师了
--  作者:qinlao666
--  发布时间:2015/10/29 15:59:00
--  
老师,我把这些命令复制到表中后,然后窗口中有个新增按钮,点击这个按钮后,就退出系统了。这是什么原因啊?
--  作者:大红袍
--  发布时间:2015/10/29 16:03:00
--  

datacolchanged事件改一下

 

If e.DataCol.Name <> "编辑者" Then

    Systemready = False

    e.datarow("编辑者") = user.name

    e.datarow.Save

    Systemready = True

End If


--  作者:大红袍
--  发布时间:2015/10/29 16:05:00
--  

或者

 

If e.DataCol.Name <> "编辑者" Then

    e.datarow.SQLSetValue("编辑者", user.name)

End If


--  作者:visoni
--  发布时间:2018/9/6 20:44:00
--  
12