Foxtable(狐表)用户栏目专家坐堂 → [求助]一列拆分成多列代码


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

主题:[求助]一列拆分成多列代码

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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
[求助]一列拆分成多列代码  发帖心情 Post By:2014/10/26 20:34:00 [只看该作者]

请求前辈老师们帮写个一列拆分成多列的代码,如:A列拆分成B列、C列、D列,具体情况看项目,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:一列拆分多列.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 20:49:00 [只看该作者]

 datacolchanged,代码,你这种情况是不好判断的,必须有规律才能拆分的。

 

If e.DataCol.Name = "A" Then
    If e.NewValue = Nothing Then
        e.DataRow("B") = Nothing
        e.DataRow("C") = Nothing
        e.DataRow("D") = Nothing
    Else
        Dim chars() As Char = {"/", "-"}
        Dim ary() As String = e.NewValue.split(Chars)
       
        For i As Integer = 0 To ary.Length - 1
            If ary(i).EndsWith("省") OrElse ary(i).Contains("上海") Then
                e.DataRow("B") = ary(i)
            Else If ary(i).EndsWith("市") OrElse ary(i).EndsWith("区") Then
                e.DataRow("C") = ary(i)
            Else If ary(i).EndsWith("县") OrElse ary(i).EndsWith("路") Then
                e.DataRow("D") = ary(i)
            End If
        Next
    End If
End If


 回到顶部
帅哥,在线噢!
y2287958
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4734 积分:34468 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/10/26 20:54:00 [只看该作者]

For Each dr As DataRow In DataTables("表A").DataRows
    If dr.IsNull("A") = False
        dr("B") = dr("A").split("/")(0)
        If dr("A").split("/")(1).contains("-")
            dr("C") = dr("A").split("/")(1).split("-")(0)
            dr("D") = dr("A").split("/")(1).split("-")(1)
        Else
            dr("C") = Nothing
            dr("D") = dr("A").split("/")(1).split("-")(0)
        End If
    Else
        dr("B") = Nothing
        dr("C") = Nothing
        dr("D") = Nothing       
    End If
Next

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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/10/26 21:13:00 [只看该作者]

谢谢老师!

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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/10/26 21:29:00 [只看该作者]

再请教两位老师,如果A列是:上海市杨浦区军工路,拆分成:B列是上海市,C列是杨浦区,D列是军工路,那代吗怎么写呢?谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 21:33:00 [只看该作者]

 

[此贴子已经被作者于2014-10-26 21:37:30编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 21:37:00 [只看该作者]

 改一下

 

If e.DataCol.Name = "A" Then
    If e.NewValue = Nothing Then
        e.DataRow("B") = Nothing
        e.DataRow("C") = Nothing
        e.DataRow("D") = Nothing
    Else
        Dim chars() As Char = {"/", "-"}
        Dim ary() As String = e.NewValue.replace("市","市/").replace("区", "区/").replace("路", "路").split(Chars)
       
        For i As Integer = 0 To ary.Length - 1
            If ary(i).EndsWith("省") OrElse ary(i).Contains("上海") Then
                e.DataRow("B") = ary(i)
            Else If ary(i).EndsWith("市") OrElse ary(i).EndsWith("区") Then
                e.DataRow("C") = ary(i)
            Else If ary(i).EndsWith("县") OrElse ary(i).EndsWith("路") Then
                e.DataRow("D") = ary(i)
            End If
        Next
    End If
End If


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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/10/26 21:57:00 [只看该作者]

老师刚才我试了一下,有点不行,还请再帮忙修改一下,我把这个项目再传上,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:一列拆分多列a.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 23:29:00 [只看该作者]

If e.DataCol.Name = "A" Then
    If e.NewValue = Nothing Then
        e.DataRow("B") = Nothing
        e.DataRow("C") = Nothing
        e.DataRow("D") = Nothing
    Else
        Dim chars() As Char = {"/", "-"}
        Dim ary() As String = e.NewValue.replace("省","省/").replace("市","市/").replace("区", "区/").replace("路", "路").split(Chars)
       
        For i As Integer = 0 To ary.Length - 1
            If ary(i).EndsWith("省") OrElse ary(i).Contains("上海") Then
                e.DataRow("B") = ary(i)
            Else If ary(i).EndsWith("市") OrElse ary(i).EndsWith("区") Then
                e.DataRow("C") = ary(i)
            Else If ary(i).EndsWith("县") OrElse ary(i).EndsWith("路") Then
                e.DataRow("D") = ary(i)
            End If
        Next
    End If
End If

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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/10/27 6:45:00 [只看该作者]

谢谢老师!但是我有点搞不懂,上面y2287958老师的代码刚开始试了还好,可是过了一会怎么试就是不行,不知为什么?

 回到顶部
总数 12 1 2 下一页