以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  编排考勤表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59791)

--  作者:石四
--  发布时间:2014/11/11 10:13:00
--  编排考勤表

参考帮助文件"临时表生成器"示例2,将考勤数据编排成表格样式:

 

Dim dtb As New DataTableBuilder("表B")

dtb.AddDef("姓名", Gettype(String), 32)

For Each v As Date In DataTables("部门考勤").GetValues("考勤日期")

    dtb.AddDef(v, Gettype(Date))

Next

dtb.Build()

For Each v As String In DataTables("部门考勤").GetValues("姓名")

    Dim dr1 As DataRow = DataTables("表B").AddNew()

    dr1("姓名") = v

    For Each dr2 As DataRow In DataTables("部门考勤").DataRows

        If dr2("姓名") = v Then

            dr1(dr2("考勤日期")) = dr2("备注")

        End If

    Next

Next

MainTable = Tables("表B")

 

由于"备注"是字符型数据,与"考勤日期"格式不符,上面粉色字体代码怎么改,使其转为字符型,以1,2,3...样式出现?


--  作者:有点甜
--  发布时间:2014/11/11 10:16:00
--  
dtb.AddDef(v, Gettype(String))
--  作者:石四
--  发布时间:2014/11/11 10:26:00
--  

日期格式为yyyy-mm-dd,占太多位置,整月有31天呢,怎么让它变成1,2,3,4....


--  作者:有点甜
--  发布时间:2014/11/11 10:30:00
--  
 

For Each v As Date In DataTables("部门考勤").GetValues("考勤日期")

    dtb.AddDef(v.Day, Gettype(String))

Next


--  作者:石四
--  发布时间:2014/11/11 10:42:00
--  

报错,不知什么意思:

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/11/11 10:43:00
--  
 

For Each v As Date In DataTables("部门考勤").GetValues("考勤日期")

    dtb.AddDef(v, Gettype(String), "", v.Day)

Next


--  作者:石四
--  发布时间:2014/11/11 10:51:00
--  
以下是引用有点甜在2014-11-11 10:43:00的发言:
 

For Each v As Date In DataTables("部门考勤").GetValues("考勤日期")

    dtb.AddDef(v, Gettype(String), "", v.Day)

Next

又出现新问题:

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/11/11 10:56:00
--  

For Each v As Date In DataTables("部门考勤").GetValues("考勤日期")

    dtb.AddDef(v, Gettype(String), 32, "", v.Day)

Next


--  作者:石四
--  发布时间:2014/11/11 10:59:00
--  
OK!谢谢甜版
--  作者:blackzhu
--  发布时间:2014/11/11 11:04:00
--  
Dim dtb As New DataTableBuilder("表")
For Each v As Date In DataTables("表A").GetValues("第一列","第一列 Is Not null")
   Dim dt As String = Cdate(v).day
   dtb.AddDef(dt, Gettype(String),40)
Next
dtb.Build()