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


  共有2187人关注过本帖树形打印复制链接

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

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


加好友 发短信
等级:小狐 帖子:350 积分:2927 威望: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/24 18:02:00 [只看该作者]

直接写

 

Dim r As Row = Tables("生产进度表").Current
Dim Key As String = "生产进度表" & r("_Identify")
If tbrk.Contains(Key) Then
    tbrk.Remove(Key) '移除本地编辑登记
End If

QQClient.Send("!#" & Key & "#!") '通知服务器此行已经结束 编辑


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


加好友 发短信
等级:小狐 帖子:350 积分:2927 威望:0 精华:0 注册:2015/4/23 19:53:00
  发帖心情 Post By:2016/2/25 14:31:00 [只看该作者]

还是不行呀,取消客户端表StartEdit  BeforeSaveDataRow  AfterEdit 这3个事件的代码后测试也不行


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/25 14:44:00 [只看该作者]

测试没问题。肯定是你自己哪里搞错了。

 

请上传具体例子。


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


加好友 发短信
等级:小狐 帖子:350 积分:2927 威望:0 精华:0 注册:2015/4/23 19:53:00
  发帖心情 Post By:2016/2/28 16:29:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:erp测试.rar

请大师帮我看一下  所有用户密码全部是888  谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/28 17:09:00 [只看该作者]

1、"生产进度表"  & ":" & r("_Identify") 改成 "生产进度表"  & r("_Identify")

 

或者 "生产进度表" & r("_Identify") 改成 "生产进度表" & ":" & r("_Identify")

 

2、取消按钮那里,要先close窗口,再load数据

 

e.Form.Close   '-----关闭窗口-----
Tables("生产进度表").DataTable.Load(False)


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


加好友 发短信
等级:小狐 帖子:350 积分:2927 威望:0 精华:0 注册:2015/4/23 19:53:00
  发帖心情 Post By:2016/2/28 18:05:00 [只看该作者]

谢谢大师


 回到顶部