以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  OpenQQ  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153731)

--  作者:13568958298
--  发布时间:2020/8/20 18:19:00
--  OpenQQ
关于OpenQQ

宝典“5.11.5一个消息推送示例”与帮助文档中“自定义信息提示窗口”做法不同,不知道该按照哪个方法来做?两个方法都试过,可是都有问题:消息能发送,接收方也能接收到消息,可是窗口却弹不出来?

 


--  作者:有点蓝
--  发布时间:2020/8/20 20:05:00
--  
贴出您写的代码
--  作者:13568958298
--  发布时间:2020/8/20 21:18:00
--  

1、全局代码:Default

 Public fhs As New List(of String)    (没有使用Var变量)

2、发货单“上报”按钮设计

Dim r As Row = Tables("办公用品").Current

 r.Save()

 QQClient.Send("财务科.张三","+@|" & r("_Identify") & "|" & r("事项及依据") & "|" & User.Name)

msgbox(r("事项及依据"))    (该项显示正常)

*审核后无需反馈信息,所以审核按钮未写代码

3、OpenQQ客户端MessageReceived编写代码 (这段代码出错比较严重,已修改)

     

 4、设计了一个窗口 名为“审核申请”如下:

"查看”按钮代码设计:

DataTables("办公用品").Save() \'接下来要根据主键查找,必须先保存,因为只有保存后新增行的主键才是有效值.

Dim id As String = e.Form.Controls("Label2").Text

Dim dr As DataRow = DataTables("办公用品").Find("[_Identify] = " & id)

If dr Is Nothing Then

    DataTables("办公用品").AppendLoad("[_Identify] = " & id)

    dr =  DataTables("办公用品").Find("[_Identify] = " & id)

Else

    dr.Load()

End If

If dr IsNot Nothing Then

    Dim wz As Integer = Tables("办公用品").FindRow(dr)

    If wz < 0 Then \'如果因为筛选导致此送货单不可见

        Tables("办公用品").Filter = ""

        wz =Tables("办公用品").FindRow(dr)

    End If

    If wz >= 0 Then

        Tables("办公用品").Position = wz

        Forms("办公用品").Open()

    End If

End If

e.Form.Close()

 

5、在项目事件Systemldle中设计代码:


 

If fhs.Count > 0 AndAlso Forms("审核申请").Opened = False Then

    Dim fhs() As String = fhs(0).Split("|")

    fhs.RemoveAt(0)

    With Forms("审核申请")

        .Open()

        .Controls("Label1").Text = pts(2) & "新增申请单" & fhs(1) & ",请审核!"

        .Controls("Label2").Text = pts(0) \'将发货单主健设置为Label2的标题

    End With

End If

[此贴子已经被作者于2020/8/20 23:00:15编辑过]

--  作者:有点蓝
--  发布时间:2020/8/20 21:30:00
--  
没看到有给全局变量fhs赋值的地方,也就是说项目事件Systemldle中的代码判断【If fhs.Count > 0 】永远都不会成立,也就不会执行打开窗口的代码
--  作者:13568958298
--  发布时间:2020/8/20 21:54:00
--  

图片点击可在新窗口打开查看客户端测试,代码组合正常

 

图片点击可在新窗口打开查看接收端,测试代码正常,可没有打开“审核申请”窗口,也没有打开“办公用品”窗口

 


--  作者:有点蓝
--  发布时间:2020/8/20 22:06:00
--  
并不是把变量名称改为fhs就可以,您根本都没有搞清楚这个全局代码是干嘛用的。建议仔细理解一下帮助里是怎么使用fhs这个变量:http://www.foxtable.com/webhelp/topics/3054.htm

再说了在事件里这样用【Dim fhs() As String = msg.Split("#")】,会重新定义个新的同名变量,在事件里会取代全局代码里的同名变量,这样全局代码里的fhs就不会用到,同样永远不会有任何值


--  作者:有点蓝
--  发布时间:2020/8/20 22:13:00
--  
另外您代码里发送的消息内容格式是:QQClient.Send("财务科.张三","+@|" & r("_Identify") & "|" & r("事项及依据") & "|" & User.Name)
但是MessageReceived事件里判断的是"U#"、"A#"这些,完全风牛马不相及,根本都处理不到上面发送的消息

抄帮助的代码的时候,不要随便把几个帮助的代码抄到一起混用,虽然好像里面用到一些相同的功能,但是处理的逻辑和用法是完全不一样的,不是随随便便合并到一起就能使用。先按照一个帮助的用法,分别做通了,在考虑理解合并其它用法

--  作者:13568958298
--  发布时间:2020/8/20 22:48:00
--  

看到了,谢谢!我马上去改