Foxtable(狐表)用户栏目专家坐堂 → 下列代码能优化吗?


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

主题:下列代码能优化吗?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 21:50:00 [显示全部帖子]


前面的if可以看看帮助中的Select Case语句
后面的代码好怪,给文件看看。


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 23:50:00 [显示全部帖子]

Dim s As Date = Date.Now()
Dim t As New DataTableBuilder("temp") '创建临时表
t.AddDef("字符", GetType(String), 32)
t.TableVisible = false
t.Build()
DataTables("统计").DataRows.Clear()
For i As integer = 1 to 10
    dim f As New Filler
    f.SourceTable = DataTables("自由统计数据二") '指定数据来源
    f.SourceCols = "姓名" & i '指定数据来源列
    f.DataTable = DataTables("temp") '指定数据接收表
    f.DataCols = "字符" '指定数据接收列
    f.Distinct = false
    f.Fill() '填充数据
Next
dim f1 As New Filler
f1.SourceTable = DataTables("temp") '指定数据来源
f1.DataTable = DataTables("统计") '指定数据接收表
f1.ExcludeNullValue = true
f1.Fill() '填充数据
For Each dr As DataRow In DataTables("统计").DataRows
    Dim sum As Integer = 0
    For i As integer = 1 to 10
        sum = sum + DataTables("自由统计数据二").Compute("sum(数据" & i & ")", "姓名" & i & " = '" & dr("字符") & "'")
        dr("出现次数") = sum
    Next
Next
Messagebox.Show("处理完毕! 耗时: " & (Date.Now -s).TotalSeconds)

[此贴子已经被作者于2009-12-19 23:52:46编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/20 0:27:00 [显示全部帖子]

这个代码比上一段好一点。

Dim s As Date = Date.Now()
Dim t As New DataTableBuilder("temp") '创建临时表
t.AddDef("字符", GetType(String), 32)
t.AddDef("出现次数", GetType(Integer), 32)
t.TableVisible = false
t.Build()
DataTables("统计").DataRows.Clear()
For i As integer = 1 to 10
    dim f As New Filler
    f.SourceTable = DataTables("自由统计数据二") '指定数据来源
    f.SourceCols = "姓名" & i & "," & "数据" & i '指定数据来源列
    f.DataTable = DataTables("temp") '指定数据接收表
    f.DataCols = "字符,出现次数" '指定数据接收列
    f.Distinct = false
    f.Filter = "姓名" & i & " Is Not Null"
    f.Fill() '填充数据
Next
dim f1 As New Filler
f1.SourceTable = DataTables("temp") '指定数据来源
f1.DataTable = DataTables("统计") '指定数据接收表
f1.Fill() '填充数据
For Each dr As DataRow In DataTables("统计").DataRows
    dr("出现次数") = DataTables("temp").Compute("sum(出现次数)", "[字符]  = '" & dr("字符") & "'")
Next
Messagebox.Show("处理完毕! 耗时: " & (Date.Now -s).TotalSeconds)
[此贴子已经被作者于2009-12-20 0:28:24编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/20 11:57:00 [显示全部帖子]

这种组合字符串没有定律,看你习惯怎样写了。

 回到顶部