以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:是否发生了死循环  (http://foxtable.com/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编辑过]