Foxtable(狐表)用户栏目专家坐堂 → 排班统计表问题


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

主题:排班统计表问题

帅哥哟,离线,有人找我吗?
夜点蚊香
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
排班统计表问题  发帖心情 Post By:2021/1/20 23:17:00 [显示全部帖子]

排班表有四个字段 姓名 状态 开始时间  结束时间
何时捷 正常 2021-01-20 22:00:00 2021-01-21 08:00:00
何时捷 正常 2021-01-21 22:00:00 2021-01-22 08:00:00
陈艳娜 正常 2021-01-20 22:00:00 2021-01-21 08:00:00

要在月统计表中 显示 每天24个小时时段,并且 显示 每个时段有多少人上班.
如何选择年月的时候生成当月的所有天数,及全天24个时段.再把相应时段上班的人数天写进去.
请指教.用什么方法建表或者什么操作方法好一些.
[此贴子已经被作者于2021/1/20 23:29:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2021/1/21 10:23:00 [显示全部帖子]

增加了一下统计表  字段   店面 日期 时段
在统计表窗口选择开始日期,  结束日期  字段  然后点击查询

在统计字段 生成 开始日期  到结束日期的数据 
例如
统计表窗口选择  2020-1-1  2020-1-2 然后点击查询
生成数据  字段  日期  时段(0-23,一天24个小时)
2020-1-1 0
2020-1-1 1
2020-1-1 2
...
2020-1-1 23
2020-1-2 0
2020-1-2 1
2020-1-2 2
...
2020-1-2 23

请指教

 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2021/1/21 12:27:00 [显示全部帖子]

实例已上传.请看一下.
生成数据行以后,在根据数据行把排版表里面相应的人数统计出来.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:排班系统.rar


 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2021/1/21 22:52:00 [显示全部帖子]

两个问题大神帮忙解决一下
1.大神给的查询公式  时间段不起作用.
2.顺序是先根据日期时间段先生成  开始时间日期,并且生成0到23个时间段,然后依次生成结束日期之间的日期及0到23个时间段.
然后根据日期及时间段获取对应的排班人数.
请大神帮忙解决一下.

 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
帮忙看一下筛选时段的代码,  发帖心情 Post By:2021/1/22 9:38:00 [显示全部帖子]

Dim dt As DataTable = DataTables("统计表时段人数")
Dim dr As DataRow
For Each r As Row In Tables("排班表").Rows
    Dim d1 As Date = r("开始时间")
    Dim d2 As Date = r("结束时间")
    Do While d1 < d2
        'Dim Products As List(Of String)
        'Products = DataTables("排班表").GetValues("店面","上班日期 >= #" & d1.Date & "# And 上班日期 <= #" & d2.Date & "#")
        Tables("排班表").Filter = "[上班日期] >= #" & d1.Date & "#  And [上班日期] <= #" & d2.Date & "#"
        dr = dt.Find("日期=#" & d1.Date & "# and 时段=" & d1.Hour)
        If dr Is Nothing Then
            dr = dt.AddNew
            dr("日期") = d1.Date
            dr("时段") = d1.Hour
        End If
        dr("人数") = dr("人数") + 1
        d1 = d1.AddHours(1)
    Loop
Next

问题,时段筛选起作用了,不过筛选的出来的数据不对.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:排班系统.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
修改后的时间筛选代码,帮忙看一下.时间筛选不起作用.  发帖心情 Post By:2021/1/29 11:19:00 [显示全部帖子]

Tables("排班表").ApplyFilter = False '清楚排班表状态
Dim dt As DataTable = DataTables("统计表时段人数")
Dim dr As DataRow
Dim tbl As Table = Tables("排班表")
With e.Form.Controls("开始时间")
    If .Value IsNot Nothing Then
        tbl.Filter = "上班日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("结束时间")
    If .Value IsNot Nothing Then
        tbl.Filter = "上班日期 <= #" & .Value & "#"
    End If
End With
For Each r As Row In Tables("排班表").Rows
    Dim d1 As Date = r("开始时间")
    Dim d2 As Date = r("结束时间")
    Do While d1 < d2
        dr = dt.Find("日期=#" & d1.Date & "# and 时段=" & d1.Hour)
        If dr Is Nothing Then
            dr = dt.AddNew
            dr("日期") = d1.Date
            dr("时段") = d1.Hour
        End If
        dr("人数") = dr("人数") + 1
        d1 = d1.AddHours(1)
    Loop
Next

 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
时间筛选和临时统计表问题解决了  发帖心情 Post By:2021/1/29 12:40:00 [显示全部帖子]

时间筛选和临时统计表问题解决了
[此贴子已经被作者于2021/1/29 13:45:23编辑过]

 回到顶部