Foxtable(狐表)用户栏目专家坐堂 → 运算速度问题


  共有1835人关注过本帖平板打印复制链接

主题:运算速度问题

美女呀,离线,留言给我吧!
朱女士
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:445 积分:3633 威望:0 精华:0 注册:2020/2/8 11:14:00
运算速度问题  发帖心情 Post By:2023/5/4 8:35:00 [只看该作者]

老师您好!
 我有一个计算模块,运算速度成了一个难题,我的数据表里只有不到6万条数据,但是计算需要30多分钟。我想请教的问题是:还有没有比我的代码运算速度更快的方法。谢谢指教!
我的代码:
DataTables("实时工序计算表").LoadFilter = ""
DataTables("实时工序计算表").load()

Dim zl As Double
Dim js As Integer
Dim tms As New List(Of String)
Dim gxs As New List(Of String)
'数据升序排序
Tables("ddqdb").Sort = "清单条码编码"
Tables("实时工序计算表").Sort = "清单条码编码"

Dim er As DataRow
er = DataTables("实时工序计算表").DataRows(0)
Dim qm As String
qm = er("清单条码编码")
'筛选ddqdb
DataTables("ddqdb").LoadFilter = "[清单条码编码]>= '" & qm & "'"
DataTables("ddqdb").load()
Dim Arys As List(Of String()) 
Arys = DataTables("实时工序计算表").GetValues("清单条码编码|工序名称") 
For Each Ary As String() In Arys
    Dim pr As DataRow = DataTables("ddqdb").find("清单条码编码='" & Ary(0) & "'")
    'MessageBox.Show(ary(0), ary(1))
    If pr IsNot Nothing Then
        zl = pr("重量")
        js = pr("件每台") * pr("台数") 
        Dim gxhs As Double = DataTables("实时工序计算表").Compute("Sum(实际耗时)", "清单条码编码= '" & Ary(0) & "' and 工序名称='" & Ary(1) & "'")
        
        '查询符合条件的多条记录
        For Each dts As DataRow In DataTables("实时工序计算表").Select("清单条码编码= '" & Ary(0) & "' and 工序名称='" & Ary(1) & "'")
            If dts IsNot Nothing Then 
                dts("已分劈") = "f"
                Dim dhs As Double = dts("实际耗时")
                dts("重量") = Round2(dhs / gxhs * zl, 2)
                dts("件数") = Round2(dhs / gxhs * js, 2)
            Else
            MessageBox.Show("查无数据")
            End if
        Next
    End If 
Next


MessageBox.show("计算完毕!", "提示!")

e.Form.Close
MainTable = Tables("实时工序计算表")

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