以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教:代码的运行顺序是怎样的?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=67873)

--  作者:gaoqr
--  发布时间:2015/5/5 14:49:00
--  请教:代码的运行顺序是怎样的?
比如下面的代码

If e.DataCol.name = "定额编号" Then
    Dim r As DataRow = DataTables("定额库").Find("定额编号 = \'" & c("定额编号") &  "\'")

   If r  IsNot Nothing Then

       Dim T As String() = {"定额","提示","前编码","项目名称","单位","位数","措施","W","序号","系数","定额","提示","前编码","项目名称","单位","位数","措施","W","序号","系数"}

        For i As Byte = 0 To 9

        c(T(i)) = r(T(i+10))

         Next

       c("RG") = 1

       c("CL") = 1

    End If

End If

MessageBox.Show(1)

 

 

If e.DataCol.name = "RG" Then

    c("项目名称") = c("项目名称") & " 人工×"& a1 & ""

End If

MessageBox.Show(2)

 

 

If e.DataCol.name = "CL" Then

    c("项目名称") = c("项目名称") & " 材料×"& a2 & ""

End If

MessageBox.Show(3)

 


我的理解应该是,应该依次填充:定额、提示、前编码、项目名称、......、RG、CL  


之后再开始向下循环


在实际执行中发现是:定额(大循环)、提示(大循环)、前编码(大循环)、......、RG(大循环)、CL(大循环)


大循环即执行了:MessageBox.Show(1)、MessageBox.Show(2)、MessageBox.Show(3)  


我不知道这样是否正常?

 



--  作者:Bin
--  发布时间:2015/5/5 14:51:00
--  
你改变了列的值,会触发DataColChanged事件,然后走一遍里面的代码
--  作者:gaoqr
--  发布时间:2015/5/5 15:04:00
--  
那再请教,一次性填充是否效率更高些,怎样才能一次性填充呢?

谢谢!

--  作者:Bin
--  发布时间:2015/5/5 15:06:00
--  
不符合IF条件不会执行里面的代码,没问题的.
--  作者:gaoqr
--  发布时间:2015/5/5 15:08:00
--  
谢谢Bin 版主!