以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 根据日期列内容生成一张表的列名 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7649) |
||||
-- 作者:blackzhu -- 发布时间:2010/7/20 17:14:00 -- 根据日期列内容生成一张表的列名 我想根据一张表中日期列中的日期,自动生成另外一张表的列名或者列标题,代码怎么写 |
||||
-- 作者:czy -- 发布时间:2010/7/20 17:26:00 -- Dim dtb As New DataTableBuilder("临时表") Dim ColNames As List(Of String) = Datatables("订单").GetUniqueValues("[日期] Is Not Null","日期") For Each ColName As String In ColNames dtb.AddDef(ColName.Replace(" 0:00:00",""), Gettype(String), 32) Next dtb.Build() [此贴子已经被作者于2010-7-20 17:29:35编辑过]
|
||||
-- 作者:blackzhu -- 发布时间:2010/7/20 17:32:00 -- 测试OK,谢谢程版,还有问题再问 |
||||
-- 作者:blackzhu -- 发布时间:2010/7/20 17:36:00 -- 我想问一下,如一张表中,表名为("表A"),已经有A,B,C三列,然后再按照日期列的内容,再加载在A,B,C三列的后面. |
||||
-- 作者:czy -- 发布时间:2010/7/20 20:05:00 -- Dim ColNames As List(Of String) = Datatables("订单").GetUniqueValues("[日期] Is Not Null","日期") For Each ColName As String In ColNames Datatables("表A").DataCols.Add(ColName.Replace(" 0:00:00",""), Gettype(String), 32) Next |
||||
-- 作者:blackzhu -- 发布时间:2010/7/21 7:55:00 -- 昨日谢错了,你这个代码测试OK,再问一个代码.
表A中不是有A.B.C三列吗,其他的列名是根据另外一张表(例如"表B")的日期生成的,但是表b中有A.B.C以及日期和时间三列,我想的是只要表A中的A.B.C三列中的数据和表B中的A.B.C三列的数据一样,那么表B中的时间列的数据自动加载或复制到相对应的表A的日期列中:
例如:
表B 表A的效果
卡号 工号 姓名 日期 时间 卡号 工号 姓名 2010-7-19 12 34 李四 2010-7-19 7:30 12 34 李四 7:30 11:30 12:30 12 34 李四 2010-7-19 11:30 12 34 李四 2010-7-19 12:00 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/21 9:26:00 -- 大概就是这样吧,你慢慢调试琢磨:
Dim Arys As List(Of String()) drs = DataTables("表").Select("a=‘" & arys(0) & "\' And b = \'" & arys(1) & "\' And b= \'" & arys(2) & "\'" ) Dim nr Row = Tables("新表").AddNew() nr("a") = arys(0) nr("b") = arys(1) nr("c") = arys(2) For Each dr As DataRow In drs nr("XX") = nr(XX) & dr("事件") Next Next |
||||
-- 作者:blackzhu -- 发布时间:2010/7/21 9:38:00 -- 狐爸,我是根据C版的代码:
表A中的卡号,姓名,工号是死的,2010-7-19的列名是根据表B的日期列的内容生成的,关键我要的是将表B中李四的时间加载到相应的日期列中. |
||||
-- 作者:blackzhu -- 发布时间:2010/7/21 9:43:00 -- 看附件,从考勤表的内容生成到打印表的内容.
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/21 9:45:00 -- 我四楼的代码就是这个意思啊,如果A表的a\\b\\c三列已经输入内容,而且是死的,那么更简单:
Dim drs As List(of DataRow) For Each nr As DataRow In DataTables("表A").DataRows drs = DataTables("表").Select("a=‘" & nr("a") & "\' And b = \'" & br("b") & "\' And c= \'" & nr("c") & "\'" ) For Each dr As DataRow In drs nr("xx") = nr("xx") & dr("xx") Next Next |