以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动引用代码整合  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=17246)

--  作者:caoxy
--  发布时间:2012/3/8 9:09:00
--  自动引用代码整合

师傅你好:

整合下代码:

If e.DataCol.Name = "订单编号" OrElse e.DataCol.Name = "规格尺寸" Then
    Dim dr As DataRow
       dr = DataTables("铁盘订单").Find("[订单编号] = \'" & e.DataRow("订单编号") & "\' And [规格尺寸] = \'" & e.DataRow("规格尺寸") & "\'")
    If dr IsNot Nothing Then 
        e.DataRow("部门") = dr("部门")
        e.DataRow("出口国家") = dr("出口国家")
        e.DataRow("处理要求") = dr("处理要求")
        e.DataRow("出证") = dr("出证")
        e.DataRow("订单数量") = dr("订单数量")
        e.DataRow("交货日期") = dr("交货日期")
    Else
        e.DataRow("部门") = Nothing
        e.DataRow("出口国家") = Nothing
        e.DataRow("处理要求") = Nothing
        e.DataRow("出证") = Nothing
        e.DataRow("订单数量") = Nothing
        e.DataRow("交货日期") = Nothing
    End If
End If
If e.DataCol.Name = "订单编号" OrElse e.DataCol.Name = "规格尺寸" Then
    Dim dr As DataRow
        dr = DataTables("木盘订单").Find("[订单编号] = \'" & e.DataRow("订单编号") & "\' And [规格尺寸] = \'" & e.DataRow("规格尺寸") & "\'")
    If dr IsNot Nothing Then 
         e.DataRow("部门") = dr("部门")
        e.DataRow("出口国家") = dr("出口国家")
        e.DataRow("处理要求") = dr("处理要求")
        e.DataRow("出证") = dr("出证")
        e.DataRow("订单数量") = dr("订单数量")
        e.DataRow("交货日期") = dr("交货日期")
    Else
         e.DataRow("部门") = Nothing
        e.DataRow("出口国家") = Nothing
        e.DataRow("处理要求") = Nothing
        e.DataRow("出证") = Nothing
        e.DataRow("订单数量") = Nothing
        e.DataRow("交货日期") = Nothing
    End If
End If

If e.DataCol.Name = "订单编号" OrElse e.DataCol.Name = "规格尺寸" Then
    Dim dr As DataRow
      dr = DataTables("木箱订单").Find("[订单编号] = \'" & e.DataRow("订单编号") & "\' And [规格尺寸] = \'" & e.DataRow("规格尺寸") & "\'")
    If dr IsNot Nothing Then \'如果找到
        e.DataRow("部门") = dr("部门")
        e.DataRow("出口国家") = dr("出口国家")
        e.DataRow("处理要求") = dr("处理要求")
        e.DataRow("出证") = dr("出证")
        e.DataRow("订单数量") = dr("订单数量")
        e.DataRow("交货日期") = dr("交货日期")
    Else
        e.DataRow("部门") = Nothing
        e.DataRow("出口国家") = Nothing
        e.DataRow("处理要求") = Nothing
        e.DataRow("出证") = Nothing
        e.DataRow("订单数量") = Nothing
        e.DataRow("交货日期") = Nothing
    End If
End If
只有表名称不同,其它都一样,能整合吗,请师傅帮忙,谢谢!


--  作者:ahbzczy
--  发布时间:2012/3/8 9:31:00
--  

自己想当然想的,没有创建表去测试:

 

Select Case e.DataCol.Name
    Case "订单编号", "规格尺寸"
        Dim dr As DataRow
        Dim names() As String = {"铁盘订单","木盘订单","木箱订单"}
        For Each name As String In names \'按顺序遍历表
            dr = DataTables(name).Find("[订单编号] = \'" & e.DataRow("订单编号") & "\' And [规格尺寸] = \'" & e.DataRow("规格尺寸") & "\'")
            If dr IsNot Nothing Then \'如果三个表中按顺序某表有此数据行
                e.DataRow("部门") = dr("部门")
                e.DataRow("出口国家") = dr("出口国家")
                e.DataRow("处理要求") = dr("处理要求")
                e.DataRow("出证") = dr("出证")
                e.DataRow("订单数量") = dr("订单数量")
                e.DataRow("交货日期") = dr("交货日期")
                Exit For \'退出循环
            End If
        Next
        If dr Is Nothing Then \'如果最终没有这一行
            e.DataRow("部门") = Nothing
            e.DataRow("出口国家") = Nothing
            e.DataRow("处理要求") = Nothing
            e.DataRow("出证") = Nothing
            e.DataRow("订单数量") = Nothing
            e.DataRow("交货日期") = Nothing
        End If
End Select