以文本方式查看主题 - 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=132902) |
-- 作者:manyifuwu -- 发布时间:2019/4/1 20:50:00 -- openqq 即时同步的问题?(感谢!已搞定) 帮助里的,在编辑窗口加一个保存按钮,按钮代码设置为: Dim r As Row = Tables("表A").CurrentDim 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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/4/1 21:08:00 -- 用法完全一样,没有区别。把表名改为窗口表的名称即可。 可以加多一个判断,如果窗口打开,或者存在这个窗口表名称的表的时候,就同步加载
|
-- 作者:manyifuwu -- 发布时间: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 这样怎么没有生效呢? |
-- 作者:有点蓝 -- 发布时间:2019/4/1 21:21:00 -- 接收数据一样要改啊 |
-- 作者:manyifuwu -- 发布时间:2019/4/1 21:21:00 -- 如果窗口打开,怎么判定呢?感谢 |
-- 作者:有点蓝 -- 发布时间:2019/4/1 21:24:00 -- http://www.foxtable.com/webhelp/scr/0705.htm |
-- 作者:manyifuwu -- 发布时间:2019/4/1 21:53:00 -- 就是不知道接收数据这那改? |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2019/4/1 22:46:00 -- 感谢您! |