各位专家:
有如下一个每日考勤审批需求,需要实现功能如下,烦请指教该如何实施:
1、需要实现的目标效果图如下图(原始数据只有一个《班组人员名单》的sqlserver外部数据库表)
2、当班组长单击一个《考勤管理》的按钮时,系统可以根据当月天数以及《班组人员名单》表自动生成上图。
3、班组长可以填写出勤小时数,加班小时数以及加班原因后保存。
4、保存后的信息需要保存到外部sqlserver数据库表《出勤统计》中,该表每列为:工号、姓名、班组、日期、正常出勤小时数、加班小时数、加班原因、审批人、审批日期、审批备注。
5、主管可以对加班小时数和加班原因进行审核;审核完毕后相应单元格的加班小时数和加班原因行自动锁定,无法修改。可以选中某一行的加班小时数进行修改,也可以选中当天的一列一次性全部批准。
我的思路是:
1、循环获取该班组人员明细后,创建临时数据表,表的每一列的名称就是日期,如:2018年8月_1;
2、对每一行,循环获取该工号人员对应日期的出勤小时数、加班小时数以及加班原因信息,若存在则取出,否则为空白;
3、单击保存时,循环判断:若存在数据则更新,若不存在数据则执行insert插入数据库。
没有想出其他方法,但是上述方法感觉对数据库的循环查询和更新量较大,速度会很慢,比如一个班组一般为50人,一个月30天,每个人循环3次分别获取正常出勤小时数,加班小时数,加班原因;然后还要先判断是否存在,然后insert或者update,这样需要50*30*3*2=15000次。
还有其他更好的办法吗?谢谢各位大神指导。

此主题相关图片如下:考勤管理.png