Foxtable(狐表)用户栏目专家坐堂 → 执行代码时会闪退


  共有4315人关注过本帖树形打印复制链接

主题:执行代码时会闪退

帅哥哟,离线,有人找我吗?
edisontsui
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1511 积分:9801 威望:0 精华:0 注册:2014/12/18 16:12:00
执行代码时会闪退  发帖心情 Post By:2022/11/8 9:00:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:闪退.rar

这些代码我是放在 afterbuild 里面的,当然 afterbuild 里面还有其他代码。但是,就是在执行这段代码时,会发生闪退现象(突然退出foxtable系统)。如果筛选出来的数据才几行,就不会闪退;如果筛选出来的数据有100多行,就会闪退。前段时间一直也没有这个现象,就是最近2天才会闪退。是不是数据行数多,需要运作的时间长了,就会闪退呢?或者还有其他原因?谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107743 积分:548054 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/8 9:20:00 [只看该作者]

闪退一般是代码执行出现了死循环,基本和数据多少没有关系。自行调试一下,看执行到什么代码后闪退

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1511 积分:9801 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/11/8 14:58:00 [只看该作者]

'MsgBox("3") '测试通过

For Each r As Row In Tables("钣金开料单").rows
    If r("工位") = "910" Then
        If r("每piao长度个数") = 1 Then
              '  r("piao号3") = r("piao号2") '2022/11/8 取消
                Dim r1 As Row = Tables("钣金开料单").rows(r.index - 1)
                If r("piao号1") = r1("piao号1") AndAlso r("长度分类") = r1("长度分类") AndAlso r("冲孔程序3") = r1("冲孔程序3") AndAlso r("每piao长度个数") = r1("每piao长度个数") Then 
                    r("piao号3") = r1("piao号3")
                Else
                    r("piao号3") = r("piao号2")
                End If
                r("piao号4") = r("piao号2")
        Else
            r("piao号3") = r("piao号2")
            r("piao号4") = r("piao号2")
        End If
    End If
Next

'MsgBox("4")

测试过好几次,提示3都可以出来,但提示4没出来就闪退了。于是我就把上面红色的一行代码取消了,目前暂时是没事了。那为什么这句话会有影响呢,还是上面那段的其他代码有影响?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107743 积分:548054 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/8 15:01:00 [只看该作者]

Tables("钣金开料单")datacolchanged事件有没有什么代码?

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1511 积分:9801 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/11/8 17:23:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临时代码2.rar

请看附件里面的代码。谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107743 积分:548054 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/8 17:28:00 [只看该作者]

这种代码很容易死循环

If e.DataCol.name = "piao号4" Then
    If e.DataRow("工位") = "910" Then
        If e.DataRow.isnull("piao号3") = False Then '这句不能少,否则无法增加新数据行 
            Dim Filter As String = "[piao号3] = '" & e.DataRow("piao号3") & "' and [_Identify] <>" & e.DataRow("_Identify")
            Dim drs As List(Of DataRow) = DataTables("钣金开料单").Select(Filter)
            Dim dr16 As String = e.DataRow("piao号4")
systemready=false
            For i As Integer = 0 To drs.Count - 1
                drs(i)("piao号4") = dr16
            Next
systemready=true
        End If
    End If
End If


If e.DataCol.name = "piao号4" Then
    If e.DataRow("工位") = "920" Then
        If e.DataRow.isnull("冲孔程序2") = False Then '这句不能少,否则无法增加新数据行 
            Dim Filter17 As String = "[冲孔程序2] = '" & e.DataRow("冲孔程序2") & "' and [工位] = '" & e.DataRow("工位") & "'  and [_Identify] <>" & e.DataRow("_Identify")
            Dim drs17 As List(Of DataRow) = DataTables("钣金开料单").Select(Filter17)
            Dim dr17 As String = e.DataRow("piao号4")
systemready=false
            For i As Integer = 0 To drs17.Count - 1
                drs17(i)("piao号4") = dr17
            Next
systemready=true
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1511 积分:9801 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/11/9 7:33:00 [只看该作者]

你的意思是加上 systemready=false 和 systemready=true 吗?那是不是在有类似这些代码的其他地方也这样子做就好一点?谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107743 积分:548054 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/9 8:39:00 [只看该作者]

看实际情况使用,滥用反而适得其反。

看上面代码,根据piao号4列触发事件,事件里又给piao号4赋值,赋值后肯定会又触发这个事件.......

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1511 积分:9801 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/11/9 15:00:00 [只看该作者]

明白了。谢谢。

 回到顶部