Foxtable(狐表)用户栏目专家坐堂 → 执行速度很慢,请老师优化!


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

主题:执行速度很慢,请老师优化!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/8 17:13:00 [显示全部帖子]

传表,说明设计目的设计思路。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/9 8:06:00 [显示全部帖子]

感觉你是怎么慢就怎么来,你这样写,速度比正常速度慢了何止千倍万倍。

下面是正常的代码:

 

Select Case e.DataCol.Name
    Case "文化程度"
        Select Case e.NewValue
            Case "CZ","XX"
                e.DataRow("文化程度1") = 0
            Case "AA"
                e.DataRow("文化程度1") = 12
            Case "AB"
                e.DataRow("文化程度1") = 10
            Case "CCC"
                e.DataRow("文化程度1") = 8
            Case "VF" ,"AK"
                e.DataRow("文化程度1") = 6
            Case "BK"
                e.DataRow("文化程度1") = 4
        End Select
    Case "等级"
        Select Case e.NewValue
            Case "A"
                e.DataRow("等级1") = 13
            Case "B"
                e.DataRow("等级1") = 10
            Case "C"
                e.DataRow("等级1") = 8
            Case "D"
                e.DataRow("等级1") = 6
        End Select
    Case "专业"
        Select Case e.NewValue
            Case "AA"
                e.DataRow("专业1") = 12
            Case "BB"
                e.DataRow("专业1") = 10
            Case "CC"
                e.DataRow("专业1") = 6
        End Select
End Select
If (e.DataCol.name="文化程度" Or e.DataCol.name="等级" Or e.DataCol.name="专业") And e.DataRow.IsNull("姓名") = False Then
    Dim dr As DataRow = e.DataRow
    dr("maxl")=math.max(math.max(dr("专业1"),dr("等级1")),dr("文化程度1"))
End If

 

建议你细看开发指南中的《编程基础》和《foxtable编程》这两章,当然《使用指南》也必须看透,因为会用是开发的基础。

[此贴子已经被作者于2011-11-9 8:08:19编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/9 8:09:00 [显示全部帖子]

看7楼

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/9 8:22:00 [显示全部帖子]

我的代码只处理修改的行,Replace处理所有的行,执行15次Replace,就等于所有行处理了15次。

如果是1000行,我的代码只处理修改的这一行,你的代码处理了15000行次,你说速度相差有多远?


 回到顶部