以文本方式查看主题 - 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=117951) |
-- 作者:yetle -- 发布时间:2018/4/21 14:08:00 -- openqq服务已开启,客户端已登录,自定义信息提示窗口传递消息没反应 点保存,点审核都没有消息传递提醒,帮我看看哪里不对,按帮助如下步骤: 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)。 查看按钮代码: 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) |
-- 作者:有点蓝 -- 发布时间:2018/4/21 16:51:00 -- 其他事件呢?接受消息事件能不能弹出提示框 |
-- 作者:yetle -- 发布时间: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)
|
-- 作者:有点甜 -- 发布时间:2018/4/23 9:47:00 -- 你openqq聊天窗口的分组名和用户名分别是什么?截图看看。
正常的发送,用户名是这样的 QQClient.Send("研发.总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna) [此贴子已经被作者于2018/4/23 10:00:32编辑过]
|
-- 作者:yetle -- 发布时间:2018/4/23 9:58:00 -- ![]() ![]() |
-- 作者:有点甜 -- 发布时间:2018/4/23 10:00:00 -- 那改成
QQClient.Send("研发部.研发-总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna) [此贴子已经被作者于2018/4/23 10:00:19编辑过]
|
-- 作者:yetle -- 发布时间: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编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/4/23 11:03:00 -- 改成离线发送
QQClient.Send("研发部.研发-总监","+@|" & r("_Identify") & "|" & r("业务部_系列") & "|" & usna, true)
http://www.foxtable.com/webhelp/scr/2976.htm
|
-- 作者:yetle -- 发布时间:2018/4/23 11:11:00 -- 好的,另外,要改成不指定部门人员姓名,而是获取开单人的部门和姓名,姓名可以直接取,那部门怎么取? Dim r As Row = Tables("报价申请").Current
r("研发部_中心审批") = "通过" r.Save() \'发送审核通过的消息 QQClient.Send("业务部.业务部-刘静文","-@|" & r("业务部_系列") & "|" & usna) QQClient.Send(________.r("业务部_业务跟单") ,"-@|" & r("业务部_系列") & "|" & usna) |
-- 作者:有点甜 -- 发布时间:2018/4/23 11:14:00 -- 你可以截取姓名的前半部分
QQClient.Send(r("业务部_业务跟单").split("-")(0) & "." & r("业务部_业务跟单") ,"-@|" & r("业务部_系列") & "|" & usna)
或者是跨表,根据姓名查询得到部门 http://www.foxtable.com/webhelp/scr/0396.htm
|