以文本方式查看主题

-  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=117789)

--  作者:cd_tdh
--  发布时间:2018/4/19 10:16:00
--  OPenQQ问题

老师,有事OPenQQ问题,麻烦看看:

\'通知经营部经理审核
Dim r As Row  = Tables("合同签订").Current
r.Save()
MessageBox.Show(1)
For Each dr As DataRow In DataTables("账号密码").sqlSelect("职务 = \'经营部经理\'")
    QQClient.Send(dr("机构名称") & "." & dr("姓名"),"+@|" & r("_Identify") & "|" & r("项目名称") & "|" & _UserXingMing,True)
Next
MessageBox.Show(2)

代码都执行了,却没收到消息,哪儿有问题呢?

客服端ReceivedMessage代码如下:

Dim ptsl() As String  = e.Message.Split("|")
 If ptsl.Length = 5 AndAlso ptsl(0) = "+@"  \'如果是申请审核消息
    fhs.Add(ptsl(1) & "|" & ptsl(2) & "|" & ptsl(3) & "|" & ptsl(4)) \'将主健,单号和制单人合成为一个字符串存储在集合中
ElseIf ptsl.Length = 3 AndAlso ptsl(0) = "-@"  \'如果是审核通过消息
    PopMessage("合同签订" & ptsl(  1) &  "施工合同  已由" & ptsl(2) &  " 审核通过,签订后将及时返回!") 
     Dim dr As DataRow = DataTables("合同签订").sqlFind("项目名称 = \'" & ptsl(1) & "\'")
     If dr IsNot Nothing Then
        dr.Load
    End  If
 End  If


--  作者:有点甜
--  发布时间:2018/4/19 10:27:00
--  

加入代码

 

msgbox(e.Message)

Dim ptsl() As String  = e.Message.Split("|")

msgbox(ptsl.length)


--  作者:cd_tdh
--  发布时间:2018/4/19 10:34:00
--  

还是没反应


--  作者:有点甜
--  发布时间:2018/4/19 10:36:00
--  

1、打开openqq聊天窗口,看能否正常给好友发送信息?

 

2、msgbox(dr("机构名称") & "." & dr("姓名")) 看弹出什么


--  作者:cd_tdh
--  发布时间:2018/4/19 10:46:00
--  
以下是引用有点甜在2018/4/19 10:36:00的发言:

1、打开openqq聊天窗口,看能否正常给好友发送信息?

 

2、msgbox(dr("机构名称") & "." & dr("姓名")) 看弹出什么

发短信、文件,用代码发消息全部都正常,能正常弹出了调试信息,

调试1、

msgbox(dr("机构名称") & "." & dr("姓名")) 弹出:总公司.唐某某      结果是对的。

调试2,在线时能弹出消息(如下),不在线时不能。

msgbox(e.Message)

Dim ptsl() As String  = e.Message.Split("|")

msgbox(ptsl.length)

 


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/4/19 10:51:00
--  

不在线时,那该用户登录以后,能否得到提示?如果能,就是正常的。

 

如果不能,说明你服务器那里配置有问题,没有开启对应端口 http://www.foxtable.com/webhelp/scr/3247.htm

 


--  作者:cd_tdh
--  发布时间:2018/4/19 11:29:00
--  

老师,我是阿里云服务区,指定端口是52177,我安全组设置开放后,不在线登录后能弹出调试信息了。但审核消息还是没有。

在信息记录表里面又有新的消息。

我把所有端口全部开放,这个设置没问题啥?

 


图片点击可在新窗口打开查看此主题相关图片如下:5555.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/4/19 12:00:38编辑过]

--  作者:有点甜
--  发布时间:2018/4/19 13:00:00
--  

看看这里的设置

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=714467&ID=104284&skin=1

 

能弹出msgbox说明没问题。不能执行你对应代码,说明不满足if判断等


--  作者:cd_tdh
--  发布时间:2018/4/19 13:47:00
--  

老师,应该条件不成立,有问题:

Dim ptsl() As String  = e.Message.Split("|")

If ptsl.Length = 4 AndAlso ptsl(0) = "+@"  \'如果是申请审核消息
    fhs.Add(ptsl(1) & "|" & ptsl(2) & "|" & ptsl(3) & "|" & ptsl(4))  \'将主健,单号和制单人合成为一个字符串存储在集合中
ElseIf ptsl.Length = 3 AndAlso ptsl(0) = "-@"  \'如果是审核通过消息
    PopMessage("合同签订" & ptsl(  1) &  "施工合同  已由" & ptsl(2) &  " 审核通过,签订后将及时返回!") 
     Dim dr As DataRow = DataTables("合同签订").sqlFind("项目名称 = \'" & ptsl(1) & "\'")
     If dr IsNot Nothing Then
        dr.Load
    End  If
 End  If

 

现在这样能弹出消息,但是报错如下:

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:SystemIdle
详细错误信息:
索引超出了数组界限。

代码如下

If fhs.Count > 0 AndAlso Forms("审核申请窗口").Opened = False Then
    Dim pts() As String = fhs(0).Split("|")
    fhs.RemoveAt(0)
    With Forms("审核申请窗口")
        .Open()
        .Controls("Label1").Text = pts(2) & " 新增 " & pts(1) & " 审批申请,请及时审批!"
        .Controls("Label2").Text = pts(0) \'将发货单主健设置为Label2的标题
        .Controls("Label3").Text = pts(3) \'表名称
    End  With
End  If

 

红色代码哪儿有问题,怎么修改呢?

[此贴子已经被作者于2018/4/19 14:09:48编辑过]

--  作者:有点甜
--  发布时间:2018/4/19 14:20:00
--  

改成

 

If ptsl.Length = 4 AndAlso ptsl(0) = "+@"  \'如果是申请审核消息
    fhs.Add(ptsl(1) & "|" & ptsl(2) & "|" & ptsl(3))