以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Object reference not set to an instance of an object (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187960) |
||||
-- 作者:creastzh -- 发布时间:2023/8/23 13:16:00 -- Object reference not set to an instance of an object 我自认为我已经明白了找不到应用实例而报错的问题, 但今日却再次打脸,请帮我再确认一下具体原因,谢谢! 下面的截图是在筛选状态下使用“Ctrl+A”新增的数据行, 但立即就报错了, 将光标换行,下方显示正常,但光标再次点击这个空行,则再次报错。 报错信息如下: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:Schedule,CurrentChanged 详细错误信息: Object reference not set to an instance of an object. 该表的CurrenChanged事件代码: \'变更schedule,将工序信息写入下方表中 MessageBox.Show(1)
‘调试提示1’ If Not DataTables.Contains("WorkOrderStatus") Then DataTables.Load("WorkOrderStatus") End If Dim wo As String Dim r As Row = Tables("Schedule").Current MessageBox.Show("2")
‘调试提示2’ If r IsNot Nothing Then wo = r("WO") Tables("CellKanban_Table2").Filter = "[wo]=\'" & wo & "\'" Else Return End If If Not DataTables.Contains("Production_List") Then DataTables.Load("Production_List") End If If wo Is Nothing Then GoTo 1 Tables("CellKanban_Table3").Filter = "WOID = \'" & wo & "\'" Tables("CellKanban_Table3").sort = "OPSeq,CLOCKIN" Dim PN As String = e.Table.Current("PartID") Dim Pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1") Dim fpf As String Dim fp As String = "P:\\General documents\\Setup\\Pic\\" \'\\\\freenas01chi\\Production\\General documents\\Setup\\Pic\\ fpf = fp & PN & ".jpg" If FileSys.FileExists(fpf) = False Then fp = "T:\\ME\\ME Documentation\\Picture\\" \'\\\\domain.pragon\\china\\ME\\ME Documentation\\Picture\\" & PN & ".jpg" fpf = fp & PN & ".jpg" If FileSys.FileExists(fpf) = False Then fpf = "P:\\General documents\\Setup\\Pic\\Error.jpg" End If End If pbx.ImageFile = fpf pbx.SizeMode = ImageSizeMode.Zoom 1: 奇怪的是,如果存在工单号则提示、运行均正常,一旦点击空行,则连 调试提示1、2均不出现。更别说运行下面的数据了。 此外还有一个情况,点击存在数据行后,调试提示均出现2次。 |
||||
-- 作者:有点蓝 -- 发布时间:2023/8/23 13:34:00 -- Schedule是不是在窗口有副本表,副本是不是也有CurrentChanged事件代码 |
||||
-- 作者:creastzh -- 发布时间:2023/8/23 16:17:00 -- 我有副本表,但这个副本表的Currentchanged没有设置代码。
[此贴子已经被作者于2023/8/23 16:17:09编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/8/23 16:19:00 -- 表面看不出什么问题,请上传实例测试 |
||||
-- 作者:creastzh -- 发布时间:2023/8/23 17:10:00 -- 我不知道为什么,当我将无关表单和大量数据删除,
打包后又出现新的实例找不到了,原来出现的Currentchanged 的问题又不存在了 进入后,点击工单运行, 看板管理
[此贴子已经被作者于2023/8/23 17:17:33编辑过]
|
||||
-- 作者:creastzh -- 发布时间:2023/8/23 17:16:00 -- [此贴子已经被作者于2023/8/23 17:16:03编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/8/23 17:40:00 -- 1、尽量不要使用GoTo这种地狱用法,如果符合条件才执行,建议这样 If wo Isnot Nothing Then Tables("CellKanban_Table3").Filter = "WOID = \'" & wo & "\'" …… end if 2、在主表事件里不要使用e.form这种用法,应该指定窗口名称,并且要判断窗口是否已经打开 \'变更schedule,将工序信息写入下方表中 \'MessageBox.Show(1) If Not DataTables.Contains("WorkOrderStatus") Then DataTables.Load("WorkOrderStatus") End If Dim wo As String Dim r As Row = e.Table.Current If r Is Nothing Then Return \'MessageBox.Show("2") wo = r("WO") Tables("CellKanban_Table2").Filter = "[wo]=\'" & wo & "\'" If Not DataTables.Contains("Production_List") Then DataTables.Load("Production_List") End If If wo IsNot Nothing AndAlso Forms("CellKanban").Opened Then Tables("CellKanban_Table3").Filter = "WOID = \'" & wo & "\'" Tables("CellKanban_Table3").sort = "OPSeq,CLOCKIN" Dim PN As String = r("PartID") Dim Pbx As WinForm.PictureBox = Forms("CellKanban").Controls("PictureBox1") Dim fpf As String Dim fp As String = "P:\\General documents\\Setup\\Pic\\" \'\\\\freenas01chi\\Production\\General documents\\Setup\\Pic\\ fpf = fp & PN & ".jpg" If FileSys.FileExists(fpf) = False Then fp = "T:\\ME\\ME Documentation\\Picture\\" \'\\\\domain.pragon\\china\\ME\\ME Documentation\\Picture\\" & PN & ".jpg" fpf = fp & PN & ".jpg" If FileSys.FileExists(fpf) = False Then fpf = "P:\\General documents\\Setup\\Pic\\Error.jpg" End If End If pbx.ImageFile = fpf pbx.SizeMode = ImageSizeMode.Zoom End if |
||||
-- 作者:creastzh -- 发布时间:2023/8/23 21:08:00 -- 好的,我再试一下,十分感谢有点蓝老师,成长路上一路有您的不懈支持,我会更有信心的。 |