以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  重复行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92127)

--  作者:jamhuton
--  发布时间:2016/10/26 17:00:00
--  重复行

Dim Cols1() As String = {"订单编号","发货人","收货人","箱量","箱型","出口日期","起运港","目的港"}
Dim Cols2() As String = {"Orderno","consignor_company","consignee_company","container_volume","container_size","departure_date","port_departure","port_destination"}
For Each dr1 As DataRow In DataTables("出口订单").Select("")
    Dim dr2 As DataRow = DataTables("出口单证").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
    If dr1("成交方式") = "CIF" Then
        dr2("transaction_mode") = dr1("成交方式") & " " & dr1("目的港")
    ElseIf dr1("成交方式") = "FOB" Then
        dr2("transaction_mode") = dr1("成交方式") & " " & dr1("起运港")
    End If
Next

这代码执行后,每输入一列,目标表就增加一行。如何解决?

--  作者:有点蓝
--  发布时间:2016/10/26 17:30:00
--  
代码写在哪里的?没看出和输入一列有什么关系
--  作者:jamhuton
--  发布时间:2016/10/28 9:59:00
--  
写【出口订单】的datecollchanged


--  作者:jamhuton
--  发布时间:2016/10/28 10:02:00
--  
简单说吧,要把A表的部分列跨表填入B表,A表数据刷新的时候,B表数据也刷新。保持数据的一致性。
--  作者:jamhuton
--  发布时间:2016/10/28 10:09:00
--  
1楼代码执行没有问题,但是源表输入一个数据会在目标表增加一行,能否加一个代码,加一个判断条件,比如根据某一列来控制。有同名的就更改数据,没有同名的才新增行。


--  作者:有点蓝
--  发布时间:2016/10/28 10:33:00
--  
Select Case e.DataCol.Name
    Case "订单编号","发货人","收货人","箱量","箱型","出口日期","起运港","目的港"
        If e.DataRow.IsNull("订单编号") = False Then
            Dim Cols1() As String = {"发货人","收货人","箱量","箱型","出口日期","起运港","目的港"}
            Dim Cols2() As String = {"consignor_company","consignee_company","container_volume","container_size","departure_date","port_departure","port_destination"}
            Dim dr As DataRow
            dr = DataTables("出口单证").Find("Orderno = \'" & e.DataRow("订单编号") & "\'")
            If dr Is Nothing Then
                dr = DataTables("出口单证").AddNew()
                dr("Orderno") = e.DataRow("订单编号")
            End If
            For i As Integer = 0 To Cols1.Length -1
                dr(Cols2(i)) = e.DataRow(Cols1(i))
            Next
            
            If e.DataRow("成交方式") = "CIF" Then
                dr("transaction_mode") = e.DataRow("成交方式") & " " & e.DataRow("目的港")
            ElseIf e.DataRow("成交方式") = "FOB" Then
                dr("transaction_mode") = e.DataRow("成交方式") & " " & e.DataRow("起运港")
            End If
            
        End If
End Select

--  作者:jamhuton
--  发布时间:2016/10/28 12:07:00
--  
十分感谢,很好用