Foxtable(狐表)用户栏目专家坐堂 → [求助]多个窗口引用同一个父子出现数据冲突怎么解决?|


  共有4215人关注过本帖平板打印复制链接

主题:[求助]多个窗口引用同一个父子出现数据冲突怎么解决?|

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


加好友 发短信
等级:四尾狐 帖子:884 积分:7061 威望:0 精华:0 注册:2013/3/5 8:42:00
[求助]多个窗口引用同一个父子出现数据冲突怎么解决?|  发帖心情 Post By:2013/12/24 13:44:00 [只看该作者]

窗口1 父表C,子表D 

窗口2,父表E,子表1:F  (其中F有子表D)

                   子表2:C。窗口2中有3个父子表关系。E-F ,E-C,F-D

以上父表都是分页动态加载

 

当1.open时候,显示了C,加载了D

当2 OPEN而A没有关闭的时候,显示E,加F,C。本来只显示F的子表部分D。但是因为加载C,从而也引起了窗口1的 C变动,也加载了部分D。

这个时候窗口2部分D和窗口1的部分D数据混合在一起,数据变乱了,这个该怎么解决。

是不是所有的表只能用SQL TABLE

而无法使用下面的这个分页动态加载的方式

 

父表与子表同步加载

假定有两个表,分别是订单和订单明细,两者通过"订单ID"列关联起来,订单是父表,订单明细是子表,因为每个订单对应有若干订单明细。
由于数据量比较大,决定采用动态加载,每次只加载一定数量的订单进行处理,显然作为一个合格的系统,应该同时加载这些订单的订单明细。

要完成这样的任务很简单,只需在订单表的AfterLoad事件中加入以下代码即可:

If DataTables("订单").DataRows.Count = 0 Then '如果订单表没有数据
    DataTables(
"订单明细").LoadFilter = "订单ID Is Null" '不加载订单明细
Else
    Dim 
ids As String
    For Each 
dr As DataRow In DataTables("订单").DataRows
        
ids = ids & "," & dr("订单ID")
    Next
    
idsids.Trim(",")
    DataTables(
"订单明细").LoadFilter = "订单ID In (" & ids & ")"
End If
DataTables(
"订单明细").Load()

 

[此贴子已经被作者于2013-12-24 13:46:54编辑过]

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