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


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

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

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
[求助]项目数据批量拆分  发帖心情 Post By:2012/9/13 12:08:00 [显示全部帖子]

 

    求教:对于将数据拆分的情况现在是这样子的,如表上所示每次只能将一行的数据拆分开来;

  

       请问下,我现在想将表1的3个编号的项目或者更多的项目批量拆分到表3,这个要怎么弄;

                   如何避免拆分添加数据的时候重复拆分?

                      谢谢啦~

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目数据批量拆分.table


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/13 16:02:00 [显示全部帖子]

嘻嘻~太感谢你的帮助了~谢谢你的不厌其烦~有点小问题要继续请教下:

 

请问下我这样改了之后有什么问题吗?  有些数据会重复添加,有些又不会!?

还有个小小要求,我可以根据我选中的内容来拆分添加吗?

 

Tables("流转记录表").StopRedraw
Dim Arys As List(Of String())
Arys = DataTables("样品信息").GetUniqueValues("", "样品编号","检测项目")
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("检测项目").GetUniqueValues("流转项目 = '" & Values(i) & "'", "检测项目","检测依据","检测部门","检测费用","费用说明")
        For Each Ary1 As String() In Arys1
            Dim dr As DataRow
            dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' and 检测项目 = '" & Ary1(0) & "' and 检测依据 = '" & Ary1(1) & "' and 检测部门 = '" & Ary1(2) & "' and 检测费用 = '" & Ary1(3) & "' and 费用说明 = '" & Ary1(4) &  "'")
            If dr Is Nothing Then
                Dim r As Row = Tables("流转记录表").AddNew()
                r("样品编号") = Ary(0)
                r("流转项目") = Values(i)
                r("检测项目") = Ary1(0)
                r("检测依据") = Ary1(1)
                r("检测部门") = Ary1(2)
                r("检测费用") = Ary1(3)
                r("费用说明") = Ary1(4)
            End If
        Next
    Next
Next
Tables("流转记录表").ResumeRedraw

 


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By: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) & "' “)

 

这样就不会重复了~!

 

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


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/13 20:56:00 [显示全部帖子]

有两列是空值来的~!

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/14 9:58:00 [显示全部帖子]

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

 

这条代码就是用来对比拆分的数据是吗?如果列出来的这些都相同才不会继续重复添加?


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/23 19:44:00 [显示全部帖子]

以下是引用lin_hailun在2012-9-13 17:13:00的发言:
第二个问题,参考

http://www.foxtable.com/help/topics/1665.htm
对于选定区域执行下面代码还不是很懂,麻烦高手帮忙看下要怎么改~谢谢啦!


Tables("检测流程流转记录表").StopRedraw
Dim Arys As List(Of String())
Arys = DataTables("样品信息").GetUniqueValues("样品编号 is not null","样品编号","检测项目")
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("检测项目").GetUniqueValues("加载流转项目 = '" & Values(i) & "'", "检测项目","检测依据","检测部门","报价费用","费用说明")
        For Each Ary1 As String() In Arys1
            Dim dr As DataRow
            dr = DataTables("检测流程流转记录表").Find("样品编号 = '" & Ary(0) & "' and 加载流转项目 = '" & Values(i) & "'")
            If dr Is Nothing Then
                Dim r As Row = Tables("检测流程流转记录表").AddNew()
                r("样品编号") = Ary(0)
                r("加载流转项目") = Values(i)
                r("检测项目") = Ary1(0)
                r("检测依据") = Ary1(1)
                r("检测部门") = Ary1(2)
                r("报价费用") = Ary1(3)
                r("费用说明") = Ary1(4)
            End If
        Next
    Next
Next
Tables("检测流程流转记录表").ResumeRedraw


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/24 10:37:00 [显示全部帖子]

以下是引用lxhmax在2012-9-23 19:44:00的发言:
对于选定区域执行下面代码还不是很懂,麻烦高手帮忙看下要怎么改~谢谢啦!


Tables("检测流程流转记录表").StopRedraw
Dim Arys As List(Of String())
Arys = DataTables("样品信息").GetUniqueValues("样品编号 is not null","样品编号","检测项目")
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("检测项目").GetUniqueValues("加载流转项目 = '" & Values(i) & "'", "检测项目","检测依据","检测部门","报价费用","费用说明")
        For Each Ary1 As String() In Arys1
            Dim dr As DataRow
            dr = DataTables("检测流程流转记录表").Find("样品编号 = '" & Ary(0) & "' and 加载流转项目 = '" & Values(i) & "'")
            If dr Is Nothing Then
                Dim r As Row = Tables("检测流程流转记录表").AddNew()
                r("样品编号") = Ary(0)
                r("加载流转项目") = Values(i)
                r("检测项目") = Ary1(0)
                r("检测依据") = Ary1(1)
                r("检测部门") = Ary1(2)
                r("报价费用") = Ary1(3)
                r("费用说明") = Ary1(4)
            End If
        Next
    Next
Next
Tables("检测流程流转记录表").ResumeRedraw
这个问题麻烦各位再帮我看看~谢谢啦~


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/24 11:26:00 [显示全部帖子]

非常感谢你给我这么多的帮助~

 回到顶部