以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  QQClient.Send  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116621)

--  作者:zoyong
--  发布时间:2018/3/28 12:37:00
--  QQClient.Send
Dim msg As String = p & "项目付款" & "|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "#" & sjtb("_Identify")

代码出错,也不会弹窗和留言,求大神帮忙


图片点击可在新窗口打开查看此主题相关图片如下:360截图20180328123517906.jpg
图片点击可在新窗口打开查看

完整代码
Dim msg As String = p & "项目付款" & "|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "#" & sjtb("_Identify")
            For Each bd As QQBuddy In QQClient.Buddies
                If bd.Online Then
                    QQClient.Send(bd.name, msg)
                End If
            Next
            \'-------------------------------给对方弹窗和留言---------------------------------------
            QQClient.SendChatMessage("综合科.周泽顺","{!}项目付款|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "|领款人:" & sjtb("领款人"))


--  作者:有点甜
--  发布时间:2018/3/28 12:55:00
--  
贴出你QQServer和QQClient的ReceivedMessage的代码。
--  作者:zoyong
--  发布时间:2018/3/28 13:17:00
--  
QQClient:

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

\'-----------------------即时高效同步数据-----------------------
Dim mssg As String = e.Message
If mssg.StartsWith("U#") Then \'表示修改了某行
    Dim pts() As String = mssg.Split("#")
    If pts.Length = 3 Then
        Dim ddr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & pts(2))
        If ddr IsNot Nothing  Then
            ddr.Load() \'重新加载此行
        End If
    End If
ElseIf mssg.StartsWith("A#") Then \'表示增加了行
    Dim pts() As String = mssg.Split("#")
    If pts.Length = 3 Then
        DataTables(pts(1)).AppendLoad("[_Identify] = " &  pts(2)) \'追载新增加的行.
    End If
ElseIf mssg.StartsWith("D#") Then \'表示删除了行
    Dim pts() As String = mssg.Split("#")
    If pts.Length = 3 Then
        DataTables(pts(1)).RemoveFor("[_Identify] = "  & pts(2)) \'移除行
    End If
End If

QQSERVER:
If e.Message = "GetDate" Then       \'客户端需要获取QQ服务器信息
    e.ReturnValue = Date.Now
End If

\'--------------------保存聊天信息---------------------
Dim dr As DataRow = DataTables("QQ信息").AddNew
dr("发送者") = iif(e.UserName > "",e.UserName,"服务器")
dr("时间") = Date.Now()
dr("信息") = e.Message
dr.save

\'\'-------------------独占式编辑------------------------
Dim msg As String = e.Message
If msg.StartsWith("%i") AndAlso msg.EndsWith("i%") Then \'收到申请信号
    msg = msg.SubString(2, msg.Length - 4)
    Dim id As Integer
    If Integer.TryParse(msg,id) Then
        If pdids.ContainsKey(id) Then \'如果有人正在处理此行
            e.ReturnValue = pdids(id) \'通知申请人是谁在处理此行
        Else
            e.ReturnValue = "OK" \'通知申请人可以处理此行
            pdids.Add(id, e.UserName) \'登记此行的处理者为申请者
        End If
    End If
ElseIf msg.StartsWith("@i") AndAlso msg.EndsWith("i@") Then \'收到处理完成信号
    msg = msg.SubString(2, msg.Length - 4)
    Dim id As Integer
    If Integer.TryParse(msg,id) Then
        If pdids.ContainsKey(id) Then
            pdids.Remove(id) \'从字典中移除此行的编辑登记
        End If
    End If
End If
[此贴子已经被作者于2018/3/28 13:17:56编辑过]

--  作者:zoyong
--  发布时间:2018/3/28 13:20:00
--  
是不是   "#"   这个原因  ,加上主键

            QQClient.SendChatMessage("综合科.周泽顺","{!}项目付款|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "|领款人:" & sjtb("领款人") & "#" & sjtb("_Identify"))


加上主键能通知了,但是上面的错误提示还在
[此贴子已经被作者于2018/3/28 13:38:06编辑过]

--  作者:zoyong
--  发布时间:2018/3/28 13:57:00
--  
Dim msg As String = p & "项目付款" & "|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "#" & sjtb("_Identify")
这一行改成这样就能用
Dim msg As String = p & "项目付款" & "#" & sjtb("_Identify")

我想记录详细信息


--  作者:有点甜
--  发布时间:2018/3/28 14:35:00
--  

你代码是不是要改成这样?

 

Dim msg As String = "项目付款" & "|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "#" & sjtb("_Identify")

msgbox(msg)


--  作者:zoyong
--  发布时间:2018/3/28 14:59:00
--  
原代码:
 Dim p As String = IIF(sjtb.DataRow.RowState = DataRowState.Added, "A#", "U#")      \'A#为新增,U#为修改
        sjtb.Save()
        \'--------------一定要在保存后合成信息,因为新增行的主键在保存后才生成---------------------------------     
        If  sjtb("工程部审核") IsNot Nothing Then        \'判断工程部是否已审核            
            Dim msg As String = p & "项目付款" & "#" & sjtb("_Identify")                        ’这个代码可用
                Dim msg As String = p & "项目付款" & "|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "#" & sjtb("_Identify")          ‘这个代码会出错
            For Each bd As QQBuddy In QQClient.Buddies
                If bd.Online Then
                    QQClient.Send(bd.name, msg)
                End If
            Next
            \'-------------------------------给对方弹窗和留言---------------------------------------
            QQClient.SendChatMessage("综合科.周泽顺","{!}项目付款|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "|领款人:" & sjtb("领款人") & "#" & sjtb("_Identify"))


红色代码不可用,绿色代码可用

能不能在这个QQClient.Send(bd.name, msg)在这个地方合成
比如:QQClient.Send(bd.name, msg & msg2)

--  作者:有点甜
--  发布时间:2018/3/28 15:23:00
--  

改成

 

Dim msg As String = "项目付款" & "|编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称") & "#" & sjtb("_Identify")


--  作者:zoyong
--  发布时间:2018/3/28 15:45:00
--  
这样改是能用,但是不会标记前面的符号是修改还是增加      \'A#为新增,U#为修改
--  作者:有点甜
--  发布时间:2018/3/28 15:59:00
--  

那就改成

 

Dim msg As String = p & "项目付款#" & sjtb("_Identify") & "#编号:" & sjtb("编号") & "|项目名称:" & sjtb("项目名称")