以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  这个表达式列该怎么写  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30612)

--  作者:wuxianzuoji41
--  发布时间:2013/3/31 23:48:00
--  这个表达式列该怎么写
A列为"a9963321 北京某公司",需要通过表达式形成B列为a996334,C列为北京某公司。也就是把A列通过中间的空格分成B 和C哪个老师指导一下着急用的谢谢
--  作者:ljz
--  发布时间:2013/4/1 0:11:00
--  
Dim Parts1() As String = CurrentTable.Current("第一列").Split(" ")
For j As Integer = 0 To Parts1.Length - 1
CurrentTable.Current("第二列")=Parts1(0)
CurrentTable.Current("第三列")=Parts1(1)
next

--  作者:晕了快扶我
--  发布时间:2013/4/1 0:13:00
--  

Dim a As String  = "a9963321 北京某公司"
Dim Values() As String
Values=a.Split(" ")
Dim Index As Integer = Values.Length
 Output.Show(Values(0))

在命令窗口里执行


--  作者:wuxianzuoji41
--  发布时间:2013/4/1 16:31:00
--  

ljz,这个代码放在什么地方


--  作者:泡泡
--  发布时间:2013/4/1 16:48:00
--  
命令窗口里
--  作者:wuxianzuoji41
--  发布时间:2013/4/1 16:51:00
--  
泡泡,A列有1万多行,每个行都是这么个模式,但是代码和公司名称不同,这个房在窗口里是处理哪行的呀,还是所有的行
--  作者:XYT
--  发布时间:2013/4/1 17:03:00
--  

在表的afterload应该可以。


--  作者:wuxianzuoji41
--  发布时间:2013/4/1 20:10:00
--  
我把他放在了afterload里,整个只有一行拆分成指定的字段,其他的都没有拆分
--  作者:ahbzczy
--  发布时间:2013/4/1 22:33:00
--  

表的datacolchanged事件中

if e.datacol.name = "A列"

dim dr as datarow = e.datarow

if dr.isnull("A列") then

  dr("B列") = nothing

  dr("C列") = nothing

else

  dr("B列") = dr("A列").split(" ")(0)

  dr("C列") = dr("A列").split(" ")(1)

end if

end if


--  作者:狐狸爸爸
--  发布时间:2013/4/2 9:00:00
--  

做个按钮,或者在命令窗口执行一次:

 

For Each dr As DataRow In DataTables("表A").DataRows
    Dim vals() As String = dr("第一列").split(" ")
    If vals.Length = 2 Then
        dr("第二列") = vals(0)
        dr("第三列") = vals(1)
    End If
Next