以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口表独占式编辑  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118163)

--  作者:天一生水
--  发布时间:2018/4/26 11:01:00
--  [求助]窗口表独占式编辑

项目采用的是本组可查看、编辑本组行的方式,利用openqq独占式编辑,代码全部按照说明修改。

现在遇到的问题是,当同组的人员打开窗口时,同组的其他人员无法打开窗口,提示“XX组.XXX正在编辑......”

问题:

1、打开窗口代码中Tables("表B")用不用改成Tables("编辑窗口_table1")?

2、在客户端的对应表的StartEdit事件\\BeforeSaveDataRow事件\\AfterEdit事件,还用不用写代码?

谢谢!

 

----------------------------------------以下为使用代码:

1、表事件代码:

If e.Row("团队") <> User.Group  Then  \'取消编辑
    e.Cancel = True
End  If

 

2、打开窗口代码

Dim r As Row = Tables("表B").Current
If QQClient.Ready = False Then \'如果QQClient没有启动,则禁止编辑
    PopMessage("必须启动QQClient,才能编辑此表数据!","提示",PopIconEnum.Infomation,5)
    Return
End If
If r.DataRow.RowState <>  DataRowState.Added Then \'如果不是新增行
    Dim key As String = "表B"  & ":" & r("_Identify")
    If tbrk.Contains(key) = False Then
        Dim msg = QQClient.SendWait("?#" & Key & "#?",5) \'向服务器发送请求编辑信息
        If msg = "OK" Then \'如果服务器返回OK
            tbrk.Add(key) \'在本地登记正在编辑此行
        ElseIf msg > "" Then \'否则显示服务器返回的信息,并取消编辑
            PopMessage("无法编辑此行,因为:" & vbcrlf & msg ,"提示",PopIconEnum.Infomation,5)
            Return
        Else \'如果服务器没有返回信息,则取消编辑
            PopMessage("因服务器无响应,无法编辑此行!" ,"提示",PopIconEnum.Infomation,5)
            Return
        End If
    End If
End If
Forms("编辑窗口").Open()


--  作者:有点甜
--  发布时间:2018/4/26 12:54:00
--  

1、需要,你正在编辑的是哪个表,就写哪个表的表名。

 

2、只需要在你编辑的表的事件里面写代码。