Foxtable(狐表)用户栏目专家坐堂 → [求助]OpenQQ实现窗口式独占式编辑


  共有2366人关注过本帖平板打印复制链接

主题:[求助]OpenQQ实现窗口式独占式编辑

帅哥哟,离线,有人找我吗?
yupeng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:350 积分:2933 威望:0 精华:0 注册:2015/4/23 19:53:00
[求助]OpenQQ实现窗口式独占式编辑  发帖心情 Post By:2016/2/24 17:42:00 [只看该作者]

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编辑过]

 回到顶部