Foxtable(狐表)用户栏目专家坐堂 → 非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了?


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

主题:非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了?

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


加好友 发短信
等级:婴狐 帖子:45 积分:749 威望:0 精华:0 注册:2012/10/17 15:59:00
非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了?  发帖心情 Post By:2021/9/4 20:16:00 [只看该作者]

你好!请教一下 非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了?

DataColChanged事件代码

Select Case e.DataCol.name
    Case "商品编码"
        Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = '" & e.OldValue & "'")
        If dr Is Nothing Then 
            dr = DataTables("库存明细").AddNew()
            dr("商品编码") = e.DataRow("商品编码")
            dr("商品类别") = e.DataRow("商品类别")
            dr("商品名称") = e.DataRow("商品名称")
            dr("规格型号") = e.DataRow("规格型号")
        Else
            dr("商品编码") = e.DataRow("商品编码")
        End If
    Case "商品名称","规格型号","商品类别"

       Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = '" & e.DataRow("商品编码") & "'")
  If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

DataRowDeleting事件代码

Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = '" & e.DataRow("商品编码") & "'" )
If dr IsNot Nothing Then
    dr.Delete()
End If


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


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/5 20:19:00 [只看该作者]

肯定是可以的。所谓的同步删除,是指仅删除了商品编号这个单元格的数据?还是指删除了整行?

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


加好友 发短信
等级:婴狐 帖子:45 积分:749 威望:0 精华:0 注册:2012/10/17 15:59:00
  发帖心情 Post By:2021/9/6 18:01:00 [只看该作者]

你好!
  我开始是将父表里的数据一齐删除时,子表里仅仅就删除了关联的列 商品编码,其他的都没有删除得了
但是我试了一下如果先删除非关联列 商品名称 商品类别  规格型号,最后删除关联列商品编码,才能同步

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


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

商品编码是要做关联的,肯定要最后再删除。另外如果商品编码本来有值,然后清空的,要单独判断拿出来处理

    Case "商品编码"
        Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = '" & e.OldValue & "'")
        If dr Is Nothing Then 
            dr = DataTables("库存明细").AddNew()
            dr("商品编码") = e.DataRow("商品编码")
            dr("商品类别") = e.DataRow("商品类别")
            dr("商品名称") = e.DataRow("商品名称")
            dr("规格型号") = e.DataRow("规格型号")
elseif e.newvalue is nothing then
删除子表数据
        Else
            dr("商品编码") = e.DataRow("商品编码")
        End If

 回到顶部