以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  狐表闪退  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84370)

--  作者:realredred
--  发布时间:2016/4/29 10:57:00
--  狐表闪退

DataColChanged

设了这代码

 

 

 

Select Case e.DataCol.Name

    \'----收发

    Case "S电雕KS","电雕DS","

            Dim d0 As Date = "#" & e.DataRow("S电雕KS") & "#"

           

            \'----------------------电绘预计天数

            Dim da00 As Integer

           

            For da00 = 1 To 4

                If d0.AddDays(da00).dayofweek = 0 Then

                   

                    e.DataRow( "电雕DS") = 5

                    Exit For

                Else

                    e.DataRow( "电雕DS") = 4

                End If

            Next

End Select

 

执行时 狐表闪退

请问哪里出了问题?


--  作者:大红袍
--  发布时间:2016/4/29 10:59:00
--  
Select Case e.DataCol.Name
   
        \'----收发
       
    Case "S电雕KS","电雕DS"
        systemready = False
        Dim d0 As Date = "#" & e.DataRow("S电雕KS") & "#"
     
        \'----------------------电绘预计天数
       
        Dim da00 As Integer   
        For da00 = 1 To 4
           
            If d0.AddDays(da00).dayofweek = 0 Then
            
                e.DataRow( "电雕DS") = 5
               
                Exit For
               
            Else
               
                e.DataRow( "电雕DS") = 4
               
            End If
           
        Next
        systemready = True       
End Select

--  作者:realredred
--  发布时间:2016/4/29 11:05:00
--  
版主你好
将停止执行所有事件代码 (systemready = False)

然后那段代码就沒有问题可以实现到想要的结果

然后再恢复所有事件代码(systemready = True )
是什麼原因?
用 systemready 有沒有缺点
[此贴子已经被作者于2016/4/29 11:06:08编辑过]

--  作者:大红袍
--  发布时间:2016/4/29 11:07:00
--  
 你的代码,会重复触发dataColChanged事件的。你要理一下你的逻辑。
--  作者:realredred
--  发布时间:2016/4/29 12:39:00
--  
明白了, 是case 里 "电雕DS"
有改变 就重复触发
結果死循环 闪退了
我修改一下
谢谢版主
两年沒改过狐表 , 遗忘了
[此贴子已经被作者于2016/4/29 12:39:33编辑过]