Foxtable(狐表)用户栏目专家坐堂 → openqq服务已开启,客户端已登录,自定义信息提示窗口传递消息没反应


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

主题:openqq服务已开启,客户端已登录,自定义信息提示窗口传递消息没反应

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
openqq服务已开启,客户端已登录,自定义信息提示窗口传递消息没反应  发帖心情 Post By:2018/4/21 14:08:00 [只看该作者]

点保存,点审核都没有消息传递提醒,帮我看看哪里不对,按帮助如下步骤:

1、首先我们要定义一个集合,用于存储收到的审核申请,在全局代码中定义一个Public变量:

Public fhs As New List(of String)

2、在报价申请单编辑窗口的保存按钮中,写入如下代码

Dim r As Row  = Tables("报价申请").Current

r.Save()

QQClient.Send("研发-总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna)

3、在发货单编辑窗口的审核按钮中,写入如下代码:

Dim r As Row  = Tables("报价申请").Current

r("研发部_中心审批") = "通过"

r.Save()

'发送审核通过的消息

QQClient.Send(r("业务部_业务跟单"),"-@|" & r("业务部_系列") & "|" & usna)

4、在OpenQQ客户端的ReceivedMessage事件中编写代码

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

If pts.Length = 4 AndAlso pts(0) = "+@" '如果是申请审核消息

    fhs.Add(pts(1) & "|" & pts(2) & "|" & pts(3)) '将主健?单号和制单人合成为一个字符串存储在集合中

ElseIf pts.Length = 3 AndAlso pts(0) = "-@" '如果是审核通过消息

    PopMessage("报价申请" & pts(1) & "已由" & pts(2) & "审核通过!") 

    Dim drs As DataRow = DataTables("报价申请").Find("业务部_系列 = '" & pts(1) & "'")

    If drs IsNot Nothing Then

        drs.Load

    End If

End If

5、在客户端项目新建一个下图所示的窗口,窗口名为“审核提示”,窗口类型设置为PopupForm:

这个窗口有两个Label控件,Label1用于显示提示信息,Label2的可见属性设置为False,用于存储发货单的主键(Identify)。
这是一个技巧,因为Foxtable并没有提供窗口级别的变量,所以通常用一些不可见的Label控件来存储临时信息。

查看按钮代码:

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

6、在项目事件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的标题
    End With
End If



MessageBox做了测试都会弹出提示1和2

Dim r As Row  = Tables("报价申请").Current

r.Save()

QQClient.Send("研发-总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna)

MessageBox.Show(1)

Dim r As Row  = Tables("报价申请").Current

r("研发部_中心审批") = "通过"

r.Save()

'发送审核通过的消息

QQClient.Send(r("业务部_业务跟单"),"-@|" & r("业务部_系列") & "|" & usna)

MessageBox.Show(2)



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


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/21 16:51:00 [只看该作者]

其他事件呢?接受消息事件能不能弹出提示框

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/23 9:35:00 [只看该作者]

ReceivedMessage没有提示,但用openqq的client发消息能正常发送和接收,发送和接收消息的时候也是没有message提示


Dim dr As DataRow = DataTables("信息").AddNew
dr("发送者") = iif(usna > "",usna,"服务器")
dr("时间") = Date.Now()
dr("信息") = e.Message
MessageBox.Show(3)

Dim pts() As String  = e.Message.Split("|")
If pts.Length = 4 AndAlso pts(0) = "+@" '如果是申请审核消息
    fhs.Add(pts(1) & "|" & pts(2) & "|" & pts(3)) '将主健?单号和制单人合成为一个字符串存储在集合中
ElseIf pts.Length = 3 AndAlso pts(0) = "-@" '如果是审核通过消息
    PopMessage("报价申请" & pts(1) & "已由" & pts(2) & "审核通过!") 
    Dim drs As DataRow = DataTables("报价申请").Find("业务部_系列 = '" & pts(1) & "'")
    If drs IsNot Nothing Then
        drs.Load
    End If
End If
MessageBox.Show(4)

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 9:47:00 [只看该作者]

你openqq聊天窗口的分组名和用户名分别是什么?截图看看。

 

正常的发送,用户名是这样的 QQClient.Send("研发.总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna)

[此贴子已经被作者于2018/4/23 10:00:32编辑过]

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/23 9:58:00 [只看该作者]


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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 10:00:00 [只看该作者]

那改成

 

QQClient.Send("研发部.研发-总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna)

[此贴子已经被作者于2018/4/23 10:00:19编辑过]

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/23 11:01:00 [只看该作者]

测试好了,还有两个问题:
1.保存或审核在对方client不再线的时候操作,当对方client登录,保存或审核的传递消息也能弹出来要怎么操作;
2.
Dim r As Row  = Tables("报价申请").Current
r("研发部_中心审批") = "通过"
r.Save()
'发送审核通过的消息
QQClient.Send("业务部.业务部-刘静文","-@|" & r("业务部_系列") & "|" & usna)
要改成不指定部门人员,而是获取开单文的部门和姓名,姓名可以直接取,那部门怎么取?
QQClient.Send(________.r("业务部_业务跟单") ,"-@|" & r("业务部_系列") & "|" & usna)
[此贴子已经被作者于2018/4/23 11:07:39编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 11:03:00 [只看该作者]

改成离线发送

 

QQClient.Send("研发部.研发-总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna, true)

 

http://www.foxtable.com/webhelp/scr/2976.htm

 


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/23 11:11:00 [只看该作者]

好的,另外,要改成不指定部门人员姓名,而是获取开单人的部门和姓名,姓名可以直接取,那部门怎么取?
Dim r As Row  = Tables("报价申请").Current
r("研发部_中心审批") = "通过"
r.Save()
'发送审核通过的消息
QQClient.Send("业务部.业务部-刘静文","-@|" & r("业务部_系列") & "|" & usna)

QQClient.Send(________.r("业务部_业务跟单") ,"-@|" & r("业务部_系列") & "|" & usna)

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 11:14:00 [只看该作者]

你可以截取姓名的前半部分

 

QQClient.Send(r("业务部_业务跟单").split("-")(0) & "." & r("业务部_业务跟单") ,"-@|" & r("业务部_系列") & "|" & usna)

 

或者是跨表,根据姓名查询得到部门 http://www.foxtable.com/webhelp/scr/0396.htm

 


 回到顶部
总数 16 1 2 下一页