Foxtable(狐表)用户栏目专家坐堂 → [求助]逻辑删除


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

主题:[求助]逻辑删除

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


加好友 发短信
等级:五尾狐 帖子:1005 积分:5955 威望:0 精华:0 注册:2015/6/18 5:15:00
[求助]逻辑删除  发帖心情 Post By:2016/10/7 16:15:00 [只看该作者]

老师好,通过把表A逻辑列勾选把数据复制到表B已经搞好了。现在想把表A逻辑列退购后同时删除表B和表A编号相同的行。

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/7 16:25:00 [只看该作者]

DataColChanged事件

If e.DataCol.Name = "逻辑列" AndAlso e.DataRow( "逻辑列" )  = False Then
    e.DataRow.Delete
End If

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


加好友 发短信
等级:五尾狐 帖子:1005 积分:5955 威望:0 精华:0 注册:2015/6/18 5:15:00
  发帖心情 Post By:2016/10/7 17:04:00 [只看该作者]

老师,我是表A逻辑列退勾删除表B(表A编号和表B编号相同的行)

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/7 17:09:00 [只看该作者]

和你复制到表B的用法一样,通过find找到表B对应的行,然后delete

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


加好友 发短信
等级:五尾狐 帖子:1005 积分:5955 威望:0 精华:0 注册:2015/6/18 5:15:00
  发帖心情 Post By:2016/10/7 20:14:00 [只看该作者]

If e.DataCol.Name = "A" AndAlso e.DataRow.IsNull("编号") = False Then
    Dim dr As DataRow = DataTables("表B").Find("编号 = '" & e.DataRow("编号") & "'")
    If e.DataRow(e.DataCol) = True Then
        If dr Is Nothing Then
            dr = DataTables("表B").AddNew
            For Each dc As DataCol In DataTables("表A").DataCols
                If DataTables("表B").DataCols.Contains(dc.Name) Then
                    dr(dc.Name) = e.DataRow(dc.Name)
                End If
            Next
        End If
    Else
        If dr IsNot Nothing Then
            dr.Delete
        End If
    End If
End If



老师,勾选复制有一列相同(编号)其他列名称不相同退勾删除编号相同的行。

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


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

If e.DataCol.Name = "A" AndAlso e.DataRow.IsNull("编号") = False Then
    Dim dr As DataRow = DataTables("表B").Find("编号 = '" & e.DataRow("编号") & "'")
    If e.DataRow(e.DataCol) = True Then
        If dr Is Nothing Then
            dr = DataTables("表B").AddNew
            For Each dc As DataCol In DataTables("表A").DataCols
                If DataTables("表B").DataCols.Contains(dc.Name) Then
                    dr(dc.Name) = e.DataRow(dc.Name)
                End If
            Next
        End If
    Else
        e.DataRow.Delete
        If dr IsNot Nothing Then
            dr.Delete
        End If
    End If
End If

 回到顶部