以文本方式查看主题 - 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
如果想优化代码,做个具体例子发上来测试。
|