Foxtable(狐表)用户栏目专家坐堂 → 关于考勤数据指定格式生成表格(项目已经改成内部表了!))


  共有7314人关注过本帖树形打印复制链接

主题:关于考勤数据指定格式生成表格(项目已经改成内部表了!))

帅哥哟,离线,有人找我吗?
jspta
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/15 11:08:00 [只看该作者]

以下是引用xietan417在2013-7-15 10:58:00的发言:

容易是容易!关键是我不会做,而且我要的就是这种效果!

不会可以自己学习嘛,后面要用到编码的很多,你不会只能天天等别人帮你修改了。

 


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2013/7/15 11:17:00 [只看该作者]

以下是引用jspta在2013-7-15 11:08:00的发言:

不会可以自己学习嘛,后面要用到编码的很多,你不会只能天天等别人帮你修改了。

 

那要这个论坛有毛用啊!就是不会才传个例子上来问的嘛!个个都自己闭关修炼啊?


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2013/7/16 22:47:00 [只看该作者]

看来我的问题没人管了啊!图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2013/7/17 10:24:00 [只看该作者]

.......................................

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/17 15:46:00 [只看该作者]

我理你,命令窗口执行:

 

 

Dim dt1 As Date = #6/8/2011#
Dim dt2 As Date = #12/31/2011#
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("name", Gettype(String), 32)
dtb.AddDef("cardno", Gettype(String), 32)
dtb.AddDef("date", Gettype(Date))
dtb.AddDef("t1", Gettype(String))
dtb.AddDef("t2", Gettype(String))
dtb.Build
For Each dr1 As DataRow In DataTables("ZlEmployee").DataRows
    For i As Integer = 0 To (dt2 - dt1).TotalDays
        Dim drs As List(of DataRow) =  DataTables("Kq_Source").Select("CardNo = '" & dr1("CardNo") & "'And FDateTime = #" & dt1.AddDays(i) & "#")
        For n As Integer = 0 To drs.count -1
            Dim dr2 As DataRow = DataTables("统计").Addnew
            dr2("name") = dr1("Name")
            dr2("CardNo") = dr1("CardNo")
            dr2("date") = drs(n)("FDateTime").Date
            If n = 0 Then
                dr2("t1") = Format(drs(n)("FDateTime"),"HH:mm")
            ElseIf n =1then
                dr2("t2") = Format(drs(n)("FDateTime"),"HH:mm")
                Exit For
            End If
        Next
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2013/7/21 23:01:00 [只看该作者]

以下是引用狐狸爸爸在2013-7-17 15:46:00的发言:

我理你,命令窗口执行:

 

 

Dim dt1 As Date = #6/8/2011#
Dim dt2 As Date = #12/31/2011#
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("name", Gettype(String), 32)
dtb.AddDef("cardno", Gettype(String), 32)
dtb.AddDef("date", Gettype(Date))
dtb.AddDef("t1", Gettype(String))
dtb.AddDef("t2", Gettype(String))
dtb.Build
For Each dr1 As DataRow In DataTables("ZlEmployee").DataRows
    For i As Integer = 0 To (dt2 - dt1).TotalDays
        Dim drs As List(of DataRow) =  DataTables("Kq_Source").Select("CardNo = '" & dr1("CardNo") & "'And FDateTime = #" & dt1.AddDays(i) & "#")
        For n As Integer = 0 To drs.count -1
            Dim dr2 As DataRow = DataTables("统计").Addnew
            dr2("name") = dr1("Name")
            dr2("CardNo") = dr1("CardNo")
            dr2("date") = drs(n)("FDateTime").Date
            If n = 0 Then
                dr2("t1") = Format(drs(n)("FDateTime"),"HH:mm")
            ElseIf n =1then
                dr2("t2") = Format(drs(n)("FDateTime"),"HH:mm")
                Exit For
            End If
        Next
    Next
Next

谢谢!狐爸!爱死你了!


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
狐爸求助啦!  发帖心情 Post By:2013/8/2 10:24:00 [只看该作者]

上次你给出的代码有问题呢!会出现在以下问题

如何填上正常时间:2011-07-01 12:00  的话则不能筛选显示出来

然后同一天的时间则分成了两行,而不是在同一行!

 
图片点击可在新窗口打开查看此主题相关图片如下:统计.jpg
图片点击可在新窗口打开查看

 

Dim dt1 As Date = #6/8/2011#
Dim dt2 As Date = #12/31/2011#
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("name", Gettype(String), 32)
dtb.AddDef("cardno", Gettype(String), 32)
dtb.AddDef("date", Gettype(Date))
dtb.AddDef("t1", Gettype(String))
dtb.AddDef("t2", Gettype(String))
dtb.Build
For Each dr1 As DataRow In DataTables("ZlEmployee").DataRows
    For i As Integer = 0 To (dt2 - dt1).TotalDays
        Dim drs As List(of DataRow) =  DataTables("Kq_Source").Select("CardNo = '" & dr1("CardNo") & "'And FDateTime = #" & dt1.AddDays(i) & "#")
        For n As Integer = 0 To drs.count -1
            Dim dr2 As DataRow = DataTables("统计").Addnew
            dr2("name") = dr1("Name")
            dr2("CardNo") = dr1("CardNo")
            dr2("date") = drs(n)("FDateTime").Date
            If n = 0 Then
                dr2("t1") = Format(drs(n)("FDateTime"),"HH:mm")
            ElseIf n =1 then
                dr2("t2") = Format(drs(n)("FDateTime"),"HH:mm")
                Exit For
            End If
        Next
    Next
Next

以上的n 是drs 行数,这个n在什么情况=0 或者 =1 啊!我想不明白!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/2 10:32:00 [只看该作者]

Dim drs As List(of DataRow) =  DataTables("Kq_Source").Select("CardNo = '" & dr1("CardNo") & "'And FDateTime = #" & dt1.AddDays(i) & "#")

 

改为:

 

Dim drs As List(of DataRow) =  DataTables("Kq_Source").Select("CardNo = '" & dr1("CardNo") & "'And FDateTime >= #" & dt1.AddDays(i) & "# And FDateTime < #" & dt1.AddDays(i +1) & "# ")

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2013/8/2 10:39:00 [只看该作者]

但还是同一天还是分成了两行!不能同一行吗?

 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6397 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2013/8/2 11:20:00 [只看该作者]

同一天的时间还是不能在同一行显示啊!还是分成了两行!

然后在date 这个列 能不能这样:我选择了7-1 至7-31 这个时间段,那么不管它有没有考勤数据,都把这天的date显示出来?

如:

date     t1         t2

 

7-1    12:00     13:00

7-2

7-3    11:00     14:00

7-4    12:40     17:00

7-5    9:19

7-6    17:30           

....   

7-31   9:00      17:30

 


 回到顶部
总数 38 上一页 1 2 3 4 下一页