以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]多用户协同工作的情况下,想要同步关联子表数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184799) |
-- 作者:igewcw -- 发布时间:2023/1/4 9:15:00 -- [求助]多用户协同工作的情况下,想要同步关联子表数据 请教各位老师,在多用户协同工作的情况下,想要数据同步,按照帮助里的【openQQ及时同步】设置了如下代码,并实现了及时同步,但是确发现这个代码不能实现关联子表数据更新的同步,如:成品信息表.BOM清单 请问如何实现关联子表的数据及时同步呢?
Dim r As Row = Tables("成品信息表").Current Dim p As String = IIf(r.DataRow.RowState = DataRowState.Added, "A#", "U#") r.Save() \'一定要在保存后合成信息,因为新增行的主键在保存后才生成 Dim msg As String = p & "成品信息表" & "#" & r("_Identify") For Each bd As QQBuddy In QQClient.Buddies If bd.Online Then QQClient.Send(bd.name, msg) End If Next |
-- 作者:有点蓝 -- 发布时间:2023/1/4 9:25:00 -- 方法1、在同步的加载的地方加载子表数据,类似:http://www.foxtable.com/webhelp/topics/2228.htm 2、要发送的消息的规则是自己定义的,想要做什么可以自己定义更详细的规则,比如 Dim msg As String = p & "成品信息表" & "#" & r("_Identify") & “#BOM清单” 然后在接收的时候 ElseIf msg.StartsWith("A#") Then \'表示增加了行 Dim pts() As String = msg.Split("#") If pts.Length >= 3 Then dim drs = DataTables(pts(1)).AppendLoad("[_Identify] = " & pts(2)) \'追载新增加的行. If pts.Length =4 andalso drs.count > 0 Then DataTables(pts(3)).Loadfilter = "关联列=\'" & drs(0)("关联列") & "\'" DataTables(pts(3)).Load End IfEnd If |