Foxtable(狐表)用户栏目专家坐堂 → 应用实例找不到


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

主题:应用实例找不到

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
应用实例找不到  发帖心情 Post By:2023/8/16 22:41:00 [只看该作者]

稍有一些信心,却被莫名其妙的错误提示搞的焦头烂额,在运行这个任务的时候却有出现这样的提示:
图片点击可在新窗口打开查看
下面是程序:
出现问题的时候是数据表dt1已经运行到最后一行数据 12705#,结果一旦运行到“dr1("ScanOutTime") ”就出现上述问题。
通过检查,ScanOutTime,确实是Date类型
图片点击可在新窗口打开查看

通过dr1("WO") 可以判断该行确实存在,其结果如下,经验证,该工单号信息正常
图片点击可在新窗口打开查看
关键是通过检查 dr1(“ScanOutTime“),其值为‘00:00:00’,显示数据行是成立的。
图片点击可在新窗口打开查看

我的疑问是既然目标行存在,且不同列是存在数据的,但为何就显示找不到实例:
程序:

'补充扫描数据写入生产问题跟踪表 ProductionIssue_FromAdditionalWO
If User.Type = UserTypeEnum.Developer Then
    'SystemReady = False 
    If Not DataTables.Contains("AddtionalWOData") Then
        DataTables.Load("AddtionalWOData")
    End If
    If Not DataTables.Contains("ProductionIssue") Then
        DataTables.Load("ProductionIssue")
    End If
    
    Dim dt1 As DataTable = DataTables("AddtionalWOData")
    Dim dt2 As DataTable = DataTables("ProductionIssue")
    Dim i As Integer
    Dim i1 As Integer
    Dim i2 As Integer
    
    If Not DataTables.Contains("ProductDeveloper") Then
        DataTables.Load("ProductDeveloper")
    End If 
    Dim dt3 As DataTable = DataTables("ProductDeveloper") 
    Dim Filter As String
    
    Try
        For Each dr1 As DataRow In dt1.DataRows
            i2 = i2 + 1
            
            If Not dr1.IsNull("问题描述") Then
                If dr1.IsNull("编号") = False Then
                    Filter = "[交易号]='" & dr1("编号") & "'"
                    'Output.Show(Filter)
                    Dim dr2 As DataRow = dt2.Find(Filter)
                    
                    If dr2 Is Nothing = True Then 'AddNew  
                        i = i + 1
                        
                        Output.Show(i & "," & dr1("WO"))
                        Dim dr2n As DataRow = dt2.AddNew 
                        dr2n("DataResource") = dr1("来源") 
                        dr2n("Date") = dr1("发现时间") 
                        
                        dr2n("ResID") = dr1("ResID") 'ResID
                        dr2n("PartNumber") = dr1("PartID") 'PartID
                        
                        dr2n("WO") = dr1("WO") 'WO
                        dr2n("OP") = dr1("OP") 'OP
                        dr2n("WOQTY") = dr1("Qty") 'WoQty
                        
                        dr2n("Description") = dr1("问题描述") 'Des
                        dr2n("IssueType问题种类") = dr1("问题类别") 'IssueType
                        'dr2n("Affect后果") = dr1("Question_Affect") 'Affect
                        'dr2n("DelayHrs延误小时") = dr1("PastDays") '延误小时
                        dr2n("Res责任部门") = dr1("责任班组") 'Responser=>责任部门
                        'dr2n("Person责任人") = dr1("Question_Dealer") '责任人
                        
                        Dim Fl As String = "[PartID]='" & dr1("PartID") & "'"
                        If dt3.Find(fl) IsNot Nothing Then
                            Dim dr3 As DataRow = dt3.Find(fl)
                            If dr3 IsNot Nothing Then
                                dr2n("QE") = dr3("QE") 'QE
                                dr2n("ME") = dr3("ME") 'ME
                            End If
                        End If
                        
                        dr2n("Reviser") = dr1("发现者") '登记人
                        dr2n("交易号") = dr1("编号") '交易号
                        
                        dr2n("SolvedDate解决日期") = dr1("ScanOutTime") '
                        If Isdate(dr2n("SolvedDate解决日期")) Then
                            Dim tp As TimeSpan
                            tp = dr2n("SolvedDate解决日期") - dr2n("Date") 
                            dr2n("WholeTime全程天数") = Round2( tp.TotalDays, 2)
                        End If
                    Else '已存在,则根据变更内容进行重新写入
                        If dr2("Description") <> dr1("问题描述") Then
                            dr2("Description") = dr1("问题描述") 'Des
                        End If
                        If dr2("IssueType问题种类") <> dr1("问题类别") Then
                            dr2("IssueType问题种类") = dr1("问题类别") 'IssueType                        
                        End If
                        If dr2("Res责任部门") <> dr1("责任班组") Then
                            dr2("Res责任部门") = dr1("责任班组") 'Responser=>责任部门                                        
                        End If
                        If I2 = 12075 Then
                            MessageBox.Show( dr1("wo"))
                            If dr1("WO") = "IWO87363/1" Then 
                                messagebox.Show(dr1("ScanOutTime"))
                            End If
                            If dr1("ScanOutTime") > #01-01-2023# Then  ‘此处出现错误提示’
                                If dr2("SolvedDate解决日期") <> dr1("ScanOutTime") Then
                                    dr2("SolvedDate解决日期") = dr1("ScanOutTime") '
                                    If Isdate(dr2("SolvedDate解决日期")) Then
                                        Dim tp As TimeSpan
                                        If dr2.IsNull("SolvedDate解决日期") = False And dr2.IsNull("Date") = False Then
                                            tp = dr2("SolvedDate解决日期") - dr2("Date")
                                            dr2("WholeTime全程天数") = tp.TotalDays
                                        Else
                                            dr2("WholeTime全程天数") = Nothing
                                        End If
                                        i = i + 1
                                        Output.Show(i & "," & dr1("WO"))
                                    End If 
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        Next
    Catch ex As Exception '如果出错
        msgbox(ex.message) 
        MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
        GoTo 1
    End Try
    1:
    If i > 0 Then 
        dt2.Save
    End If
    
    Dim dr As DataRow = DataTables("Data").Find("文件更新_文件名 = '" & "ProductionIssue_FromAdditionnalWO'")
    dr("文件更新_时间") = Date.Now
    SystemReady = True
End If

请大伙儿帮忙看一下,我实在是么有办法了,谢谢!

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


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

我觉得不是这里出现的错误,调试看看

msgbox("---------i2=" & i2)
msgbox("ScanOutTime=" & dr1("ScanOutTime")) ‘这里是否可以弹出,如果不能看看前面i2等于什么值
                            If dr1("ScanOutTime") > #01-01-2023# Then 
msgbox("i2--------=" & i2
.  ‘此处出现错误提示’

试试改为
If cdate(dr1("ScanOutTime")) > #01-01-2023# Then 

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2023/8/17 12:57:00 [只看该作者]

我按此进行测试,总行数为12076, 运行到此位置,显示下方Messagebox 信息,该信息正确

紧接着继续下行到CDate(dr1(ScanOutTime")... 就出现了报警出错信息
图片点击可在新窗口打开查看
这个问题仍没有找到解决方案

[此贴子已经被作者于2023/8/17 12:57:41编辑过]

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


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

肯定不是这里的问题,否则messagebox就已经出错了,不可能弹的出来。

请上传实例测试

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2023/8/17 14:05:00 [只看该作者]

今天在开会,或者晚些用QQ共享方式,我的数据较大.

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


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

新建一个项目,做个同样问题的例子,不需要发原项目

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2023/8/18 16:34:00 [只看该作者]

我不知道为什么,今天又突然正常了。

不过还是要感谢 有点蓝 老师,是你给了我继续的信心。

 回到顶部