以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何汇总出勤(加班.迟到早退等情况)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88441)

--  作者:zhangning
--  发布时间:2016/8/3 8:44:00
--  如何汇总出勤(加班.迟到早退等情况)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:人事管理.table

开发者   密码:qdkf
在出勤相关表中 各车间录入,最终工厂长批准,
在月度加班汇总表中,工厂长批准的,自动根据出勤相关表中的日期,进行判断,(如是周一到周五加班的,就是1.5倍,
如是周六、周日加班的,就是2倍,法定节假日的就是3倍工资),并自动汇总,一个月度中,每人一行,

这样的要求如在窗口中,如何实现呢,大概做了一个窗口,汇总处的编码如何写?

因不懂编码,请老师帮写写呗

--  作者:大红袍
--  发布时间:2016/8/3 9:54:00
--  

法定节日,你还得单独做一个法定节日的表。

 

基本代码

 

Dim dt As DataTable = DataTables("出勤相关")
For Each ary() As String In dt.GetValues("部门|当事人", "出勤分类 = \'加班\'")
    Dim sum1 = 0
    Dim sum2 = 0
    For Each dr As DataRow In dt.Select("部门 = \'" &  ary(0) & "\' and 当事人 = \'" & ary(1) & "\' and 出勤分类 = \'加班\'")
        Dim d As Date = dr("开始时间")
        If d.DayOfWeek >= 1 AndAlso d.DayOfWeek <= 5 Then
            sum1 += dr("计划小时数")
        Else
            sum2 += dr("计划小时数")
        End If
    Next
    Dim ndr As DataRow = DataTables("月度加班汇总").AddNew
    ndr("部门") = ary(0)
    ndr("姓名") = ary(1)
    ndr("加班H数一倍半") = sum1
    ndr("加班H数二倍") = sum2
Next


--  作者:zhangning
--  发布时间:2016/8/3 10:00:00
--  
谢谢老师,请问是在月度加班汇总的那个事件中写这些代码?

还有,老师,我是新手,除了看帮助外,要学会这些代码,还要在哪些方面下功夫呢?


--  作者:大红袍
--  发布时间:2016/8/3 10:25:00
--  

 单独做一个按钮执行,或者写到 MainTableChanged 事件

 

 把帮助文档理解透彻就差不多了。