按红色方式改,然后调试
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