以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  签到次数统计请教  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=60850)

--  作者:qiaozhenghua
--  发布时间:2014/12/2 14:08:00
--  签到次数统计请教

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

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

有上面两个表(表A和表B),表B的“上午签到次数”通过表A自动统计。条件是:每天7点至8点签一次或多次只计一次。用代码如何实现。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目.zip


[此贴子已经被作者于2014-12-2 14:26:36编辑过]

--  作者:Bin
--  发布时间:2014/12/2 14:20:00
--  
传图和文件参考这里 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

把你项目文件传上来吧  可以利用Compute  统计 http://www.foxtable.com/help/topics/0393.htm  条件设置为7-8电即可

--  作者:qiaozhenghua
--  发布时间:2014/12/2 14:28:00
--  
那样只能统计一天的
--  作者:有点甜
--  发布时间:2014/12/2 14:47:00
--  
For Each dr As DataRow In DataTables("表B").Select("工号 is not null")
    Dim drs As List(Of DataRow) = DataTables("表A").Select("工号 = \'" & dr("工号") & "\'", "签到时间")
    Dim count As Integer = 0
    Dim pd As Date = Nothing
    For Each cdr As DataRow In drs
        If cdr("签到时间").Hour < 8 AndAlso (Cdate(cdr("签到时间")) - pd).totalHours > 1 Then
            pd = cdr("签到时间")
            count += 1
        End If
    Next
    dr("上午签到次数") = count
Next

--  作者:qiaozhenghua
--  发布时间:2014/12/3 15:59:00
--  
非常感谢有点甜老师的指点。请教一下参数.totalHours是不是应该改为.TotalDays
--  作者:有点甜
--  发布时间:2014/12/3 16:05:00
--  
  不用改。