以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  两个表中,将一个表列内容添加到另一表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91099)

--  作者:malavazos
--  发布时间:2016/9/29 13:43:00
--  两个表中,将一个表列内容添加到另一表

两个表是建立了关联,希望将关联内容表A的列,添加到表B的列中,是增加列,不是增加记录。如何编写代码,请指教?

谢谢


--  作者:有点蓝
--  发布时间:2016/9/29 14:13:00
--  
参考:http://www.foxtable.com/webhelp/scr/1428.htm
--  作者:malavazos
--  发布时间:2016/9/29 15:10:00
--  

抱歉这是一个同一表的不同列的运算,如果是两个表的可否给一个具体的代码实例:


图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/9/29 16:26:16编辑过]

--  作者:有点蓝
--  发布时间:2016/9/29 15:39:00
--  
用法一样的

Dim cl As DataCol = DataTables("表A").DataCols("第十列")
If cl.IsString Then
    DataTables("表B").DataCols.Add(cl.Name,Gettype(String),cl.MaxLength)
ElseIf cl.IsDate Then
    ......
End If



--  作者:malavazos
--  发布时间:2016/9/29 16:26:00
--  

抱歉我更改后仅仅是增加了一列,并没有增加内容。我修改了几个参数,得到这样的结果。布置是何种原因。费心请帮帮我?谢谢

 


--  作者:malavazos
--  发布时间:2016/9/29 16:29:00
--  

我希望将他内容不仅仅按照最大的长度建立列,并且添加每行对应的值

 


--  作者:有点蓝
--  发布时间:2016/9/29 17:06:00
--  
先循环添加列,再循环添加值。

初学者建议先看看帮助和视频教程:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187

--  作者:有点蓝
--  发布时间:2016/9/29 17:16:00
--  
Dim clst As new List(of String)
For Each c As DataCol In DataTables("表A").DataCols
    If DataTables("表B").DataCols.Contains(c.Name) = False Then
        clst.Add(c.Name)
        If c.IsString Then
            DataTables("表B").DataCols.Add(c.Name,Gettype(String),c.MaxLength,"",c.Caption)
        ElseIf c.IsDate Then
            DataTables("表B").DataCols.Add(c.Name,Gettype(Date),"",c.Caption)
        ElseIf c.IsNumeric Then
            DataTables("表B").DataCols.Add(c.Name,Gettype(Double),"",c.Caption)
        ElseIf c.IsBoolean Then
            DataTables("表B").DataCols.Add(c.Name,Gettype(Boolean),"",c.Caption)
        End If
    End If
Next
Dim dr As Row
For Each r As Row In Tables("表A").Rows
    dr = Tables("表B").AddNew
    For Each c As String In clst
        dr(c) = r(c)
    Next
Next