以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]数据处理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91505)

--  作者:xietan417
--  发布时间:2016/10/12 12:06:00
--  [求助]数据处理

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

如图所示,我要根据表里PCS的数量来重新生成一个表
如第一条PCS的数量为30 ,那么新的数量表就是
BARCODE      SO-NO        CODE    

A1001          NP1906B     010158     
A1002          NP1906B     010158
A1003          NP1906B     010158
A1004          NP1906B     010158
A1005          NP1906B     010158
......
A1030          NP1906B     010158


这个怎么处理啊!整个表里的数据都生成在同一个表
[此贴子已经被作者于2016/10/12 12:07:20编辑过]

--  作者:xietan417
--  发布时间:2016/10/12 14:55:00
--  
蓝版帮看看啦!
--  作者:有点蓝
--  发布时间:2016/10/12 15:37:00
--  
Dim count As Integer = Tables("表A").Rows.Count
Dim r As Row
Dim dr As DataRow
DataTables("表A").StopRedraw
Dim bh As String
For i As Integer = 0 To count -1
    r = Tables("表A").Rows(i)
    If r.IsNull("PCS") = False Then
        bh = r("BARCODE").SubString(0,r("BARCODE").length - 3)
        For j As Integer = 2 To r("PCS")
            dr = DataTables("表A").AddNew
            dr("BARCODE") = bh & cstr(j).PadLeft(3,"0")
            dr("SO-NO") = r("SO-NO")
        Next
    End If
Next
DataTables("表A").ResumeRedraw

--  作者:xietan417
--  发布时间:2016/10/12 15:45:00
--  
Dim rs As Integer =  DataTables("出库扫描").DataRows.Count
For n As Integer = 0 To rs - 1
    Dim dr As Row = Tables("出库扫描").Rows(n)
    For m As Integer = 1 To dr("PCS")
        Dim r As Row = Tables("bsc").AddNew()
        Dim s As String = Tables("出库扫描").Rows(n)("BARCODE")
        Dim code As String = System.Text.RegularExpressions.Regex.Match(s,"[0-9.]+").ToString()
        Dim zm As String = System.Text.RegularExpressions.Regex.Match(s,"[a-zA-Z]+").ToString()
        
            r("BARCODE") = zm & code + m -1
            r("SO-NO") = dr("SONO")
            r("CODE") =dr("CODE")
            r("ITEM") = dr("ITEM")
    Next
Next

我这样写了!好像可以用!

--  作者:有点蓝
--  发布时间:2016/10/12 16:04:00
--  
能用就行