以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  子表自动增加行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76742)

--  作者:huazhencong
--  发布时间:2015/11/4 11:38:00
--  子表自动增加行
请教:父表增加一行时,子表自动增加100行的代码!
--  作者:大红袍
--  发布时间:2015/11/4 11:44:00
--  

DataColChanged事件

 

If e.DataCol.Name = "关联列" Then

    Tables("表A.表B").AddNew(100)

End If


--  作者:Hyphen
--  发布时间:2015/11/4 11:47:00
--  

参考 http://www.foxtable.com/help/topics/2477.htm

 


--  作者:huazhencong
--  发布时间:2015/11/4 12:20:00
--  

可是老师,我写在里面的代码子表只能自动增加一行,并不是100行,假如注释掉(代码2)倒是实现的,可是父表子表的 下载日期 全部都成空白了,也就没有意义了


表事件

 

家乐福订单列表_DataColChanged  (代码1)

 

Select Case e.DataCol.Name

    Case "下载日期"

        If e.DataRow.IsNull("下载日期") = False Then \'如果已经输入下载日期

            If e.DataRow.GetChildRows("家乐福订单明细").Count = 0 Then \'而且无家乐福订单明细

                Dim dr As DataRow = DataTables("家乐福订单明细").AddNew(100)

                dr("下载日期") = e.DataRow("下载日期")

            End If

        End If

End Select

 

家乐福订单列表_DataRowAdded  (代码2)

 

\'e.DataRow("下载日期") = Date.Today()


--  作者:Hyphen
--  发布时间:2015/11/4 14:03:00
--  

Select Case e.DataCol.Name
   
    Case "下载日期"
       
        If e.DataRow.IsNull("下载日期") = False Then \'如果已经输入下载日期
           
            If e.DataRow.GetChildRows("家乐福订单明细").Count = 0 Then \'而且无家乐福订单明细
               
                Dim dr As DataRow = DataTables("家乐福订单明细").AddNew(100)
               
                \'dr("下载日期") = e.DataRow("下载日期")
                For i As Integer = DataTables("家乐福订单明细").DataRows.Count - 1 To DataTables("家乐福订单明细").DataRows.Count - 100 Step -1
                    DataTables("家乐福订单明细").DataRows(i)("下载日期") = e.DataRow("下载日期")
                Next
            End If
           
        End If
       
End Select


--  作者:huazhencong
--  发布时间:2015/11/4 14:08:00
--  
管用,谢谢啦!