以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]批量复制  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=29022)

--  作者:xvkewen
--  发布时间:2013/2/26 0:29:00
--  [求助]批量复制
具体案例请看附件:

点击“复制订单”按钮,就可以复制订单信息及订单明细,我想将新增的订单号自动修改成指定的新订单号;主要实现的功能是:拷贝历史数据,生成一个新单号;

现在的问题是怎么自动修改新拷贝的订单号?请帮帮忙呀

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:批量复制.zip



--  作者:狐狸爸爸
--  发布时间:2013/2/26 8:22:00
--  
Dim r1 As Row = Tables("办单信息").Current
Dim r2 As Row = Tables("办单信息").AddNew
For Each c As Col In Tables("办单信息").Cols
    If c.name <> "PO号" Then
        r2(c.name) = r1(c.name)
    End If
Next

--  作者:xvkewen
--  发布时间:2013/2/26 9:44:00
--  

谢谢狐爸,不过这种做法并没有解决复制对应明细的功能呀。原先复制明细是用新增行的订单号做为条件复制的,现在订单号为空,若还要订单号做为条件复制该怎么做呢??


--  作者:狐狸爸爸
--  发布时间:2013/2/26 10:09:00
--  

这样就可以了:

 

 

Dim r1 As Row = Tables("办单信息").Current
Dim r2 As Row = Tables("办单信息").AddNew
For Each c As Col In Tables("办单信息").Cols
    If c.name <> "PO号" Then
        r2(c.name) = r1(c.name)
    End If
Next
Dim val As String =DataTables("办单信息").Compute("Max(PO号)")
val = val.SubString(2)
r2("PO号") = "R-" & cint(val+1)
For Each dr1 As DataRow In r1.DataRow.GetChildRows("办单物料明细表")
    Dim dr2 As DataRow = DataTables("办单物料明细表").AddNew()
    For Each dc As DataCol In DataTables("办单物料明细表").DataCols
        If dc.name <> "办单号" Then
            dr2(dc.name) = dr1(dc.name)
        End If
        dr2("办单号") = r2("PO号")
    Next
Next


--  作者:xvkewen
--  发布时间:2013/2/26 10:50:00
--  

谢谢狐爸,问题解决了;