以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  复制行内容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19798)

--  作者:wilson
--  发布时间:2012/5/21 22:19:00
--  复制行内容

我想复制 统计窗口_Table1 的所有行内容 到计划表  ,请老师帮我修改一下。谢谢

 

Dim r As Row = Tables("统计窗口_Table1").Current
Dim dr As DataRow  = DataTables("计划表").Find("产品型号 = \'" & r("产品型号") & "\' And 数量 = \'"  & r("需求数量") & "\'")
If dr Is Nothing Then
    dr = DataTables("计划表").Find("产品型号 Is NUll And 产品型号 Is NuLL")
    If dr Is Nothing Then
        dr = DataTables("计划表").AddNew
    End If
    dr("产品型号") = r("产品型号")
    dr("数量") = r("需求数量")
    dr("下单员") = user.name
    dr("下单日期") = Date.today
End If

 

 


--  作者:狐狸爸爸
--  发布时间:2012/5/22 8:42:00
--  

Dim dr As DataRow = DataTables("计划表").Find("产品型号 = \'" & r("产品型号") & "\' And 数量 = \'" & r("需求数量") & "\'")

 

改为:

 

Dim dr As DataRow = DataTables("计划表").Find("产品型号 = \'" & r("产品型号") & "\' And 数量 =" & r("需求数量"))

 

建议看看:

http://www.foxtable.com/help/topics/1284.htm

 


--  作者:wilson
--  发布时间:2012/5/22 10:00:00
--  
非常感谢狐爸对我的帮助与支持
--  作者:wilson
--  发布时间:2012/5/22 22:08:00
--  

狐爸我按照你的修改后还是不好用。

我又把它改为以下代码,能用,但是太慢了就相爬蜗牛一样,3000行用了30几秒时间。

求助有没更好的代码,谢谢!!!

 

For Each dr1 As DataRow In DataTables("统计窗口_Table1").DataRows
    If dr1("产品型号") <> Nothing Then
        Dim dr2 As DataRow = DataTables("计划表").Addnew()
       For Each dc As DataCol In DataTables("计划表").DataCols

    dr("产品型号") = r("产品型号")
    dr("数量") = r("需求数量")
    dr("下单员") = user.name
    dr("下单日期") = Date.today

        Next
    End If
Next

--  作者:程兴刚
--  发布时间:2012/5/22 22:32:00
--  

For Each r As Row in Tables("统计窗口_Table1").Rows

    Dim dr As DataRow = DataTables("计划表").Addnew()

    dr("产品型号") = r("产品型号")
    dr("数量") = r("需求数量")
    dr("下单员") = user.name
    dr("下单日期") = Date.today
next

 

您多绕弯子了吧,那样的话您的代码多执行(cols-1)× rows遍,自然像蜗牛了,效率极低!


--  作者:程兴刚
--  发布时间:2012/5/22 22:33:00
--  

这样也可以:

 

Dim dr As DataRow

For Each r As Row in Tables("统计窗口_Table1").Rows

    dr = DataTables("计划表").Addnew()

    dr("产品型号") = r("产品型号")
    dr("数量") = r("需求数量")
    dr("下单员") = user.name
    dr("下单日期") = Date.today
next


--  作者:狐狸爸爸
--  发布时间:2012/5/23 7:59:00
--  

For Each r As DataRow in DataTables("统计窗口_Table1").Select("产品型号 Is Not Null")

     Dim dr As DataRow = DataTables("计划表").Addnew()

     dr("产品型号") = r("产品型号")
     dr("数量") = r("需求数量")
    dr("下单员") = user.name
    dr("下单日期") = Date.today
next


--  作者:wilson
--  发布时间:2012/5/23 19:45:00
--  

谢谢狐爸,你的这段代码比原先的快多了,同时也谢谢程版