以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  openQQ窗口权限问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96551)

--  作者:luckbetter333
--  发布时间:2017/2/23 9:57:00
--  openQQ窗口权限问题
按独占式编辑帮助文件给两个窗口设openqq权限,代码都一样,都放了三个表,也都是一个模式。结果一个没问题,一个提示“未将对象引用设置到对象”,代码如下,代码放在打开窗口的按钮上

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
Dim r1 As Row = Tables("发货表.发货订单表").Current
If QQClient.Ready = False Then \'如果QQClient没有启动,则禁止编辑
    PopMessage("必须启动QQClient,才能编辑此表数据!","提示",PopIconEnum.Infomation,5)
    Return
End If
If r1.DataRow.RowState <>  DataRowState.Added Then \'如果不是新增行
    Dim key As String = "发货表.发货订单表"  & ":" & r1("_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
Dim r2 As Row = Tables("发货明细表").Current
If QQClient.Ready = False Then \'如果QQClient没有启动,则禁止编辑
    PopMessage("必须启动QQClient,才能编辑此表数据!","提示",PopIconEnum.Infomation,5)
    Return
End If
If r2.DataRow.RowState <>  DataRowState.Added Then \'如果不是新增行
    Dim key As String = "发货明细表"  & ":" & r2("_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


--  作者:有点蓝
--  发布时间:2017/2/23 10:08:00
--  

Dim r As Row = Tables("发货表").Current

if r isnot nothing then \'其它2个表一样都判断一下

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

 

End If


--  作者:luckbetter333
--  发布时间:2017/2/23 10:24:00
--  
还是同样的错误提示
--  作者:有点蓝
--  发布时间:2017/2/23 10:30:00
--  
tbrk变量在什么地方定义的,初始化了没有?改后的这个事件完整代码贴出来
--  作者:luckbetter333
--  发布时间:2017/2/23 10:51:00
--  
在全局代码定义的
我就是按照帮助文件设置的,之前设置的表,都好用,这次设置的窗口,前面表的我也留着,窗口的我就按照帮助文件在打开窗口的按钮放的代码,整个代码除了你刚才让我加的,其他都没变。三个r我都加了。

--  作者:luckbetter333
--  发布时间:2017/2/23 10:55:00
--  
好用了,这次提示的是afterload的错误,不是click。
--  作者:有点色
--  发布时间:2017/2/23 11:00:00
--  
 提示什么错误?AfterLoad事件代码是什么?