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


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

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

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


加好友 发短信
等级:婴狐 帖子:55 积分:626 威望:0 精华:0 注册:2010/7/11 23:30:00
执行速度很慢,请老师优化!  发帖心情 Post By:2011/11/8 17:09:00 [显示全部帖子]

烦请优化:

 

If (e.DataCol.name="文化程度" Or e.DataCol.name="等级" Or e.DataCol.name="专业") And e.DataRow("姓名")<>Nothing
With  DataTables("人员基本信息表")
.ReplaceFor("文化程度1", 0,"[姓名]<>'  '")
      .ReplaceFor("文化程度1", 12,"[文化程度] = 'AA'")
      .ReplaceFor("文化程度1", 10,"[文化程度] = 'AB'")
      .ReplaceFor("文化程度1", 8,"[文化程度] = 'CCC'")
      .ReplaceFor("文化程度1", 6,"[文化程度] = 'VF'")
      .ReplaceFor("文化程度1", 6,"[文化程度] = 'AK'")
      .ReplaceFor("文化程度1", 4,"[文化程度] = 'BK'")
      .ReplaceFor("文化程度1", 0,"[文化程度] = 'CZ'")
      .ReplaceFor("文化程度1", 0,"[文化程度] = 'XX'")

.ReplaceFor("等级1", 0,"[姓名]<>'  '")
      .ReplaceFor("等级1", 13,"[等级] = 'A'")
      .ReplaceFor("等级1", 10,"[等级] = 'B'")
      .ReplaceFor("等级1", 8,"[等级] = 'C'")
      .ReplaceFor("等级1", 6,"[等级] = 'D'")

.ReplaceFor("专业1", 0,"[姓名]<>'  '")
      .ReplaceFor("专业1", 12,"[专业] = 'AA'")
      .ReplaceFor("专业1", 10,"[专业] = 'BB'")
      .ReplaceFor("专业1", 6,"[专业] = 'CC'")

End With

Dim dr As DataRow=e.DataRow
dr("maxl")=math.max(math.max(dr("专业1"),dr("等级1")),dr("文化程度1"))

End If

 

慢的原因是?谢谢!


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


加好友 发短信
等级:婴狐 帖子:55 积分:626 威望:0 精华:0 注册:2010/7/11 23:30:00
  发帖心情 Post By:2011/11/8 17:39:00 [显示全部帖子]

根据文化程度、等级、专业的分类赋予文化程度1、等级1、专业1相应的值,并求出文化程度1、等级1、专业1的最大值。谢谢!

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


加好友 发短信
等级:婴狐 帖子:55 积分:626 威望:0 精华:0 注册:2010/7/11 23:30:00
  发帖心情 Post By:2011/11/8 19:06:00 [显示全部帖子]

以下是引用20090530在2011-11-8 17:39:00的发言:
根据文化程度、等级、专业的分类赋予文化程度1、等级1、专业1相应的值,并求出文化程度1、等级1、专业1的最大值。谢谢!

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


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


加好友 发短信
等级:婴狐 帖子:55 积分:626 威望:0 精华:0 注册:2010/7/11 23:30:00
  发帖心情 Post By:2011/11/9 8:06:00 [显示全部帖子]

附件如下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:863.table


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


加好友 发短信
等级:婴狐 帖子:55 积分:626 威望:0 精华:0 注册:2010/7/11 23:30:00
  发帖心情 Post By:2011/11/9 8:18:00 [显示全部帖子]

您的是很快,我当初也用select case就是没您的简化:

 

If (e.DataCol.name="xl" Or e.DataCol.name="dj" Or e.DataCol.name="zc") And e.DataRow("xm") <> Nothing
  Dim dr As String
  dr= trim(e.DataRow("xl"))

  Dim dj As String
  dj= trim(e.DataRow("dj"))

  Dim zc As String
  zc= trim(e.DataRow("zc"))

  Dim pp As DataRow=e.DataRow

  Select Case dr
    Case "高中"
      e.DataRow("xl1")=1
    Case "初中"
      e.DataRow("xl1")=2
    Case Else
      e.DataRow("xl1")=0
  End Select

  Select Case dj
    Case "高级"
      e.DataRow("dj1")=1
    Case "初中"
      e.DataRow("dj1")=2
    Case Else
      e.DataRow("dj1")=0
  End Select

  Select Case zc
    Case "高级"
      e.DataRow("zc1")=1
    Case "初中"
      e.DataRow("zc1")=2
    Case Else
    e.DataRow("zc1")=0
  End Select

pp("maxl") = math.max( math.max(pp("xl1"),pp("dj1")),pp("zc1"))
End If

 

 

因记录少,没比较速度,我后面想replacefor 类似于foxpro的replace,就改用了replacefor ,请教速度慢的原因?


 回到顶部