以文本方式查看主题 - 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 |