以文本方式查看主题

-  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=59441)

--  作者:lshshlxsh
--  发布时间:2014/11/4 14:11:00
--  [求助]优化代码速度
以下代码能正常执行,但就是速度太慢,如果有200条数据的话要执行好几分钟,请教老师,帮我优化一下      

  For Each dr As DataRow In DataTables("表D").Datarows   
            For Each dc As DataCol In DataTables("表D").DataCols
                Dim gx As String
                gx=dc.name
                
                If gx <>"姓名" And gx <>"单据编号" And gx <> "员工编号" And  gx <> "生产任务单号" Then
                    If dr(gx) > 0 And dr("姓名") <> "可申报最大数量" Then
                        dr(gx) = math.Floor( dr(gx) * 10000) / 10000 \'取小数位前四位
                        Dim dr1 As DataRow = DataTables("工资明细表").Addnew
                        dr1("生产任务单号") = scrwdh.Value
                        dr1("单据编号") = dr("单据编号")
                        dr1("员工编号") = dr("员工编号")
                        dr1("工序名称") = gx
                        dr1("数量") = dr(gx)
                        dr1("销售订单号") = xsddh.Value
                        dr1("产品名称") = cpmc.Value
                        dr1("工资日期") = gzrq.Value
                        dr1("单据类型") = djlx.Value
                        dr1("工资所属车间") = cjmc.Value
                        dr1("制单时间") = zdsj.Value 
                    End If
                End If
            Next
        Next


--  作者:Bin
--  发布时间:2014/11/4 14:16:00
--  
上个例子方便测试.
--  作者:有点甜
--  发布时间:2014/11/4 14:29:00
--  

 说明你的逻辑,你原本想做什么的?

 

 


--  作者:lshshlxsh
--  发布时间:2014/11/4 14:55:00
--  
将一张表的内容写到另一张表,表D的列名, 写到了工资明细表 工序名称字段 ,数量也就写到数量字段 
--  作者:有点甜
--  发布时间:2014/11/4 14:59:00
--  

 如果你执行的结果是正确的,遍历肯定会慢。

 

 最多控制一下刷新

 

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

 


--  作者:y2287958
--  发布时间:2014/11/4 15:12:00
--  
上例子吧
肯定会另有方法的

--  作者:有点甜
--  发布时间:2014/11/4 15:17:00
--  

 这个应该是没办法的,200行,如果有20列的话,就相当于增加4000行数据了

 

 但是几分钟也就太慢了。看5楼,再试试这个 http://www.foxtable.com/help/topics/2218.htm

 


--  作者:lshshlxsh
--  发布时间:2014/11/4 15:24:00
--  




图片点击可在新窗口打开查看

上图为表D
下图为工资明细表


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


[此贴子已经被作者于2014-11-5 8:08:34编辑过]

--  作者:有点甜
--  发布时间:2014/11/4 15:26:00
--  
 看楼上
--  作者:lshshlxsh
--  发布时间:2014/11/4 15:29:00
--  
我是指插入后总数据有240多条吧,需要3分钟左右