图3-2 数据库的整体关系图
4 系统功能详细设计
4.1 用户登录功能设计
4.1.1 功能分析
作为系统与用户之间最基本的操作功能,该模块有着非常重要的作用。因为本系统有着三种用户群分别是超级管理、部门管理员和企业员工。三者在人事管理系统中所享有的功能也不相同。管理员是为人事部门工作人员而设计的,它主要是对系统以及员工进行管理。部门管理员是针对本部门的员工进行管理的,普通员工在系统中只享有查询和修改自己的信息,自己无法查看他人信息。
4.1.2 流程图
图4-1 登录流程图
4.1.3 编码实现
输入用户名、密码、验证码的文本框分别以tbUserName, tbUserPwd,tbRanNum命名,首先判断tbRanNum的值是否与要求的验证码一致,否,则提示重新输入,然后通过tbUserName, tbUserPwd的值来查询数据库表Users中是否有记录。如果有记录则把员工编号、用户名、用户类型、部门编号分别放入Session["UserID"]、Session["UserName"]、Session["Type"]、Session["BumenID"]中,无记录则提示用户名或密码不正确,要求重新输入。
4.2 系统主要模块设计
4.2.1 员工考勤实现
页面设计主要实现上、下班打卡,记录员工的考勤情况便于查询,打卡界面主要利用javascript实时更新页面的具体时间显示,同时根据数据库内的信息判断每个员工上下班只能打一次卡,避免重复打卡;考勤查询界面主要根据员工权限显示相应的内容(一般员工只能查看自己的信息,部门管理员可以查看本部门的信息,超级管理员可以查看所有信息),查询时可以根据员工姓名,部门和打卡区间进行选择,其他模块的查询功能与此类型。
4.2.2 员工增加实现
主要介绍员工的增加,确保员工的信息填写完整,添加成功时利用sqlcommand的事务处理,同时向用户表(Users)插入一条信息,增加一个新用户,用户名为员工姓的全拼加名的简拼(调用Hz2Py.cs中的方法实现),初始化密码为123456例如员工姓名:李四,则生成的用户名:lis。
4.2.3 工资结算实现
首先保证员工的工资每月只能登记、发放一次,初始化时自动提取员工的基本工资、资本补贴和应扣除的各项费用,然后利用javascript根据用户的输入自动计算员工的工资情况,最后添加到数据库中,其查询功能同员工考勤。
4.2.4 用户管理实现
根据用户的权限进行判断,员工提示没有权限,部门管理员只能更改本部门员工的信息。主要利用grideview的强大功能,对员工用户名及用户权限进行修改,对员工的登录密码进行初始化,初始密码为123456,删除用户等操作,其中部门管理员给员工赋权限时最高只能赋予部门管理员的权限,不能赋予超级管理员的权限。
4.3 第三方控件使用
在设计中用到两个第三方控件,wpCalendar和ckeditor。前者是用于解决日期输入时用户手工输入的不方便,后者是用来添加文本(图片,颜色,格式等功能)导数据库中。
4.3.1 wpCalendar的引用
先将wpCalendar.js放到项目下的js文件夹下,然后在要引入的页面中声明引用
<script src="/js/wpCalendar.js" type="text/javascript"></script>
再添加部分代码如下:
<asp:TextBoxID="tbstarttime" runat="server" CssClass="txt_d" onfocus="showCalendar(this)">
4.3.2 Ckeditor的引用 ASP.NET+SQL Server中小企业人事管理系统设计与实现(4):http://www.youerw.com/jisuanji/lunwen_1381.html