Foxtable(狐表)用户栏目专家坐堂 → [求助]项目数据批量拆分


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

主题:[求助]项目数据批量拆分

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/13 17:10:00 [显示全部帖子]

 第一个问题,会不会是你【样品信息】表有重复的【样品编号】?

 导致,数据重复添加?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/13 17:13:00 [显示全部帖子]


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/13 17:44:00 [显示全部帖子]

以下是引用lxhmax在2012-9-13 17:33:00的发言:

dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' and 检测项目 = '" & Ary1(0) & "' and 检测依据 = '" & Ary1(1) & "' and 检测部门 = '" & Ary1(2) & "' and 检测费用 = '" & Ary1(3) & "' and 费用说明 = '" & Ary1(4) &  "'")

 

我把这条数据改成

 

dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' “)

 

这样就不会重复了~!

 

其实我还不是很懂什么原因~!


后面的列有空值吗?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/14 9:07:00 [显示全部帖子]

 空值不能直接比较。

 比如 费用说明 是空值

 需要这样比较:"费用说明 is Null And " & "'" & Ary1(4) & "' = ''"

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/14 10:25:00 [显示全部帖子]

  理解正确,不过,后面列没必要比较了。因为,前两列就可以确定后面的不同。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/24 11:02:00 [显示全部帖子]

 楼主,这样写代码,如下:

Dim nums As String
For i As Integer = Tables("表A").TopRow To Tables("表A").BottomRow
    nums = nums & Tables("表A").Rows(i)("委托编号") & ","
Next

nums = nums.Trim(",")

Tables("表C").StopRedraw
Dim Arys As List(Of String())
Arys = DataTables("表A").GetUniqueValues("委托编号 in (" & nums & ")", "委托编号","委托项目")

For Each Ary As String() In Arys
    Dim s As String = Ary(1)
    Dim Values() As String = s.split(",")
    For i As Integer = 0 To Values.Length - 1
        Dim Arys1 As List(Of String())
        Arys1 = DataTables("表D").GetUniqueValues("委托项目 = '" & Values(i) & "'", "项目依据","项目明细","明细依据","项目单位")
        For Each Ary1 As String() In Arys1
            Dim dr As DataRow
            dr = DataTables("表C").Find("委托编号 = '" & Ary(0) & "' and 委托项目 = '" & Values(i) & "' and 项目依据 = '" & Ary1(0) & "' and 项目明细 = '" & Ary1(1) & "' and 明细依据 = '" & Ary1(2) & "' and 项目单位 = '" & Ary1(3) & "'")
            If dr Is Nothing Then
                Dim r As Row = Tables("表C").AddNew()
                r("委托编号") = Ary(0)
                r("委托项目") = Values(i)
                r("项目依据") = Ary1(0)
                r("项目明细") = Ary1(1)
                r("明细依据") = Ary1(2)
                r("项目单位") = Ary1(3)
            End If
        Next
    Next
Next
Tables("表C").ResumeRedraw

 回到顶部