Foxtable(狐表)用户栏目专家坐堂 → 跨表增减行


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

主题:跨表增减行

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/31 9:04:00 [显示全部帖子]

规格变动,相同行随着增减,这里的增减是什么意思?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/31 10:12:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.rar


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/31 12:14:00 [显示全部帖子]

留给你做练习用。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/31 16:41:00 [显示全部帖子]

这个有点粗暴,等于先删除所有的了。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/31 17:54:00 [显示全部帖子]

这个问题我写的时候就留意到了,解决方法:

 

将:

 

    Dim Parts1() As String = e.OldValue.Split("\")
    Dim Parts2() As String = e.NewValue.Split("\")

改为:

 

Dim Parts1() As String
Dim Parts2() As String
If e.OldValue > "" Then
    Parts1 = e.OldValue.Split("\")
End If
If e.NewValue > "" Then
    Parts2  = e.NewValue.Split("\")
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/31 18:15:00 [显示全部帖子]

'数据DataColChanged
If e.DataCol.Name = "规格" Then '
    Dim Parts1() As String = {}
    Dim Parts2() As String = {}
    If e.OldValue > "" Then
        Parts1 = e.OldValue.Split("\")
    End If
    If e.NewValue > "" Then
        Parts2  = e.NewValue.Split("\")
    End If
    For Each part As String In Parts2
        Dim dr As DataRow = DataTables("规格表").Find("货品编号 = '" & e.DataRow("货品编号") & "' And 规格 = '" & part & "'")
        If dr IsNot Nothing
            Tables("规格表").Position = Tables("规格表").FindRow(dr)
        Else
            Dim r As Row = Tables("规格表").AddNew()
            r("货品编号") = e.DataRow("货品编号")
            r("货品名称") = e.DataRow("货品名称")
            r("规格") = part
        End If
    Next
    Dim lst As new List(of String)
    lst.AddRange(parts2)
    For Each part As String In Parts1
        If lst.contains(part) = False Then
            Dim dr As DataRow = DataTables("规格表").Find("货品编号 = '" & e.DataRow("货品编号") & "' And 规格 = '" & part & "'")
            If dr IsNot Nothing Then
                dr.Delete
            End If
        End If
    Next
End If

 回到顶部