以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据的分列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23641)

--  作者:jackchen
--  发布时间:2012/9/15 9:42:00
--  数据的分列

请问下

    我现在需要像EXCEL一样,把一个长的数据串分成几个数据,比如

  公司_部门_业务员_客户_工厂名 ,要切分成几列,公司一列,部门一列..... 我用excel的分列功能,只要设置"_"是分隔符,就可以很容易得到这些,但是我想知道在foxtable中如何实现??


--  作者:lin_hailun
--  发布时间:2012/9/15 9:47:00
--  
 狐表暂时没有这种功能!需要自己编码完成......
--  作者:jackchen
--  发布时间:2012/9/15 10:15:00
--  
谢谢,我知道是要编程,但是这个表达式怎么写,
--  作者:lin_hailun
--  发布时间:2012/9/15 10:40:00
--  
感觉用比价麻烦,还是做了个小例子。

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



[此贴子已经被作者于2012-9-15 10:41:51编辑过]

--  作者:jackchen
--  发布时间:2012/9/15 11:55:00
--  

多谢,但是好复杂啊, 看了蛮久,你是用一个数组来计算,但是我现在是想在输入数据的时候,用

DataColChanged 这个参数,直接运算出来,所以不用针对一个数组,只要对一个字符串计算就好了, 从每行的字符串中得到对应的值,并且也不需要创建新的行,数据表中已经创建好的,只要运算后填充就可以了,请帮忙再看看

  

 

 


--  作者:lin_hailun
--  发布时间:2012/9/15 14:21:00
--  
 哦哦,原来是这样。希望在一列里输入,然后自动填充到各列。

 If e.DataCol.Name = "拆分列" Then
    Dim val As String = e.DataRow(e.DataCol.Name)
    Dim ary() As String = val.Split("_")
    Dim count As Integer = 1
    If count > ary.Length Then
        Return
    End If
    e.DataRow("列1") = ary(0)
    count = count + 1
    If count > ary.Length Then
        Return
    End If
    e.DataRow("列2") = ary(1)
    count = count + 1

    \'以此类推
End If

--  作者:jackchen
--  发布时间:2012/9/15 22:32:00
--  

实在感谢,解决大问题了