以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  在窗口的确定按钮的click事件,代码有点多造成点击按钮后窗口延迟数秒才关闭,该如何优化啊?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120390)

--  作者:guosheng
--  发布时间:2018/6/14 10:03:00
--  在窗口的确定按钮的click事件,代码有点多造成点击按钮后窗口延迟数秒才关闭,该如何优化啊?
加入阴影的代码,效果也没有改观。
……
Else
    
    \'Tables("项目基准时间表").StopRedraw
    \'systemready = False
    
    Dim dr As Row=Tables("项目基准时间表").addnew
    dr("公司名称")=e.Form.Controls("基准时间引用公司名称下拉窗口").text
    dr("地块")=e.Form.Controls("地块").text
    dr("项目或标段名称")=e.Form.Controls("项目或标段名称").text
    dr("基准名称")="开工"
    dr("计划完成日期")=e.Form.Controls("计划开工日期").value
    dr("提交人")=user.name
    dr("提交日期")=rq
    Dim dr1 As Row=Tables("项目基准时间表").addnew
    dr1("公司名称")=e.Form.Controls("基准时间引用公司名称下拉窗口").text
    dr1("地块")=e.Form.Controls("地块").text
    dr1("项目或标段名称")=e.Form.Controls("项目或标段名称").text
    dr1("基准名称")="结构封顶"
    dr1("计划完成日期")=e.Form.Controls("计划封顶日期").value
    dr1("提交人")=user.name
    dr1("提交日期")=rq
    
    Dim dr2 As Row=Tables("项目基准时间表").addnew
    dr2("公司名称")=e.Form.Controls("基准时间引用公司名称下拉窗口").text
    dr2("地块")=e.Form.Controls("地块").text
    dr2("项目或标段名称")=e.Form.Controls("项目或标段名称").text
    dr2("基准名称")="工程竣工"
    dr2("计划完成日期")=e.Form.Controls("计划达到竣工验收条件日期").value
    dr2("提交人")=user.name
    dr2("提交日期")=rq

    
    Dim drf As DataRow=DataTables("公司基本信息表").find("公司名称=\'"& e.Form.Controls("基准时间引用公司名称下拉窗口").text &"\'")
    Dim max As String
    Dim idx As Integer
    max = DataTables("项目基准时间表").sqlCompute("Max(项目编号)","公司名称=\'"& e.Form.Controls("基准时间引用公司名称下拉窗口").text &"\' And [_Identify] <> " & dr("_Identify")) \'取得该月的最大编号
    If max > "" Then \'如果存在最大编号
        idx = CInt(max.Substring(9,2)) + 1 \'获得最大编号的后三位顺序号,并加1
    Else
        idx = 1 \'否则顺序号等于1
    End If
    dr("项目编号") =drf("缩写") & "-" &  "主项" & "-" & Format(idx,"00")
    dr1("项目编号") =drf("缩写") & "-" &  "主项" & "-" & Format(idx,"00")
    dr2("项目编号") =drf("缩写") & "-" &  "主项" & "-" & Format(idx,"00")

  \'systemready = True
    \'Tables("项目基准时间表").ResumeRedraw
    forms("建立一条项目基准时间窗口").close()
    Tables("项目基准时间表").save
     
    
    For Each drr As DataRow In DataTables("二级节点标准表").DataRows
        Dim drr1 As DataRow = DataTables("计划执行情况表").AddNew()
        For Each dcc As DataCol In DataTables("二级节点标准表").datacols
            If dcc.name<>"标准工作时间"  And dcc.name<>"备注" 
                drr1(dcc.name)=drr(dcc.name)
            End If
        Next
        drr1("地块")=Tables("项目基准时间表").current("地块")
        drr1("公司名称")=Tables("项目基准时间表").current("公司名称")
        drr1("项目或标段名称")=Tables("项目基准时间表").current("项目或标段名称")
        drr1("项目编号")=Tables("项目基准时间表").current("项目编号")
        
        Dim drff As DataRow=DataTables("项目基准时间表").find("项目编号=\'"& drr1("项目编号") &"\' And 基准名称=\'"& drr1("完成时间参考基准") &"\'")
        If  drr1("前置基准的天数")>0
            drr1("计划完成时间")=drff("计划完成日期").adddays("-" & drr1("前置基准的天数"))
        Else
            drr1("计划完成时间")=drff("计划完成日期").adddays(math.abs(drr1("前置基准的天数")))
        End If             
    Next
    Tables("计划执行情况表").save
End If
[此贴子已经被作者于2018/6/14 10:25:32编辑过]

--  作者:有点甜
--  发布时间:2018/6/14 10:28:00
--  

你这段代码有问题吧?删除后测试。

 

    For Each drr As DataRow In DataTables("二级节点标准表").DataRows
        Dim drr1 As DataRow = DataTables("计划执行情况表").AddNew()
        For Each dcc As DataCol In DataTables("二级节点标准表").datacols
            If dcc.name<>"标准工作时间"  And dcc.name<>"备注" 
                drr1(dcc.name)=drr(dcc.name)
            End If
        Next
        drr1("地块")=Tables("项目基准时间表").current("地块")
        drr1("公司名称")=Tables("项目基准时间表").current("公司名称")
        drr1("项目或标段名称")=Tables("项目基准时间表").current("项目或标段名称")
        drr1("项目编号")=Tables("项目基准时间表").current("项目编号")
        
        Dim drff As DataRow=DataTables("项目基准时间表").find("项目编号=\'"& drr1("项目编号") &"\' And 基准名称=\'"& drr1("完成时间参考基准") &"\'")
        If  drr1("前置基准的天数")>0
            drr1("计划完成时间")=drff("计划完成日期").adddays("-" & drr1("前置基准的天数"))
        Else
            drr1("计划完成时间")=drff("计划完成日期").adddays(math.abs(drr1("前置基准的天数")))
        End If             
    Next
    Tables("计划执行情况表").save
 
如果想优化代码,做个具体例子发上来测试。