Foxtable(狐表)用户栏目专家坐堂 → 在窗口的确定按钮的click事件,代码有点多造成点击按钮后窗口延迟数秒才关闭,该如何优化啊?


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

主题:在窗口的确定按钮的click事件,代码有点多造成点击按钮后窗口延迟数秒才关闭,该如何优化啊?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
在窗口的确定按钮的click事件,代码有点多造成点击按钮后窗口延迟数秒才关闭,该如何优化啊?  发帖心情 Post By:2018/6/14 10:03:00 [只看该作者]

加入阴影的代码,效果也没有改观。
……
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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
 
如果想优化代码,做个具体例子发上来测试。

 回到顶部