考勤需求案例用友软件股份有限公司张睿2010年4月11日具体需求情况:考勤打卡中想实现以下功能:上午:八点上班,十二点下班,两次打卡。下午:一点半上班,五点半下班,两次打卡。如果中午一点之前打卡,默认加班一个半小时。系统自动计入加班时间,如果一点以后打卡的话就不计算加班,按正常上班计算。需求实现分析:首先根据要求按上午和下午设置两个班段,并且两个班段都需要签到和签退。其次需求中规定下午上班如果一点之前打卡,默认加班一个半小时。这种情况下需要修改考勤算法才能够实现。下面就来说一下具体的实现方法首先进入考勤班次里设置两个考勤班段,具体设置情况如下图:需说明两个班段都需要签到和签退然后进入考勤算法,修改日结果算法中的计算加班时间点修改以后,在后处理公式里增加计算公式,需说明不是前处理公式,是因为如果设置前处理公式,计算出来的数据会被默认算法覆盖。目标字段选择加班1(小时)公式说明可以随意设置,然后就开始设置公示内容了公示内容具体设置如下:该公式是需要分情况设置的,首选需要判断具体人员当日除了中午这1.5小时是否还有其他加班,如果有需要设置:考勤日结果.加班1(小时)+1.5,如果没有则就是1.5。经测试如果不按这种分情况方式设置公式,则无法实现需求。这和软件计算的方式有关。然后设置条件,选择考勤日结果中的上班2,并使用TOTime()函数转换为时间格式如下图:TOTime(考勤日结果.上班2)小于TOTime(’13:00:00’)还要再加上一个条件,班次.班次编码等于’0000’,因为其他班次的人员不需要使用该考勤算法公式设置好后,就可以保存了。现在我们就可以进入异常处理中来验证考勤算法设置是否有效了选中某个人员,点联查我们在异常处理详细中手工给该人员补上4条刷卡记录,如下图:其中下午上班刷卡的时间设置为12:30,早于13:00确定之后,然后右键点重计算查看计算出来的加班小时,的确是1.5小时,没问题接下来要测试另一种情况是否计算正确,就是该人员当日除了中午这1.5小时之外还有其他加班,我们再进入异常处理详细中手工给该人员补上两个小时加班重新计算,查看计算出来的加班小时,是1.5+2=3.5小时,也没问题这样我们就实现用户的需求了。通过上面的案例我们可以发现,考勤系统中的考勤算法设置非常灵活,用户不同的需求完全可以通过不同的设置来实现,在实现用户的需求的同时,我们也要尽可能的考虑周全,保证在各种情况下计算的正确性,避免给用户使用带来影响。