那就改下查询条件
Select Case e.DataCol.name
Case "SN"
If Not e.DataRow.IsNull("SN") Then
Dim drs As List(Of DataRow) = DataTables("库存明细表").Select(CExp("SN='{0}' and 订单号='{1}' and 物料编码='{2}' and 状态='入库完成'", e.NewValue,e.DataRow("订单号") ,e.DataRow("物料编码")),"在库生命周期 desc")
If drs.Count > 0 Then
Dim count As Integer = e.DataTable.Compute("count(sn)","订单号='" & e.DataRow("订单号") & "' and 物料编码='" & e.DataRow("物料编码") & "' and SN is not null")
Dim dr As DataRow = DataTables("销售出库单").find("订单号='" & e.DataRow("订单号") & "' and 物料编码='" & e.DataRow("物料编码") & "'")
If dr IsNot Nothing Then
If count >= dr("预发货数量") Then
dr("配货状态") = True
Return
End If
Dim fdr As DataRow
For i As Integer = 0 To drs.Count-1
fdr = drs(i)
fdr("状态") = "出库"
count += fdr("数量")
If count >= dr("预发货数量") Then
dr("配货状态") = True
Return
End If
Next
End If
End If
End If
End Select