以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 重置列的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189114)

--  作者:xuxingbo
--  发布时间:2023/11/10 18:02:00
--  [求助] 重置列的问题

DataColChanged表事件编辑


If e.DataCol.Name = "到货情况" Then
    e.DataRow("设备材料总数") = DataTables("备件明细").SQLCompute("count(ERP计划号)", "[ERP计划号] = \'" & e.DataRow("ERP计划号") & "\'")
    e.DataRow("设备材料到货数") = DataTables("备件明细").SQLCompute("count(ERP计划号)", "[ERP计划号] = \'" & e.DataRow("ERP计划号") & "\'and [是否到货] =  \'是\'")
    e.DataRow("到货情况") = e.DataRow("设备材料到货数") / e.DataRow("设备材料总数")
End If


我只编辑了几行代码每当重置“到货情况”列的时候会出现明显的5秒的卡顿,请问这个是什么原因怎么改?

--  作者:有点蓝
--  发布时间:2023/11/11 8:27:00
--  
If e.DataCol.Name = "ERP计划号" Then
    e.DataRow("设备材料总数") = DataTables("备件明细").SQLCompute("count(ERP计划号)", "[ERP计划号] = \'" & e.DataRow("ERP计划号") & "\'")
    e.DataRow("设备材料到货数") = DataTables("备件明细").SQLCompute("count(ERP计划号)", "[ERP计划号] = \'" & e.DataRow("ERP计划号") & "\' and [是否到货] =  \'是\'")
elseif e.DataCol.Name = "设备材料到货数" orelse e.DataCol.Name = "设备材料总数Then
    If e.DataRow.isnull("设备材料到货数")  orelse e.DataRow.isnull("设备材料总数")  orelse e.DataRow("设备材料总数")=0   Then
       e.DataRow("到货情况") = Nothing
    Else
       e.DataRow("到货情况") = e.DataRow("设备材料到货数") / e.DataRow("设备材料总数")
    End If
End If