以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教关于表列标题的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45605)

--  作者:sgneb
--  发布时间:2014/2/6 8:04:00
--  [求助]请教关于表列标题的问题
我在学习狐表的过程中遇到一个难题不知道如何实现请教各位大大:
1、我的表A为公用信息表,里面有A,B,C,D四行
2、表B我想用ABCD四行的第一个标示来作为列标题,不知道如何实现。
并且还有这样的情况,表A的行数我还会增加需要动态的增加表B的列,谢谢!

祝大家新年快乐!


--  作者:y2287958
--  发布时间:2014/2/6 10:00:00
--  
论坛中有例子,可以自行搜索一下。
--  作者:lsy
--  发布时间:2014/2/6 10:32:00
--  
If DataTables.Contains("动态表列") = False Then
    Dim Builder As New ADOXBuilder
    Dim tbl As ADOXTable
    Builder.Open()
    tbl = Builder.NewTable("动态表列") \'创建表
    With tbl
        For Each r As Row In Tables("表A").Rows
            If r("证书编号") > "" Then
                .AddColumn(r("证书编号") ,ADOXType.String, 16)
            End If
        Next
    End With
    Builder.AddTable(tbl) \'增加表
    Builder.Close()
    Syscmd.Project.Open(ProjectFile)
Else
    Dim str1,str2 As String
    For Each r As Row In Tables("表A").Rows
        If r("证书编号") > "" Then
            str1 + = r("证书编号") & "|"
        End If
    Next
    For Each dc As DataCol In DataTables("动态表列").DataCols
        str2 + = dc.Name & "|"
    Next
    If str1 <> str2 Then
        Dim Builder As New ADOXBuilder
        Builder.Open() \'打开ADOXBuilder
        With Builder.Tables("动态表列")
            For Each r As Row In Tables("表A").Rows
                If r("证书编号") > "" AndAlso str2.Contains(r("证书编号")) = False Then
                    .AddColumn(r("证书编号") ,ADOXType.String, 16)
                End If
            Next
            For Each s As String In str2.Trim("|").Split("|")
                If str1.Contains(s) = False Then
                    With Builder.Tables("动态表列")
                        .DeleteColumn(s)
                    End With
                End If
            Next
        End With
        Builder.Close() \'关闭ADOXBuilder
        Syscmd.Project.Open(ProjectFile)
    End If
End If

--  作者:njcyt
--  发布时间:2014/2/7 6:44:00
--  
真心谢谢
--  作者:njcyt
--  发布时间:2014/2/7 6:51:00
--  
如果反过来做,怎么写,谢谢
--  作者:Bin
--  发布时间:2014/2/7 8:15:00
--  
反过来也是差不多的,你不可以使用系统菜单的增加列,而是使用自己编码的按钮.

增加列的代码3楼LSY已经给你写了. 增加完毕后,再使用代码添加一行即可.

--  作者:fantasywith
--  发布时间:2015/1/2 21:47:00
--  
还在吗,可以qq联系,我能解决你说的问题。1284524409