Dim r As Row = Tables("生产进度表").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 = "生产进度表" & ":" & 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()
以上代码写在了客户端“表"事件DoubleClick 里面,双击打开编辑窗口。
然后编辑窗口AfterClose事件里面写入以下代码
Dim r As Row = Tables("生产进度表").Current
If r.DataRow.RowState = DataRowState.Modified Then
Dim Key As String = "生产进度表" & r("_Identify")
If tbrk.Contains(Key) Then
tbrk.Remove(Key) '移除本地编辑登记
QQClient.Send("!#" & Key & "#!") '通知服务器此行已经结束 编辑
End If
End If
其它所有代码都是按教程里做的http://www.foxtable.com/help/index.html?n=1508.htm
当客户端A编辑第1行,然后关闭编辑窗口后。 客户端B编辑第1行,还是会显示A在编辑。请问大师是哪里出了问题。谢谢
[此贴子已经被作者于2016/2/24 17:43:44编辑过]