以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码速速优化,现在速度非常慢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59516)

--  作者:建筑人生
--  发布时间:2014/11/5 18:37:00
--  代码速速优化,现在速度非常慢

现在一万行数据要1分钟,太慢了,主要时间应该在Tables("临时表").AddNew 上面,那怎么样才能判断有多少据的行,及有效数据列的总行数

 

SystemReady = False  \'关闭刷新
Try
    DataTables("临时表").DataRows.Clear   \'先清空临时表
    For Each r As Row In Tables("电气工程量").Rows  \'遍历电气工程量的各行
        If r.IsNull("电线_规格1") = False Then   \'先判断型号1是否为空
            Dim r1 As Row = Tables("临时表").AddNew
            r1("单项工程名称") = r("单项工程名称")
            r1("单位工程名称") = r("单位工程名称")
            r1("分项工程名称") = r("分项工程名称")
           
            r1("型号规格") = r("电线_规格1")
            r1("清单数量") = r("清单_电线1合计")
            r1("定额数量") = r("定额_电线1合计")
        End If
        If r.IsNull("电线_规格2") = False Then   \'先判断型号2是否为空
            Dim r2 As Row = Tables("临时表").AddNew
           
            r2("单项工程名称") = r("单项工程名称")
            r2("单位工程名称") = r("单位工程名称")
            r2("分项工程名称") = r("分项工程名称")          
                       
            r2("型号规格") = r("电线_规格2")
            r2("清单数量") = r("清单_电线2合计")
            r2("定额数量") = r("定额_电线2合计")
        End If
        If r.IsNull("管道规格") = False Then   \'先判断型号2是否为空
            Dim r3 As Row = Tables("临时表").AddNew
           
            r3("单项工程名称") = r("单项工程名称")
            r3("单位工程名称") = r("单位工程名称")
            r3("分项工程名称") = r("分项工程名称")           
           
            r3("型号规格") = r("管道规格")
            r3("清单数量") = r("管道合计")
            r3("定额数量") = r("管道合计")
        End If
    Next
Catch ex As Exception
    MessageBox.Show("计算错误")
End try
SystemReady = True  \'关闭刷新

Dim g As New GroupTableBuilder("汇总表", DataTables("临时表"))
g.Groups.AddDef("单项工程名称")
g.Groups.AddDef("单位工程名称")
g.Groups.AddDef("分项工程名称")

g.Groups.AddDef("型号规格")
g.Totals.AddDef("清单数量")
g.Totals.AddDef("定额数量")
g.Build()
MainTable = Tables("汇总表")

[此贴子已经被作者于2014-11-5 18:48:55编辑过]

--  作者:有点甜
--  发布时间:2014/11/5 19:08:00
--  

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

 


--  作者:建筑人生
--  发布时间:2014/11/5 19:41:00
--  

这样速度N快,毫秒级,谢谢甜