Foxtable(狐表)用户栏目专家坐堂 → openqq 即时同步的问题?(感谢!已搞定)


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

主题:openqq 即时同步的问题?(感谢!已搞定)

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
openqq 即时同步的问题?(感谢!已搞定)  发帖心情 Post By:2019/4/1 20:50:00 [只看该作者]

帮助里的,在编辑窗口加一个保存按钮,按钮代码设置为:
Dim r As Row = Tables("A").Current
Dim
 p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#""U#")
r
.Save()
'
一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim
 msg As String = p & "A" & "#" & r("_Identify")
For
 Each bd As QQBuddy In QQClient.Buddies
    If bd.Online Then
        QQClient.Send(bd.name, msg)
    
End If
Next

登录openqq ,这个对主表有效,
因几台电脑打开这个项目,窗口里的表A,如果用的sql表。怎样能也如同主表A一样,即时同步呢?
谢谢!
[此贴子已经被作者于2019/4/1 22:46:42编辑过]

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


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

用法完全一样,没有区别。把表名改为窗口表的名称即可。

可以加多一个判断,如果窗口打开,或者存在这个窗口表名称的表的时候,就同步加载

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2019/4/1 21:17:00 [只看该作者]

Dim r As Row = Tables("派工_Table1").Current
Dim p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r.Save()
'一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim msg As String = p & "派工_Table1" & "#" & r("_Identify")
For Each bd As QQBuddy In QQClient.Buddies
    If bd.Online Then
        QQClient.Send(bd.name, msg)
    End If
Next

这样怎么没有生效呢?


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


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

接收数据一样要改啊

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2019/4/1 21:21:00 [只看该作者]

如果窗口打开,怎么判定呢?感谢


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


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


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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2019/4/1 21:53:00 [只看该作者]

就是不知道接收数据这那改?


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/1 22:03:00 [只看该作者]

发送


Dim r As Row = Tables("派工_Table1").Current
Dim p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r.Save()
'一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim msg As String = p & "派工_Table1" & "#" & r("_Identify") & "#派工"
For Each bd As QQBuddy In QQClient.Buddies
    If bd.Online Then
        QQClient.Send(bd.name, msg)
    End If
Next

接收

Dim msg As String = e.Message
If msg.StartsWith("U#") Then '表示修改了某行
    Dim pts() As String = msg.Split("#")
    If pts.Length >= 3 Then
        If pts.Length = 4
            If Forms(pts(3)).Opened = False Then Return
        End If
        Dim dr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & pts(2))
        If dr IsNot Nothing  Then
            dr.Load() '重新加载此行
        End If
    End If
ElseIf msg.StartsWith("A#") Then '表示增加了行
    Dim pts() As String = msg.Split("#")
    If pts.Length >= 3 Then
        If pts.Length = 4
            If Forms(pts(3)).Opened = False Then Return
        End If
        DataTables(pts(1)).AppendLoad("[_Identify] = " &  pts(2)) '追载新增加的行.
    End If
ElseIf msg.StartsWith("D#") Then '表示删除了行
    Dim pts() As String = msg.Split("#")
    If pts.Length >= 3 Then
        If pts.Length = 4
            If Forms(pts(3)).Opened = False Then Return
        End If
        DataTables(pts(1)).RemoveFor("[_Identify] = "  & pts(2)) '移除行
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2019/4/1 22:46:00 [只看该作者]

感谢您!


 回到顶部