以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 老师,窗口table中修改父表内容,子表对应内容未能同时修改 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159333) |
-- 作者:lsjt_1979 -- 发布时间:2020/12/22 15:51:00 -- 老师,窗口table中修改父表内容,子表对应内容未能同时修改 您好: 我在窗口中上半部分添加一个table,然后在下半部分添加一个三个标签页tabcontrol,每个标签页添加一个table,四个table分别为 销售订单,销售明细 销售应收 销售应付,其中销售订单和销售明细做关联,销售订单作为父表,销售明细分别和销售应收和销售应付做关联,销售明细作为父表。 数据同步修改,删除。已实现四个table联动,但是修改销售明细的关联内容时,销售应收和销售应付两个子表相应内容未能同时修改,不知是什么原因 |
-- 作者:有点蓝 -- 发布时间:2020/12/22 15:56:00 -- 三个标签页里的table改为绑定关联表,而不是子表 |
-- 作者:lsjt_1979 -- 发布时间:2020/12/22 16:19:00 -- 用的SQLtable,之前用的关联表也是不行 用的SQLtable,之前用的关联表也是不行 |
-- 作者:有点蓝 -- 发布时间:2020/12/22 16:24:00 -- SQLtable加载进来的表和父表是没有什么关联关系的,是一个独立的表,要自己写代码更改。 关联表肯定可以的
|
-- 作者:lsjt_1979 -- 发布时间:2020/12/22 17:09:00 -- 好的,那我再试试关联表,感谢 好的,那我再试试关联表,感谢 |
-- 作者:lsjt_1979 -- 发布时间:2020/12/23 10:06:00 -- 关联表不能做副表吧,需要在多个窗口同时打开,是不是不行 关联表不能做副表吧,需要在多个窗口同时打开,是不是不行 |
-- 作者:有点蓝 -- 发布时间:2020/12/23 10:20:00 -- 如果需要在多个窗口同时打开,确实不行。 |
-- 作者:lsjt_1979 -- 发布时间:2020/12/24 11:12:00 -- 同一窗口中table数据不能同步 各位好: 我在窗口中上半部分添加一个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 |
-- 作者:有点蓝 -- 发布时间:2020/12/24 11:24:00 -- 1、每个表都单独处理,不要使用if else 分支,否则if符合条件,else里面的代码是肯定不会执行的 2、sqltable有独立的表名,不是使用主表名称:http://www.foxtable.com/webhelp/topics/1907.htm
|