Foxtable(狐表)用户栏目专家坐堂 → 自动复制子表各行


  共有4788人关注过本帖平板打印复制链接

主题:自动复制子表各行

帅哥哟,离线,有人找我吗?
tj-pacer
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
自动复制子表各行  发帖心情 Post By:2013/10/12 14:19:00 [只看该作者]

自动复制行

假定表A有个逻辑列,希望在某行选中此逻辑列时,自动将此行复制到表B。

为此可以将表A的DataColChanged事件代码设置为:

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
     Dim dr As DataRow = DataTables("表B").AddNew
    
For Each dc As DataCol In DataTables("B").DataCols
         dr(dc.Name) = e.DataRow(dc.Name)
    
Next
End
If

上面的代码假定表A和表B的结构相同,且列名相同。

如果列名不同,或者只需复制部分列,可以参考下面的代码:

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"}
'A表数据来源列
    Dim nmb() As String = {"B1"
,"B2","B3","B4"} 'B表数据接收列
    Dim dr As DataRow = DataTables("表B"
).AddNew
   
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
   
Next
End
If

 

问题:如果选中表A的逻辑列某行,不需要将该行复制到表B,而是要将表A子表该行关联的所有行复制到表B,代码如何写?

 


 回到顶部