Foxtable(狐表)用户栏目专家坐堂 → 总是不执行某些条件


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

主题:总是不执行某些条件

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/26 10:32:00 [显示全部帖子]

按红色方式改,然后调试

                                            r1 = r1 + 1
                                            Dim drs As List(Of DataRow) = DataTables("生产计划").SQLSelect("[产品代号] = '" & ctns2(s2 - 1) & "' and [指令单号] = '" & ctns1(s1 - 1) & "' and  [生产年月] = '" & tx2 & "' ", "", "[_SortKey]")
                                           
                                            Dim T As String = "True"
                                            Dim i As Integer
                                            For Each dr As DataRow In drs
                                                'msgbox(1)
                                                i = i + 1
                                                msgbox("累计生产小时1=" & dr.isnull("累计生产小时1") & "," & dr("累计生产小时1") & "," & H1)
                                                msgbox("累计生产小时2=" & dr.isnull("累计生产小时2") & "," & dr("累计生产小时2") & "," & H1)
                                                If dr.isnull("累计生产小时1") = False AndAlso dr("累计生产小时1") >= H1 Then 
msgbox("累计生产小时1执行")
                                                    '总有一些数据行是满足这个条件的,但是总是不执行这里的代码
                                                    r2 = r2 + 1
                                                    T = "False"
                                                    msgbox("准时行数=" & r2)
                                                    Exit For
                                                ElseIf dr.isnull("累计生产小时2") = False AndAlso dr("累计生产小时2") >= H1 Then
msgbox("累计生产小时1   不执行,累计生产小时2执行")
                                                        '这里也一样,总有一些数据行是满足这个条件的,但是总是不执行这里的代码
                                                        r2 = r2 + 1
                                                        T = "False"
                                                        msgbox("准时行数=" & r2)
                                                        Exit For
                                                    Else
msgbox("累计生产小时1   不执行,累计生产小时2   不执行,这时 i=" & i & ",drs.count=" & drs.count)
                                                        '按道理,如果有满足上面的任何一个条件的数据的话,那么这样的数据行就不执行如下代码了,但是,所有数据行都会执行下面的代码
                                                        If i = drs.count Then
                                                            r9 = r9 + 1
                                                            Dim dr3 As DataRow = DataTables("未按时完成数据").AddNew()
                                                            dr3("工序") = "注塑"
                                                            dr3("数据来源") = "生产计划1"
                                                            dr3("piao号") = ctns1(s1 - 1) '指令单号
                                                            dr3("制造产品号") = ctns2(s2 - 1) '产品代号
                                                            dr3("要求生产数量") = q1
                                                            If drf5 IsNot Nothing Then
                                                                dr3("piao号日期") = drf5("要求开始交付日期")
                                                            end if
                                                        End If
                                                        'msgbox("T=" & T)
                                                End If
                                                
                                                If T = "False" Then 
                                                    Exit For 
                                                End If
                                                
                                            Next

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/26 13:51:00 [显示全部帖子]

应该是木有符合条件的数据,或者没有保存数据。调试看看条件

msgbox("[生产年月] = '" & tx2 & "' and [指令单号] <> '" & ctns1(s1 - 1) & "' and 产品代号 = '" & ctns2(s2 - 1) & "' ")

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/26 15:24:00 [显示全部帖子]

理解一下我给的调试代码,学会在调试的时候,显示一些关键的数据,方便跟踪分析各个步骤的执行情况。而不是简单抄帮助的messagebox.show(1)

 回到顶部