Foxtable(狐表)用户栏目专家坐堂 → 老师,窗口table中修改父表内容,子表对应内容未能同时修改


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

主题:老师,窗口table中修改父表内容,子表对应内容未能同时修改

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


加好友 发短信
等级:婴狐 帖子:38 积分:332 威望:0 精华:0 注册:2020/12/12 14:26:00
老师,窗口table中修改父表内容,子表对应内容未能同时修改  发帖心情 Post By:2020/12/22 15:51:00 [只看该作者]

您好:

我在窗口中上半部分添加一个table,然后在下半部分添加一个三个标签页tabcontrol,每个标签页添加一个table,四个table分别为  销售订单,销售明细  销售应收 销售应付,其中销售订单和销售明细做关联,销售订单作为父表,销售明细分别和销售应收和销售应付做关联,销售明细作为父表。 数据同步修改,删除。已实现四个table联动,但是修改销售明细的关联内容时,销售应收和销售应付两个子表相应内容未能同时修改,不知是什么原因



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/22 15:56:00 [只看该作者]

三个标签页里的table改为绑定关联表,而不是子表

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


加好友 发短信
等级:婴狐 帖子:38 积分:332 威望:0 精华:0 注册:2020/12/12 14:26:00
用的SQLtable,之前用的关联表也是不行  发帖心情 Post By:2020/12/22 16:19:00 [只看该作者]

用的SQLtable,之前用的关联表也是不行

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/22 16:24:00 [只看该作者]

SQLtable加载进来的表和父表是没有什么关联关系的,是一个独立的表,要自己写代码更改。

关联表肯定可以的

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


加好友 发短信
等级:婴狐 帖子:38 积分:332 威望:0 精华:0 注册:2020/12/12 14:26:00
好的,那我再试试关联表,感谢  发帖心情 Post By:2020/12/22 17:09:00 [只看该作者]

好的,那我再试试关联表,感谢

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


加好友 发短信
等级:婴狐 帖子:38 积分:332 威望:0 精华:0 注册:2020/12/12 14:26:00
关联表不能做副表吧,需要在多个窗口同时打开,是不是不行  发帖心情 Post By:2020/12/23 10:06:00 [只看该作者]

关联表不能做副表吧,需要在多个窗口同时打开,是不是不行

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/23 10:20:00 [只看该作者]

如果需要在多个窗口同时打开,确实不行。

这种情况只能是绑定子表,然后使用代码更改子表相应内容了,类似:http://www.foxtable.com/webhelp/topics/2490.htm

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


加好友 发短信
等级:婴狐 帖子:38 积分:332 威望:0 精华:0 注册:2020/12/12 14:26:00
同一窗口中table数据不能同步  发帖心情 Post By:2020/12/24 11:12:00 [只看该作者]

各位好:
我在窗口中上半部分添加一个table,然后在下半部分添加一个三个标签页tabcontrol,每个标签页添加一个table,四个table分别为  销售订单,销售明细  销售应收 销售应付,其中销售订单和销售明细做关联,销售订单作为父表,销售明细分别和销售应收和销售应付做关联,销售明细作为父表。 数据同步修改,删除。已实现四个table联动,但是修改销售明细的关联内容时,销售应收和销售应付两个子表相应内容未能同时修改, 关联表的同步数据选项取消勾选,不仅如此窗口,单纯在数据表中增加和修改数据,可以通过代码同步,进入窗口后不能实现。窗口table数据表绑定类型是 sqltable,在销售明细表的datacolchanged事件中写入代码如下:

Select Case e.DataCol.name
    
    Case "箱号"
        Dim dr As  DataRow
        dr = DataTables("销售应收").Find("订单编号 = '" & e.DataRow("订单编号") & "'"  )
        If dr Is Nothing Then
            ' messagebox.show(e.oldvalue & 1)
            dr = DataTables("销售应收").AddNew()
            dr("订单编号") = e.DataRow("订单编号")
            dr("箱型") = e.DataRow("箱型")
            dr("箱号") = e.DataRow("箱号")
            
        Else
            dr=  DataTables("销售应收").Find("箱号 = '" & e.OldValue & "'"  )
            
            If dr Is Nothing Then
                ' messagebox.show(e.oldvalue & 2)
                dr = DataTables("销售应收").AddNew()
                dr("订单编号") = e.DataRow("订单编号")
                dr("箱型") = e.DataRow("箱型")
                dr("箱号") = e.DataRow("箱号")
            Else
                ' messagebox.show(e.oldvalue & 3)
                dr("订单编号") = e.DataRow("订单编号")
                dr("箱型") = e.DataRow("箱型")
                dr("箱号") = e.DataRow("箱号")
            End If
        End If
        
        dr = DataTables("销售应付").Find("订单编号 = '" & e.DataRow("订单编号") & "'"  )
        If dr Is Nothing Then
            ' messagebox.show(e.oldvalue & 1)
            dr = DataTables("销售应付").AddNew()
            dr("订单编号") = e.DataRow("订单编号")
            dr("箱型") = e.DataRow("箱型")
            dr("箱号") = e.DataRow("箱号")
            
        Else
            dr=  DataTables("销售应付").Find("箱号 = '" & e.OldValue & "'"  )
            
            If dr Is Nothing Then
                'messagebox.show(e.oldvalue & 2)
                dr = DataTables("销售应付").AddNew()
                dr("订单编号") = e.DataRow("订单编号")
                dr("箱型") = e.DataRow("箱型")
                dr("箱号") = e.DataRow("箱号")
            Else
                'messagebox.show(e.oldvalue & 3)
                dr("订单编号") = e.DataRow("订单编号")
                dr("箱型") = e.DataRow("箱型")
                dr("箱号") = e.DataRow("箱号")
            End If
        End If
End Select


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

1、每个表都单独处理,不要使用if else 分支,否则if符合条件,else里面的代码是肯定不会执行的
2、sqltable有独立的表名,不是使用主表名称:http://www.foxtable.com/webhelp/topics/1907.htm

 回到顶部