Foxtable(狐表)用户栏目专家坐堂 → OPenQQ问题


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

主题:OPenQQ问题

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
OPenQQ问题  发帖心情 Post By:2018/4/19 10:16:00 [显示全部帖子]

老师,有事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


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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/19 10:34:00 [显示全部帖子]

还是没反应


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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/19 11:29:00 [显示全部帖子]

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

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

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

 


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

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/19 14:23:00 [显示全部帖子]

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

 

用pts(3)记录了表名,怎么处理呢?


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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/19 14:55:00 [显示全部帖子]

老师,我的想法是这样,所有审核共用一个审核申请窗口,在审核申请窗口中用"Label3"来记录表名,但不显示,点击查看按钮就可以查看对应的表的审核信息。

12楼测试,不显示结果呢

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

       StatusBar.Message1 = pts.length
End  If


 


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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/20 9:09:00 [显示全部帖子]

老师,之前的问题解决了,在发送审核消息时,没把表名发送过去。

For Each dr As DataRow In DataTables("账号密码").sqlSelect("职务 = '经营部经理'")
    QQClient.Send(dr("机构名称") & "." & dr("姓名"),"+@|" & r("_Identify") & "|" & r("项目名称") & "|" & _UserXingMing & "|" & CurrentTable.Name,True)
Next

修改后没问题了,新问题是查看按钮找不到对应的表,

报错如下:


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

 

代码如下:

Dim id As String = e.Form.Controls("Label2").Text
Dim nm As String = e.Form.Controls("Label3").Text
DataTables(nm).Save()  '接下来要根据主键查找,必须先保存,因为只有保存后新增行的主键才是有效值.
Dim dr As DataRow = DataTables(nm).Find("[_Identify] = " & id)
If dr Is Nothing Then
    DataTables(nm).AppendLoad("[_Identify] = " & id)
    dr =  DataTables(nm).Find("[_Identify] = " & id)
Else
    dr.Load()
End If
If dr IsNot Nothing Then
    'Dim wz As Integer = Tables(nm).FindRow(dr)
    Dim wz As Integer = Tables(nm).FindRow("[_Identify] = " & id)
    If wz < 0 Then  '如果因为筛选导致此合同签订类不可见
        Tables(nm).Filter = ""
        wz =Tables(nm).FindRow(dr)
    End If
    If wz >= 0 Then
        MainTable = Tables(nm)
        Tables(nm).Position = wz
        For Each f As WinForm.Form In Forms
            If f.TableName=nm  Then
                f.open(-2000,-2000)
                If f.formstyle <> 5 Then
                    f.close
                   
                End If
            End If
        Next
    End  If
End  If
e.Form.Close()


[此贴子已经被作者于2018/4/20 9:14:25编辑过]

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/20 9:30:00 [显示全部帖子]

老师,知道原因了,默认这个表是不加载的,表加载了就没问题了,在表没加载的情况下怎么处理呢?


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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/4/20 9:37:00 [显示全部帖子]

试过,这样也不行啊?

Dim nm As String = e.Form.Controls("Label3").Text
If DataTables.Contains("nm") = False
    DataTables.Load("nm")
End If

.......

还是报同样的错。


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