以下是引用jiskin在2013-5-10 16:57:00的发言:
Select Case e.DataCol.name
Case "零件名称","规格","材质"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.Isnull("零件名称") AndAlso dr.Isnull("规格") AndAlso dr.Isnull("材质") Then
dr("仓库_库位代码") = Nothing
Else
If dr.Isnull("零件名称") = False AndAlso dr.Isnull("规格") = False AndAlso dr.Isnull("材质") = False Then
pr = DataTables("库存总表").Find("[品名] = '" & dr("零件名称") & "' and [规格] = '" & dr("规格") & "' and [材质] = '" & dr("材质") & "'")
dr("仓库_库位代码") = pr("储位")
End If
If dr.Isnull("零件名称") = False AndAlso dr.Isnull("规格") = False AndAlso dr.Isnull("材质") = True Then
pr = DataTables("库存总表").Find("[品名] = '" & dr("零件名称") & "' and [规格] = '" & dr("规格") & "'")
dr("仓库_库位代码") = pr("储位")
End If
If dr.Isnull("零件名称") = False AndAlso dr.Isnull("规格") = True AndAlso dr.Isnull("材质") = False Then
pr = DataTables("库存总表").Find("[品名] = '" & dr("零件名称") & "' and [材质] = '" & dr("材质") & "'")
dr("仓库_库位代码") = pr("储位")
End If
If dr.Isnull("零件名称") = False AndAlso dr.Isnull("规格") = True AndAlso dr.Isnull("材质") = True Then
dr("仓库_库位代码") = Nothing
End If
End If
End Select
谁帮我简化一下啊
"零件名称","规格","材质"三个列
如果三列有都内容 就根据这三列内容查找
如果名称有内容 规格有内容 材质无内容 就根据名称 规格找
如果名称有内容 材质有内容 就根据这两个找
Dim arr1() As String = {"零件名称","规格","材质"}
Dim arr2() As String = {"品名","规格","材质"}
Dim dr As DataRow = e.DataRow
Dim str As String = ""
Dim intA As Integer
For IntA = 0 To arr1.Length - 1
If dr.IsNull(arr1(intA)) = False Then
str = str & arr2(IntA) & " = '" & arr1(IntA) & "' and "
End If
Next
if str > "" then
str = str.TrimEnd(" " ,"d","n","a")
Dim pr As DataRow = DataTables("库存总表").Find(str)
If dr("仓库_库位代码") <> pr("储位") Then dr("仓库_库位代码") = pr("储位")
end if
感觉你这代码设置的地方有点不合理
[此贴子已经被作者于2013-5-10 17:43:34编辑过]