关于加班考勤记录的解决方案:
如果临时决定需要加班的,不必对当天方案进行修改,只需要照常登记。并且记录登记时间。对于此种方式的考勤记录,应该在月底进行考勤结果统计时,查询“额外加班表”中是否有本月的”额外加班记录”,若有”额外加班记录”则弹出提示框提醒统计人员进行统计, 否则直接进行统计。加班时间的安排可以在事后设置,也可以提前设置。
1)在此前现有的数据库中增加两个数据表: 额外加班记录登记表(T_TimeOverTime)和 额外加班方案明细表(T_TimeOverTimeDetail).具体如下:额外加班表(T_TimeOverTime)
字段名          字段类型与长度 说明
IAttend#*          tinyint(1) !null 编号
IIdx#          tinyint(1) 时间段序号(外键,T_TimeOverTimeDetail)
dDateTime Datetime 加班日期
dBeginTime datetime  上班时间
dEndTime datetime  下班时间
iLMinutes Int  迟到分钟数
iEMinutes Int 早退分钟数
fHourValue float !null 合计时数
iLogIn int 标志是否已经统计过(1:已经统计,0:还未统计)额外加班方案明细表(T_TimeOverTimeDetail)
IIdx#*             tinyint(1) !null 时间段序号
iDept#             int                    部门编号(外键)
sStaffer#             varchar(10)           职员编号(外键)
sWorkPiece    varchar(20) !null 工作时段名称
dBeginTime    datetime !null   上班时间
dEndTime             datetime !null          下班时间
2)在额外加班方案明细表中设置加班的基本情况,(可以在加班之前进行设置,也可以在加班之后追加设置),其中可以分别按全部,部门及个人三种情况设置加班计划.
3)登记加班记录时,先进行判断额外加班方案明细表中是否已经对本此加班计划进行了设置,若是则在登记加班记录时就可以判断是否迟到,早退情况,并登记在档.否则在每次统计时则进行判断迟到,早退情况.
4)在判断上下班的情况方面,每次登记记录时先检索是这记录的”下班时间”字段是否为空,若不为空,则为上班时间,增加一新记录并且设下班时间为空;否则为下班时间,在原记录的”下班时间”字段追加此时间.
5)每次统计上班记录时,应判断”额外加班记录表”中的”统计标志(iLogIn)”,若全为1表示已经统计过加班记录.若有为0的标志存在,则应对这此标志为0的记录进行统计,并且加到统计表(T_TimeMonthlyTotal)中的此职员的”加班”字段.提出问题:如果是事先不对加班时间进行安排先加班,到月底进行统计时再补充当时的应加班时间,怎么样才能不让读条形码时不出错.
例:张三上午加班时只读了"上班时间",而下班时忘记打卡.下午加班上班时就可能记录成上午的下班时间.如何才能不让下午的这次上班时间不出现在上午的下班时间中?

解决方案 »

  1.   

    设置一个打卡的时间段,比如说,8点、13:30前后30分钟属于上班时间,12点、5:30分前后30分钟属于下班时间,然后做一个硬性规定,非正常时间段内打卡写刷卡异常单来尽行处理,当然不同班次可设置不同时间段
      

  2.   

    你的意见很不错,只是这句"非正常时间段内打卡写刷卡异常单来尽行处理"是什么意思,谢谢
      

  3.   

    下班忘了打卡就强制赋值为正常下班时间,但是备注注明为异常值。
      

  4.   

    下班忘了打卡也可以不赋值,然后定期(可每月进行一次)列应《刷卡异常单》,
    这是因为忘了打卡,不等于没来上班或早退,你不可能就扣别人工资吧
    然后刷卡有异常的自己将刷卡异常单给部门主管或经理确认,如确实为因工或非工刷卡异常
    可修改记录,否则扣款。