以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  openqq服务已开启,客户端已登录,自定义信息提示窗口传递消息没反应  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117941)

--  作者:yetle
--  发布时间:2018/4/21 10:37: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)。
这是一个技巧,因为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


[此贴子已经被作者于2018/4/21 10:38:14编辑过]

--  作者:有点蓝
--  发布时间:2018/4/21 11:04:00
--  
http://www.foxtable.com/webhelp/scr/1485.htm

各个事件都加上messagebox,看能不能弹出提示框

--  作者:yetle
--  发布时间:2018/4/21 12:02:00
--  

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)

加了MessageBox.Show(1)和MessageBox.Show(2)都会弹出提示1和2


--  作者:yetle
--  发布时间:2018/4/21 13:44:00
--  
有没有什么解决方案?
--  作者:有点蓝
--  发布时间:2018/4/21 16:00:00
--  
其他事件呢?接受消息事件能不能弹出提示框