以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]已解决!异常考勤处理 去掉不必要打卡记录按条件复制数据到另一个表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75977)

--  作者:xiangwei_zeng
--  发布时间:2015/10/19 10:54:00
--  [求助]已解决!异常考勤处理 去掉不必要打卡记录按条件复制数据到另一个表

想通过改写如下代码让表M实现表B的效果,即复制行时进行一些判断,将重复考勤不记录但又不留空白(打卡时间距上次打卡时间在5分钟内视为重复考勤),代码写在配置栏的标准按钮1上。

Dim dr2 As DataRow
For Each dr1 As DataRow In DataTables("表D").DataRows   
    dr2 = DataTables("表M").AddNew()
    For i As Integer = 0 To DataTables("表D").DataCols.Count - 1
        dr2(Tables("表D").Cols(i).Name) = dr1(Tables("表D").Cols(i).Name)
    Next
Next

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:考勤异常处理.foxdb

试用版的代码在窗口中写的。


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:异常考勤处理.table

[此贴子已经被作者于2015/10/21 12:34:50编辑过]

--  作者:大红袍
--  发布时间:2015/10/19 11:14:00
--  

1、你要在foxtable还是在excel里处理;是问怎么生成这样的报表还是问怎么把单元格标成黄色。

 

2、请上传具体foxtable例子


--  作者:xiangwei_zeng
--  发布时间:2015/10/20 21:17:00
--  
问题待解决,请哪位高手帮助,谢谢!
--  作者:大红袍
--  发布时间:2015/10/20 21:33:00
--  
Dim dr2 As DataRow
For Each dr1 As DataRow In DataTables("表D").DataRows
    dr2 = DataTables("表M").AddNew()
    Dim p As Date = Nothing
    Dim i As Integer = 1
    For Each dc As DataCol In DataTables("表D").DataCols
        If dc.Name Like "刷卡*" AndAlso dc.name <> "刷卡日期" Then
            If dr1.IsNull(dc.name) = False Then
                Dim sp As TimeSpan = cdate(dr1(dc.name)) - p
                If sp.TotalMinutes > 5 Then
                    dr2("刷卡" & i) = dr1(dc.Name)
                    i += 1
                    p = dr1(dc.Name)
                End If
            End If
        Else
            dr2(dc.name) = dr1(dc.name)
        End If
    Next
Next

--  作者:xiangwei_zeng
--  发布时间:2015/10/21 12:33:00
--  

谢谢红茶哥!问题已经解决,老婆做考勤的,现在用这个每天可省不少时间!太感谢了!