Foxtable(狐表)用户栏目专家坐堂 → 关于制作一个考勤审批系统


  共有1753人关注过本帖树形打印复制链接

主题:关于制作一个考勤审批系统

帅哥哟,离线,有人找我吗?
linlingru
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:49 积分:540 威望:0 精华:0 注册:2016/11/12 17:09:00
关于制作一个考勤审批系统  发帖心情 Post By:2018/7/7 15:39:00 [只看该作者]

各位专家:

      有如下一个每日考勤审批需求,需要实现功能如下,烦请指教该如何实施:

     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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/7 16:02:00 [只看该作者]

可以使用交叉统计表,生成类似上面的表格,然后再使用代码添加加班原因

具体的请上传实例测试

 回到顶部