以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:是否发生了死循环 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67707) |
-- 作者:gaoqr -- 发布时间:2015/4/29 15:41:00 -- 求助:是否发生了死循环 If e.DataCol.name = "材料编号" OrElse e.DataCol.name = "定额用量" OrElse e.DataCol.name = "配合量" OrElse e.DataCol.name = "市场价" Then If dr1("材料编号") IsNot Nothing Then Dim dr2 As DataRow = DataTables("材料库").Find("[材料编号] = \'" & dr1("材料编号") & "\'") If dr2("材料编号") IsNot Nothing Then dr1("材料名称") = dr2("材料名称") dr1("单位") = dr2("单位") dr1("单价") = dr2("单价") dr1("主材") = dr2("主材") dr1("RCJ") = dr2("RCJ") dr1("砼") = dr2("砼") If pr("人工") > 0 And dr1("单位") = "工日" Then \'\'计算工日市场价 dr1("市场价") = dr1("单价") * pr("人工") End If \'\'If dr2("市场价") IsNot Nothing Then \'\'dr1("市场价") = dr2("市场价") \'\'End If .......... End If End If End If 加入红色代码,执行完 dr1("砼") = dr2("砼") 程序没有错误提示,自动关闭。 红色代码应该怎样修改? 谢谢!
|
-- 作者:Bin -- 发布时间:2015/4/29 15:44:00 -- 是的. 你判断市场价改变后触发变动,改变市场价,又为它赋值. 无限死循环啊. 你思路就有问题. 你的目的是实现什么效果?
|
-- 作者:gaoqr -- 发布时间:2015/4/29 15:48:00 -- 材料库中有 一部分有 市场价 1、有市场价的填入材料库中的市场价 2、没有市场价的 为空值
|
-- 作者:Bin -- 发布时间:2015/4/29 15:49:00 -- If e.DataCol.name = "材料编号" OrElse e.DataCol.name = "定额用量" OrElse e.DataCol.name = "配合量" OrElse e.DataCol.name = "市场价" Then 根据你描述的需求. IF条件里无需加入这个判断啊.这样更改市场价级丕会触发里面的代码,就不会死循环了
|
-- 作者:gaoqr -- 发布时间:2015/4/29 15:55:00 -- 2个如果换一下位置,可以计算了 但太慢了 请教,应该怎样修改?
[此贴子已经被作者于2015/4/29 15:58:32编辑过]
|
-- 作者:gaoqr -- 发布时间:2015/4/29 16:04:00 -- 不加入红色代码 ,计算完1项 用时 14秒 加入红色代码 ,计算完1项 用时 24秒, 请教,Bin 版主,这个代码应该怎样修改呢? 谢谢!
|
-- 作者:Bin -- 发布时间:2015/4/29 16:05:00 -- 只是FIND一行数据而已,不至于要14秒吧.上个例子看看 |
-- 作者:gaoqr -- 发布时间:2015/4/29 16:10:00 -- 是昨天的那一项,计算出各种取费了。 一条 If dr2("市场价") IsNot Nothing Then
dr1("市场价") = dr2("市场价") End If 就多了10秒多,不理解 [此贴子已经被作者于2015/4/29 16:14:06编辑过]
|