以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  型号拆分  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119708)

--  作者:yangwenghd
--  发布时间:2018/5/30 16:18:00
--  型号拆分
怎么把型号的数据如何拆分啊,
比如型号是 WMNG160408-CF,分别把字母的每一个拆分到每列,数字两位为一列,“-”后面的单独为一列,感谢 感谢 就像图片那样

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180530161458.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/5/30 16:23:00
--  

If e.DataCol.name = "产品型号" Then
    If e.NewValue = "" Then
        e.DataRow("列1") = Nothing
        e.DataRow("列2") = Nothing
        e.DataRow("列3") = Nothing
    Else
        Dim ary() As String = e.newvalue.split("-")
        e.DataRow("列1") = ary(0)(0)
        e.DataRow("列2") = ary(0)(1)
        e.DataRow("列3") = ary(1)
    End If
End If

[此贴子已经被作者于2018/5/30 16:40:42编辑过]

--  作者:yangwenghd
--  发布时间:2018/5/30 16:39:00
--  
感谢 感谢 
为什么分解到数字为两位的时候会出错呢,
感谢 感谢 
If e.DataCol.name = "产品型号" Then
    If e.NewValue = "" Then
        e.DataRow("产品_参数A") = Nothing
        e.DataRow("产品_参数B") = Nothing
        e.DataRow("产品_参数C") = Nothing
        e.DataRow("产品_参数D") = Nothing
        e.DataRow("产品_参数E") = Nothing
        e.DataRow("产品_参数F") = Nothing
        \'e.DataRow("产品_参数G") = Nothing
        \'e.DataRow("产品_参数H") = Nothing
        \'e.DataRow("产品_参数I") = Nothing
    Else
        Dim ary() As String = e.newvalue.split("-")
        e.DataRow("产品_参数A") = ary(0)(0)
        e.DataRow("产品_参数B") = ary(0)(1)
        e.DataRow("产品_参数C") = ary(0)(2)
        e.DataRow("产品_参数D") = ary(0)(3)
        e.DataRow("产品_参数E") = ary(4)(5)
    End If
End If

--  作者:有点甜
--  发布时间:2018/5/30 16:41:00
--  

e.DataRow("产品_参数E") = ary(0).substring(4,2)

e.DataRow("产品_参数F") = ary(0).substring(6,2)

 

e.DataRow("产品_参数H") = ary(1)


--  作者:有点甜
--  发布时间:2018/5/30 16:42:00
--  

如果你型号不固定,需要额外编写代码,请上传具体例子。


--  作者:yangwenghd
--  发布时间:2018/5/31 16:44:00
--  
If e.DataCol.name = "产品型号" Then
    If e.NewValue = "" Then
        e.DataRow("产品_参数A") = Nothing
        e.DataRow("产品_参数B") = Nothing
        e.DataRow("产品_参数C") = Nothing
        e.DataRow("产品_参数D") = Nothing
        e.DataRow("产品_参数E") = Nothing
        e.DataRow("产品_参数F") = Nothing
        e.DataRow("产品_参数G") = Nothing
        e.DataRow("产品_参数H") = Nothing
        \'e.DataRow("产品_参数I") = Nothing
    Else
        Dim ary() As String = e.newvalue.split("-")
        e.DataRow("产品_参数A") = ary(0)(0)
        e.DataRow("产品_参数B") = ary(0)(1)
        e.DataRow("产品_参数C") = ary(0)(2)
        e.DataRow("产品_参数D") = ary(0)(3)
        e.DataRow("产品_参数E") = ary(0).substring(4,2)
        e.DataRow("产品_参数F") = ary(0).substring(6,2)
        e.DataRow("产品_参数G") = ary(0).substring(8,2)
        e.DataRow("产品_参数H") = ary(1)
    End If
End If

为什么把这个写到按钮里面不可以呢,感谢 感谢 


--  作者:有点甜
--  发布时间:2018/5/31 16:48:00
--  
Dim r As Row = Tables("表A").current
If r("产品型号") = "" Then
    r("产品_参数A") = Nothing
    r("产品_参数B") = Nothing
    r("产品_参数C") = Nothing
    r("产品_参数D") = Nothing
    r("产品_参数E") = Nothing
    r("产品_参数F") = Nothing
    r("产品_参数G") = Nothing
    r("产品_参数H") = Nothing
    \'r("产品_参数I") = Nothing
Else
    Dim ary() As String =  r("产品型号") .split("-")
    r("产品_参数A") = ary(0)(0)
    r("产品_参数B") = ary(0)(1)
    r("产品_参数C") = ary(0)(2)
    r("产品_参数D") = ary(0)(3)
    r("产品_参数E") = ary(0).substring(4,2)
    r("产品_参数F") = ary(0).substring(6,2)
    r("产品_参数G") = ary(0).substring(8,2)
    r("产品_参数H") = ary(1)
End If

--  作者:yangwenghd
--  发布时间:2018/5/31 17:48:00
--  
感谢 感谢 可以是所有行吗?感谢 感谢 
--  作者:有点甜
--  发布时间:2018/5/31 17:58:00
--  
For Each r As Row In Tables("表A").rows
    If r("产品型号") = "" Then
        r("产品_参数A") = Nothing
        r("产品_参数B") = Nothing
        r("产品_参数C") = Nothing
        r("产品_参数D") = Nothing
        r("产品_参数E") = Nothing
        r("产品_参数F") = Nothing
        r("产品_参数G") = Nothing
        r("产品_参数H") = Nothing
        \'r("产品_参数I") = Nothing
    Else
        Dim ary() As String =  r("产品型号") .split("-")
        r("产品_参数A") = ary(0)(0)
        r("产品_参数B") = ary(0)(1)
        r("产品_参数C") = ary(0)(2)
        r("产品_参数D") = ary(0)(3)
        r("产品_参数E") = ary(0).substring(4,2)
        r("产品_参数F") = ary(0).substring(6,2)
        r("产品_参数G") = ary(0).substring(8,2)
        r("产品_参数H") = ary(1)
    end if
next