以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 窗体表的切换处理 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=188301) |
-- 作者:creastzh -- 发布时间:2023/9/13 10:52:00 -- 窗体表的切换处理 这两天遇到一个怪现象,一直没有办法解决: 窗体中放置了1个主表,下方通过 Tabcontrol 设置了3个不同的表的副本,全部为只读属性,并依主表名更改了副本表名称 ,方便程序中辨识处理. 操作中,发现后面2个表(工单状态数据一览,实际工序生产明细表)通过主表的currentchanged使用正常,2个表均实现了同步变化,但第一个副表(生产问题跟踪)却没有反应, 当我点击"生产问题跟踪"页头后,整个项目文件接下来全部没有了反应, 我必须手工在命令窗口中运行 SystemReady=true后才能正常 我试着在主表CurrentChanged事件中增加了 下方红色区域的集合判断,仍没有效果 \'变更schedule,将工序信息写入下方表中 \'MessageBox.Show(1) SystemReady = False Try If Not DataTables.Contains("WorkOrderStatus") Then DataTables.Load("WorkOrderStatus") DataTables("WorkOrderStatus").Load End If If Not DataTables.Contains("Production_List") Then DataTables.Load("Production_List") DataTables("Production_List").Load End If \'Forms("CellKanban").Show Dim wo As String Dim dr As DataRow = e.Table.Current.DataRow wo = dr("WO") If wo = "" Then GoTo 1 Dim drs As List(Of DataRow) = DataTables("AddtionalWOData").Select("WO = \'" & wo & "\'") If drs.Count > 0 Then Tables("CellKanban_AddtionalWOData").Filter = "[WO]=\'" & wo & "\'" Tables("CellKanban_AddtionalWOData").Sort = "OP" End if Tables("CellKanban_WOStatus").Filter = "[WO]=\'" & wo & "\'" \'工单数据 Work Order Status Tables("CellKanban_WOStatus").Sort = "OP" Tables("CellKanban_ProductionList").Filter = "[WO]=\'" & wo & "\'" \'工单数据 Production_List Tables("CellKanban_ProductionList").Sort = "OP,ScanIn_Time" Dim PN As String = e.Table.Current("PartNumber") 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 Catch ex As Exception End Try 1: SystemReady = True 在窗体控件 TabControl 的事件"SelectedIndexChanged, SelectedIndexChanging"中增加了"SystemReady=true",也均无效. 此外, 这个"生产问题跟踪表"在其它窗体也有调用,使用很正常. 请哪位大神帮帮我,谢谢! [此贴子已经被作者于2023/9/13 10:54:23编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/9/13 10:58:00 -- 1、把SystemReady = True放到Catch 或者finally中 2、不要养成使用goto的坏习惯 |
-- 作者:creastzh -- 发布时间:2023/9/13 11:22:00 -- 那就是要将SystermReady=False 也放入Try中了? Goto 有时候我用于分支运行, 这个案例中我将其改为Return 替代. 我再试一下
|
-- 作者:有点蓝 -- 发布时间:2023/9/13 11:25:00 -- 如果使用了Catch ,最好是在Catch 里弹出错误提示,或者记录日志,不然出错了也悄无声息的,代码更难以调试 |
-- 作者:creastzh -- 发布时间:2023/9/13 11:33:00 -- 已修改,但还是不行 |
-- 作者:有点蓝 -- 发布时间:2023/9/13 11:35:00 -- 请上传实例测试 |
-- 作者:creastzh -- 发布时间:2023/9/13 11:45:00 -- 我又测试了一下,当主表行(WO)在"生产问题跟踪"中存在对应行数据时,不会出现异常,但一旦没有数据行对应,则该现象就出现, 但另外的"工单状态数据一览,实际工序生产明细表"即使不存在数据,该现象也不会发生. 百思不得其解
|
-- 作者:creastzh -- 发布时间:2023/9/13 11:46:00 -- 实例稍等 |
-- 作者:creastzh -- 发布时间:2023/9/13 12:38:00 -- 请见附件 |
-- 作者:creastzh -- 发布时间:2023/9/13 12:38:00 -- 怎么都无法上传成功BK.zip" 这个文件 |