以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请问如何向其他表添加多行数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61767)

--  作者:youngling
--  发布时间:2014/12/18 20:24:00
--  请问如何向其他表添加多行数据

需要根据订单主表的订单行数向订单明细表新增相应行数,并在新增的行里面 把对应行的客户,客户订单号,下单日期添加到新增的行里面,代码我写了,但只能向新增的第一行添加数据,请问该如何改下代码呀。

 

 
图片点击可在新窗口打开查看此主题相关图片如下:q12.jpg
图片点击可在新窗口打开查看

 

代码如下:

Select Case e.DataCol.Name
    Case "订单行数"
        If e.DataRow.IsNull("订单行数") = False Then \'如果已经输入客户订单号
            If e.DataRow.GetChildRows("订单明细表").Count = 0 Then \'而且无订单明细
                Dim DL As Integer
                \'If e.DataCol.Name = "订单行数" Then
                DL = e.DataRow("订单行数")
                Dim c As Integer= Tables("订单明细表").Rows.count  \'将行数赋值给c
                \'DataTables("订单明细表").AddNew( DL )
                Dim dr As DataRow = DataTables("订单明细表").AddNew(DL)
                Dim i As Integer
                For i = c To c + DL   ‘这段循环语句不起作用呀
                    dr("客户订单号") = e.DataRow("客户订单号")
                    dr("客户") = e.DataRow("客户")
                    dr("下单日期") = e.DataRow("下单日期")
                    dr("内部订单号") = e.DataRow("内部订单号")
                Next
           End If
        End If
End Select

 

另外我需要实现订单明细表如果有重复行就提示重复行,我在论坛搜到一段代码很有用,只是我想改下却不会改。代码如下:

 

\'任意列数重复值判断的通用代码给有需要的同学,假设我们用:客户订单号 客户产品号 订单行号 3列来做判断
Dim str0 As New List (Of String)
        Dim str1 As New List (Of String)
        Dim id0,id1,flt,celltext As String
        For Each r As Row In CurrentTable.Rows
            celltext=r("客户订单号")&r("客户产品号")&r("订单行号")
            If str0.Contains(celltext) =False Then
                id0 + = r("_Identify") & ","

            Else
                str1.Add(celltext)
               
            End If
            str0.Add(celltext)
        Next
       
        For Each r As Row In CurrentTable.Rows
            celltext=r("客户订单号")&r("客户产品号")&r("订单行号")
            If str1.Contains(celltext) Then
                id1 + = r("_Identify") & ","
               
            End If
        Next
       
        If id1 > "" Then
            id1 = id1.Trim(",")
        msgbox("存在重复数据,请核实!")
        End If
       
        If id1 > "" Then
            flt = "_Identify In (" & id1 & ")"
        End If
       
        CurrentTable.Filter = flt

        CurrentTable.Sort="客户订单号,客户产品号,订单行号"

 

我需要改写成如果没有重复代码就直接保存,现在的代码会把数据排序,我不需要这个功能,我只需要把重复数据筛选出来供查看就可以了。这个该如何改?

 

 

请高手指教! 谢谢!

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

[此贴子已经被作者于2014-12-18 20:24:36编辑过]

--  作者:有点甜
--  发布时间:2014/12/18 20:40:00
--  

 

 

 重复的行指什么?参考 http://www.foxtable.com/help/topics/2481.htm

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:youngling
--  发布时间:2014/12/18 21:46:00
--  

谢谢甜老师。

 

根据你给出的参考页,我已经改好了。