2. 打卡界面设计及代码如下:
◎ 用到的控件字段名、方法及变量有: ※ 控件:
上班打卡按钮名称:Login_UserNametxt 下班打卡按钮名称:Login_UserPWtxt
※ 变量:
staffed //登录员工的职工ID DateTime time;//记录当前时间
ClickCardOpt Copt = new ClickCardOpt();//处理打卡业务类的实例
※ 调用方法:
Copt.AddClockRecord(\添加上班打卡记录 Copt.AddClockRecord(\添加下班打卡记录 GetWorkingTime(\上班\获取上班时间表WorkingTimes的上班时间 GetWorkingTime(\下班\获取上班时间表WorkingTimes的下班时间
◎ “上班打卡”按钮的单击事件:
private void Clock_SDKbtn_Click(object sender, EventArgs e) {
int hour = Convert.ToInt32(time.Hour);
if (hour < 6 || hour >= 12) //6-12点打上班卡时间 {
MessageBox.Show(\抱歉,现在不是打卡时间!\ } else {
string workingtime = GetWorkingTime(\上班\ string[] worktimes = workingtime.Split(':'); int workhour = Convert.ToInt32(worktimes[0]); int workminute = Convert.ToInt32(worktimes[1]); StartClockRecord srecord = new StartClockRecord(); srecord.SClockTime = time;
- 16 -
if (time.Hour > workhour || time.Hour == workhour && time.Minute > workminute)
{
srecord.SClockstatusID = 2; } else {
srecord.SClockstatusID = 1; }
srecord.StaffID = staffid; }
if (Copt.AddClockRecord(\ {
MessageBox.Show(staffid + \打卡成功!\ } else {
MessageBox.Show(staffid +\你已经打过上班卡了!\ } } }
◎ “下班打卡”按钮的单击事件:
private void Clock_EDKBtn_Click(object sender, EventArgs e)
{
int hour = Convert.ToInt32(time.Hour);
if (hour <= 11 || hour >= 22) //12-22点打下班卡时间 {
MessageBox.Show(\抱歉,现在不是打卡时间!\ } else {
string workingtime = GetWorkingTime(\下班\ string[] worktimes = workingtime.Split(':'); int workhour = Convert.ToInt32(worktimes[0]); int workminute = Convert.ToInt32(worktimes[1]); EndClockRecord erecord = new EndClockRecord(); erecord.EClockTime = time;
if (time.Hour < workhour || time.Hour == workhour && time.Minute < workminute)
{
erecord.EClockstatusID = 3; } else {
- 17 -
erecord.EClockstatusID = 1; }
erecord.StaffID = staffid;
if (Copt.AddClockRecord(\ {
MessageBox.Show(staffid + \打卡成功!\ } else {
MessageBox.Show(staffid + \你已经打过下班卡了!\ } } }
3. 超级管理员登录后主窗体处理未打卡职工的后台代码:
◎ 用到的控件字段名、方法及变量有:
※ 控件:
计时器名称:Index_timer
※ 变量:
DateTime time;//记录当前时间
ClickCardOpt Copt = new ClickCardOpt();//处理打卡业务类的实例
※ 调用方法:
Copt.PerfectSClockRecords(); //插入未打卡职工的上班打卡标记 Copt.PerfectEClockRecords(); //插入未打卡职工的下班打卡记录
◎ 主窗体的Load事件
private void index_Load(object sender, EventArgs e) {
if (usertype == \超级管理员\ {
this.Index_timer.Interval = 60000;
this.Index_timer.Tick += new System.EventHandler(this.Index_timer_Tick);
}
}
◎ 计时器的Tick事件
private void Index_timer_Tick(object sender, EventArgs e)
{
time = DateTime.Now;
//每天中午12点整完成上班打卡记录表的录入 if (time.Hour == 12 && time.Minute == 0) {
Copt.PerfectSClockRecords(); }
//每天晚上22点整完成下班打卡记录表的录入 if (time.Hour == 22 && time.Minute == 0)
- 18 -
{
Copt.PerfectEClockRecords(); } }
4.3 个人信息模块
1. 流程图: 所有的 职工登 录系统 查看全部信息 个人信息 修改部分信息 ◆ 成功登录系统后所有的职工都可以对自己的全部信息进行查看、对部分信息进行修改。
2. 界面设计截图如下:
- 19 -
4.4 修改密码模块
1. 流程图: 所有的 职工登 录系统 ◆ 成功登录系统后所有的职工都可以对自己的密码进行修改操作。
修改密码 输入旧密码 设置新密码 2. 界面设计截图如下:
4.5 部门管理模块
1. 流程图: 超级管理 员和管理 员登录系 统 添加部门 查看部门 部门管理 删除部门 修改部门 ◆ 管理员和超级管理员成功登录系统后可以执行对部门的增删改查操作。
- 20 -