Foxtable(狐表)用户栏目专家坐堂 → [求助]优化代码速度


  共有3965人关注过本帖树形打印复制链接

主题:[求助]优化代码速度

帅哥哟,离线,有人找我吗?
lshshlxsh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
[求助]优化代码速度  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/4 14:16:00 [只看该作者]

上个例子方便测试.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 14:29:00 [只看该作者]

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

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/11/4 14:55:00 [只看该作者]

将一张表的内容写到另一张表,表D的列名, 写到了工资明细表 工序名称字段 ,数量也就写到数量字段 

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 14:59:00 [只看该作者]

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

 

 最多控制一下刷新

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/11/4 15:12:00 [只看该作者]

上例子吧
肯定会另有方法的

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 15:17:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/11/4 15:24:00 [只看该作者]





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

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


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


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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 15:26:00 [只看该作者]

 看楼上

 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/11/4 15:29:00 [只看该作者]

我是指插入后总数据有240多条吧,需要3分钟左右

 回到顶部
总数 19 1 2 下一页