考勤管理系统实验报告

合集下载

考勤管理系统实验报告

考勤管理系统实验报告

考勤管理系统实验报告1. 引言考勤管理是企业管理中的重要环节之一,对于保持工作秩序、提高员工工作效率、分析员工工作状况等方面起着关键作用。

传统的考勤管理方式往往繁琐且容易出现错误,因此,开发一个高效、准确的考勤管理系统能够帮助企业大大简化考勤流程、提高工作效率。

本文档旨在介绍设计和实现一个基于Web的考勤管理系统,并详细介绍其功能、实现过程以及测试结果。

2. 目标考勤管理系统的目标是通过使用电子化手段来记录和管理员工的考勤信息,实现以下功能:•记录员工的考勤时间和地点信息;•自动计算员工的工作时长和加班时长;•提供员工签到、签退、请假等操作;•生成考勤报表和统计分析数据。

3. 设计与实现3.1 技术栈选择为了实现一个高效、可靠的考勤管理系统,我们选择使用以下技术栈:•后端开发语言:Python•前端开发语言:HTML、CSS、JavaScript•后端框架:Django•前端框架:Bootstrap3.2 功能模块考勤管理系统包括以下功能模块:1.用户管理:包括注册、登录、修改密码等功能;2.考勤记录管理:包括员工签到、签退、请假等功能;3.统计分析:包括计算工作时长、加班时长等功能;4.考勤报表生成:根据考勤记录生成不同维度的考勤报表;5.系统管理:包括权限管理、部门管理等功能。

3.3 数据库设计考勤管理系统采用关系型数据库来存储数据。

数据库设计包括以下表:•用户表(User):存储用户的基本信息;•考勤记录表(Attendance):存储员工的考勤记录信息;•假期表(Holiday):存储假期信息;•部门表(Department):存储部门信息。

3.4 页面设计考勤管理系统使用响应式设计,适配不同屏幕大小的设备。

页面设计包括以下界面:1.登录界面:用户输入用户名和密码进行登录;2.首页:显示考勤记录、加班记录等信息的统计概览;3.个人考勤页面:显示个人的考勤记录;4.假期申请页面:用户填写请假申请信息;5.考勤报表页面:根据选择的时间段生成考勤报表。

考勤管理系统实验报告

考勤管理系统实验报告

考勤管理系统实验报告实验报告考勤管理系统1. 实验目的本次实验的目的是建立一个考勤管理系统,实现对员工考勤情况的统计和管理。

通过本次实验,我们可以了解到一些基本的软件开发方法和工具,并学会了如何使用这些工具进行项目的开发。

此外,我们还能够进一步学习和掌握数据库的设计和管理等相关的知识,在实践中了解这些知识的实际应用。

2. 实验内容本次实验的主要内容是开发一个基于Web的考勤管理系统,实现对员工考勤情况的统计和管理。

通过该系统,我们可以完成员工的考勤情况录入,统计和查询等功能。

系统的开发主要包括以下几个方面的内容:(1)数据库设计和管理:我们需要根据业务需求和系统功能,设计出合适的数据库结构,并使用MySQL或其它数据库管理工具来管理数据的存储和查询。

(2)后台逻辑处理:我们需要使用Java或其它编程语言开发后台的逻辑处理程序,完成数据的处理和业务逻辑的实现。

(3)Web前端设计和开发:我们需要使用HTML、CSS、JavaScript等Web开发工具,来设计开发出系统的前端界面,实现与用户的交互和数据的展示。

3. 实验步骤(1)系统需求分析首先,我们需要对系统的需求进行分析和明确,明确出系统的功能和使用场景。

在开发之前,我们需要与客户进行充分的沟通和交流,了解用户的需求和使用场景,然后根据需求进行系统规划和设计。

(2)数据库设计和管理在进行数据库设计的时候,我们需要将系统的各个功能和数据表进行明确的划分和设计。

考勤管理系统的数据库中,需要包含员工信息表、考勤记录表、项目信息表等,这些表需要用到不同的数据字段和数据结构。

我们需要在设计时充分考虑到数据的完整性、准确性和安全性等因素,确保系统的数据能够正确地存储和查询。

(3)后台逻辑处理在完成数据库设计之后,我们需要使用Java等编程语言进行后台的逻辑处理程序的编写。

考勤管理系统后台逻辑程序需要实现员工信息录入、考勤记录的生成和统计,以及业务逻辑的处理等功能。

学生考勤系统实验报告:系统设计

学生考勤系统实验报告:系统设计
int i = conn.loginCheck(strSql, name, password);
if (i > 0)
{
canLogin = true;
this.Close();
}
else
{
MessageBox.Show("身份验证失败!,请检查用户名和密码!");
_tb.Clear();
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace 学生考勤系统
Not Null
学生姓名
班级名称
char(5)
Not Null
所在班级
课程名称
char(10)
P
Not Null
课程名称
缺勤状态
char(10)
Not Null
缺勤情况
(5)课程信息表course
字段名
字段类型
主/外键
字段约束
说明
课程编号
char(8)
p
Not null
课程编号
课程名称
char(20)
Not Null
所教班级
所教课程
char(20)
Not Null
所教课程
所属学院
char(20)
Not Null
所属学院
(3)考勤表kaoqin
字段名
字段类型
主/外键
字段约束
说明

考勤部实训报告万能模板

考勤部实训报告万能模板

## 摘要本文以考勤部实训为背景,详细记录了实训过程中的学习内容、实践操作、心得体会以及总结反思。

通过对考勤管理系统的操作,对员工考勤数据的处理,以及对考勤异常情况的分析和处理,使我对考勤管理有了更为深刻的理解和认识。

## 目录1. 实训目的2. 实训环境3. 实训内容4. 实训过程5. 实训结果6. 实训总结7. 实训反思## 1. 实训目的通过本次考勤部实训,旨在:1. 掌握考勤管理系统的基本操作流程;2. 学会处理员工考勤数据,包括迟到、早退、旷工等异常情况;3. 了解考勤管理的重要性,提高工作效率;4. 培养团队合作精神,提高沟通协调能力。

## 2. 实训环境实训地点:XX公司考勤部实训设备:考勤管理系统、电脑、打印机等## 3. 实训内容1. 考勤管理系统操作:学习如何使用考勤管理系统进行员工考勤数据的录入、查询、统计和导出等操作;2. 考勤数据处理:学习如何处理员工考勤数据,包括迟到、早退、旷工等异常情况;3. 考勤异常情况分析:分析考勤异常情况的原因,并提出相应的解决措施;4. 考勤管理文件整理:学习如何整理考勤管理文件,包括考勤报表、考勤通知等。

## 4. 实训过程### 4.1 考勤管理系统操作在实训过程中,我们首先学习了考勤管理系统的基本操作流程。

通过实际操作,我们掌握了如何录入员工考勤数据、查询员工考勤记录、统计员工考勤情况以及导出考勤报表等功能。

### 4.2 考勤数据处理在实训过程中,我们学习了如何处理员工考勤数据。

针对迟到、早退、旷工等异常情况,我们了解了相应的处理方法,并学会了如何将异常情况记录在考勤管理系统中。

### 4.3 考勤异常情况分析在实训过程中,我们分析了考勤异常情况的原因,如员工个人原因、公司制度执行不力等。

针对这些原因,我们提出了相应的解决措施,如加强员工考勤意识教育、完善公司考勤制度等。

### 4.4 考勤管理文件整理在实训过程中,我们学习了如何整理考勤管理文件。

考勤管理实习报告

考勤管理实习报告

考勤管理实习报告一、实习背景及目的随着社会的发展和科技的进步,企业对考勤管理的需求日益增长。

为了提高企业的管理效率,降低人力成本,我选择了考勤管理作为实习课题。

本次实习的主要目的是了解并掌握考勤管理的基本原理和方法,通过实际操作,提高自己的实践能力。

二、实习内容及过程实习期间,我主要负责企业的考勤管理工作。

具体内容包括:员工考勤数据的收集、整理和分析;考勤制度的制定和实施;考勤异常的处理;考勤系统的使用和维护等。

在实习过程中,我首先了解了企业的考勤制度和相关规定,然后根据实际情况,协助主管制定了新的考勤管理制度。

新制度主要针对之前的漏洞和问题,如迟到、早退、请假等,进行了详细的规定和说明。

同时,我还负责收集和整理员工考勤数据,对异常情况进行分析和处理。

在这个过程中,我学会了如何使用考勤系统,并对其进行了维护和更新。

三、实习收获及反思通过本次实习,我对考勤管理有了更深入的了解,收获颇丰。

首先,我学会了如何制定和实施考勤制度,掌握了考勤数据的管理和分析方法。

其次,我明白了考勤管理在企业运营中的重要性,以及对员工工作积极性的影响。

最后,我提高了自己的沟通协调能力,学会了如何处理考勤异常情况。

然而,在实习过程中,我也发现了自己的不足之处。

例如,在处理考勤异常时,有时会因为缺乏经验而犹豫不决;在收集和整理考勤数据时,偶尔会出现疏漏。

这些问题都需要我在今后的工作中不断学习和提高。

四、实习总结总之,本次考勤管理实习让我收获颇丰,不仅提高了自己的专业素养,也增强了自己的实践能力。

在今后的学习和工作中,我将继续努力,不断完善自己的考勤管理能力,为企业的发展贡献自己的力量。

学生考勤系统系统分析报告书写实验

学生考勤系统系统分析报告书写实验

学生考勤管理信息系统系统分析报告书写实验学院:13级医药管理学院班级:信息管理2班姓名:一、引言1、系统名称,开发目标,主要功能等。

○1.系统名称:学生考勤管理信息系统○2 开发目标:建立的考勤管理系统,要把学生的考勤记录、老师的考勤、学生的选课信息等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。

本系统的目标是实现对考勤管理的计算机化和办公自动化。

考勤管理系统的主要功能如下:a. 对老师信息的增加、删除、修改;b. 对学生信息的增加、删除、修改;c. 对考勤记录信息的登记。

○ 3主要功能:有专门的考勤员,如班长,对每个班级的学生周一到周五上课时间进行考勤,学生有请假等情况,考勤情况,教师需要对考勤人员上传的考勤信息进行确认,每个系部的辅导员老师和上课教师可以对班级的考勤情况和和班级课表进行查看,能统计出学生出勤率。

另外,学生、辅导员、授课老师都可以看到自己的信息,还有就是提供了一些请假信息查询、出勤情况查询以及一些相关规定产生的处理结果。

2、系统分析的原则和主要任务。

○1.原则:1.整体性原则,这是系统分析的一个基本思想,就是要把所要研究的对象看作一个有机的整体,以整体效益为目标。

2.层次性原则,任何一个系统都是由一定要素组成的整体。

3.相关性原则,系统与系统之间、系统各要素之间、系统和要素之间都是相互联系、相互作用的,具有相关性特点。

○2主要任务:在充分认识原信息系统的基础上,通过问题识别、可行性分析、详细调查、系统化分析,最终完成新系统的逻辑方案设计,或称逻辑模型设计。

逻辑方案不同于物理方案,前者解决“做什么”的问题,是系统分析的任务;后者解决“怎么做”的问题,是系统设计的任务。

3、参考文献资料:百度、知乎、搜狐等网络查询。

二、现行系统分析调查1、现行系统行业调查:采取问卷调查和统计的方式,调查对象为在校学生与任课教师。

调查范围为高校。

2、现行系统分析:用户需求分析:用户是系统的最终使用者,本系统包括学生、班主任、任课老师、院系领导、学校领导、系统管理员六类用户。

考勤管理系统实验报告-南通大学

考勤管理系统实验报告-南通大学

计算机科学与技术学院考勤管理系统课程设计姓名:夏健&蒯程学号: 1013042029&1013042028专业: 软件工程101指导老师: 陈继红时间:2013.7.1三数据库设计:KQJL (考勤记录):ID 时间类别员工名称考勤时段考勤说明记录人(默认登录人)JQSQ(假期申请):ID 员工名称开始时间结束时间时长假期类别假期原因CHSQ(出差申请):ID 员工名称出差时间出差天数同行人员目的地出行方式出差理由JBSQ(加班申请):ID 员工名称申请时间加班时间加班时长加班原因TXSQ(调休申请):ID 员工名称申请时间调休时间起调休时间终未休时长调休时长调休原因审批人YGXX(员工信息): 姓名密码类型SJZD (数据字典):ID 类型说明具体信息四具体实现与截图说明4.1界面设计登陆界面:验证码出错后的界面:登陆后进入主界面:考勤记录的功能图:说明:用户和时间都是登录人的信息自动添加。

一开始有几个按钮是灰的,当双击表中的某行时才可以触发。

表示修改或者删除表中的记录。

主要流程:界面加载的时候用户可以添加功能。

填写相关信息之后后台读出所有的信息之后插入表中,然后再读到界面的表中。

当用户双击界面中的某行时当前行的信息就读到控件中用户就有了修改删除的功能了。

假期申请的功能截图:其后的出差,加班,调休基本都差不多,只是在一些细节上和表的内容不同而已截图如下:考勤查询是一个比较重要的涉及到多表的查询。

而且涉及的细节也比较多。

界面如下:多表查询涉及到的SQL语句如下:select xingm,qingj,chuc,jiaban,tiaox,chidao,zaotui,loudk,zaohui,zaocao,huiyi from (select xm as xingm from YGXX)n "+"left join ( select xm,sum(CONVERT(float,jqsc)) as qingj from JQSQ whereconvert(smalldatetime,sqsj_start) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by JQSQ.xm )a on n.xingm=a.xm " +"left join ( select xm,sum(chts) as chuc from CHSQ where convert(smalldatetime,chsj) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by CHSQ.xm )b on n.xingm=b.xm " +"left join ( select xm,sum(txsc) as tiaox from TXSQ where convert(smalldatetime,txsj_start) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by TXSQ.xm )c on n.xingm=c.xm " +"left join ( select xm,sum(jbsc) as jiaban from JBSQ where convert(smalldatetime,jbsj) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by JBSQ.xm )x on n.xingm=x.xm " +"left join ( select xm,count(*) as chidao from KQJL where kqxx='迟¨´到Ì?' andconvert(smalldatetime,kqsj) between convert(smalldatetime,'" + datefrom + "') andconvert(smalldatetime,'" + dateto + "') group by KQJL.xm )d on n.xingm=d.xm " +providerName="System.Data.SqlClient" /></connectionStrings><appSettings ><add key="connstr" value="Data Source=KUAICHENG-PC\KC;Initial Catalog=kaoqin;Integrated Security=True" /></appSettings></configuration>当点击上面的任意tab标签显示的就是当前行的员工在选择的时间内的具体信息。

学生上课考勤管理系统实习报告

学生上课考勤管理系统实习报告
本软件的设计是在Windows XP中文版操作系统环境下,使用易语言 开发。易语言是一款中文开发软件,其中自带数据库,和各种控件。由于其实现简单,功能强大,可操作性强,得到了越来越多的人的认可。
就技术力量来说,邹龙辉的知识面较广,动手能力较强;张慧娟的理论性及编程能力较强;张春光计算机常识较多,善于提出问题;并且,媒体播放器已经很普遍,我们对其结构及功能的实现比较了解,我们可以完成此次开发。
_最小化按钮_被单击() ‘窗口最小化到系统任务栏
_最大化按钮_被单击() ‘实现全屏播放
_关闭按钮_被单击() ‘关闭窗口的同时播放列表框里的音 乐表也被保存在运行目录里的文件里,此文件格式是ini
_展开收缩按钮_被单击() ‘展开和收缩列表窗,并且在展开的时候自动和启动窗口对齐
_播放器1_打开状态被改变() ‘取当前媒体的信息,例如音乐的时间长度,然后赋值给进度条
整个系统由于是自行开发,自行使用,所以系统本身不存在法律上的版权争议。在服务器软件方面,应该使用正版软件,因为整个系统尽管是开发给内部使用,但它毕竟很多部分还是要依靠Internet 的,一旦服务器连接到Internet 上,它的操作系统可能会被Microsoft 跟踪,如果不是正版软件,将不得不面临民事诉讼的风险。
8,个性进度条:设计不同以往的进度条和音量控制条及其滑块,使整个播放器风格统一又区别其他播放器,力求本播放器简约时尚。
9,显示时间模块:一般情况下,应用软件很少会显示当前的日期和时间,即使是操作系统也很少自动显示日期,而用户在使用电脑时翻看是为了方便用户随时可以看到当前的日期和时间(显示年、月、日、时、分、秒),同时也为了增加本软件的实用性和趣味性。
五、课题研究预期效果:
我们在决定运用易语言编写一个媒体播放器时,就知道会有难度,因为我们都没有接触过易语言,但是看我们有信心,因为我们有编程基础的同时我们还有兴趣和爱好。刚开始的时候,我们会为实现的一个小小功能高兴一整天,也会因为熬了一天还是没写出那个功能好而难过。有时候我们会坐上一天,反复的运行测试修改几十次,只是为了使那个功能更便捷更完美。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第一章信息系统概况 (3)1.1 选题介绍 (3)1.2 课程设计小组基本情况介绍.................... 错误!未定义书签。

1.2.1课程设计小组成员的基本情况介绍........ 错误!未定义书签。

1.2.2课程设计小组前期的准备情况............ 错误!未定义书签。

1.2.3课程设计小组各成员所承担的课程设计的任务.. 错误!未定义书签。

第二章信息系统分析 (4)2.1 可行性分析 (4)2.1.1 技术可行性分析 (4)2.1.3 社会因素可行性分析 (5)2.1.4 可行性分析结论 (5)2.2 客户需求分析 (5)2.3 系统分析部分 (7)2.3.1 业务流程图 (7)2.3.2 数据流程图 (7)2.3.3 E-R图 (9)2.3.4 数据字典 (10)第三章信息系统设计 (12)3.1 功能结构图设计 (12)3.2 输入输出设计 (12)3.3 数据库结构设计 (13)3.3.1 概念设计 (13)3.3.1 逻辑结构设计设计 (14)3.4 代码设计 (16)第四章信息系统实施 (17)4.1 源程序 (17)4.1.1 添加用户 (17)4.1.2 修改密码 (17)4.1.3 出差情况 (17)4.1.4 添加部门 (19)4.1.5 部门管理 (20)4.1.6 更新部门 (22)4.1.7 员工考勤登记 (23)4.1.8 请假情况 (35)4.1.9 上班时间设置 (36)4.1.10 上班情况 (37)4.1.11 用户登入 (39)4.1.12 添加员工 (39)4.1.13 员工管理 (42)4.1.14 修改员工 (45)4.1.15 主界面 (47)4.3 模拟运行数据 (50)4.4 系统使用说明书 (54)第五章参考书籍 (55)第一章信息系统概况1.1 选题介绍当今社会,计算机已经十分普及,性能也日趋完善。

它已经被应用于许多领域。

比如说,小到图书馆的图书管理,超市或网吧的收费管理,KTV的点歌系统,大到航空、铁路的售票,全国人口户籍的管理等等。

随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。

在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度,给企业的管理带来了许多的不便。

现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了,而且也实用、安全。

计算机技术特别是数据库技术的发展为企业建立管理信息系统,甚至对改变管理思想起着不可估量的作用。

实践证明信息技术已在企业的管理层面扮演越来越重要的角色。

通过考勤系统我们能很容易地对公司员工的信息有一个基本的了解,可以很方便地知道员工的出勤情况,通过对员工出勤信息的了解,就能计算出员工的实际工资。

一切的统计和计算都由计算机代为管理了,考勤信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,而企业的信息化建设已成为现代各个企业发展的需要。

所以说,考勤管理系统的开发具有非常重要的意义。

第二章信息系统分析2.1 可行性分析目前,计算机在我国的考勤管理工作中,主要可用来进行报表处理,档案管理,文书编辑,信息查询,综合分析。

查询统计作为考勤管理的一个重要组成部分,是通过对考勤情况的调查,整理和分析,了解考勤情况的发展趋势,为各级领导机关制定考出勤的方针,政策,加强干部管理,改革干部制度提供准确数字的依据。

其工作除涉及到干部的基本情况统计之外,还包括职工的工资统计,职工的考勤情况统计,职工的奖惩情况统计,职工的出差情况统计,职工的请假情况统计等方面,其涉及的面之广,数据量之大可想而知,若利用手工进行考勤的统计工作,大致要经过考勤统计查询,考勤的统计资料的整理,考勤统计分析三个过程,但这种手工统计过程,存在着几个明显的问题,比如说统计资料缺乏准确性,及时性,需要花费大量的人力,物力,财力等。

手工方法所表现出来的种种劣势,使人们慢慢意识到管理现代化已成为当代社会发展的一股不可抗拒的洪流。

在管理现代化的浪潮中,考勤管理现代化也势在必行。

实现考勤管理现代化是一个复杂的系统工程,需要采取科学的管理方法和先进的科技手段。

科学的管理方法在管理中一般是指数学方法、系统方法、信息方法、控制论方法、社会学方法、心理学方法等科学方法,而先进的科技手段主要是运用当代最新科学技术之一的电子计算机来为考勤管理现代化服务。

而且一个完善的考勤系统应做到以下几点:•提高了考勤管理效率,减轻劳动强度;•提高信息处理速度和准确性;•为考勤负责人提供更方便、科学的服务项目2.1.1 技术可行性分析系统开发环境: Windows xp sp3 + vs2005 + sqlserver2000技术已经比较成熟,和其他应用开发语言比起来有很大的优势,所以利用这些技术是完全可以完成这些功能的。

同时由于逻辑不是太复杂,估计可以按时完成此项目。

考勤管理系统是工作主要是在职工和管理都有之间架起一座桥梁,能相互沟通信息和处理信息。

这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。

计算机硬件和软件技术的飞速发展,为系统的建议提供了技术条件。

2.1.2 经济可行性分析(1) 支出A、在基建投资上,只需要配置一台DELL服务器,大概2万左右;B、软件设计和开发费用:2.5万元C、经常性指出:(主要是指软件的维护费用)(2) 收益进一步实现办公自动化,减少人力投资和办公费用,极大提高办公效率,同时更好地控制考勤制度,降低成本。

(3) 投资回收周期根据经验算法,收益的累计数开始超过支出的累计数的时间为1年。

2.1.3 社会因素可行性分析对所建议系统的社会因素方面的可行性分析:(1)法律可行性新系统的研制和开发,所有软件都选用正版,将不会侵犯他、集体和国家的利益,不会违反国家政策和法律。

(2)使用方面的可行性由于新系统的客户端只要求用浏览器,管理者与人员完全有能力使用此系统,并且新系统的研制和开发是充分考虑工作人员对考勤的易于管理,提高工作效率,界面友好,操作简单方便,能完全满足职工的使用要求。

对传统管理理念的冲击,可能引起管理层的变动和人员调整。

对于企业管理人员的要求提高,使企业在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽企业在市场竞争环境下的生存空间。

对于企业的管理者与职工之间管理方式的转变和扩充。

2.1.4 可行性分析结论结论意见:经上述可行性分析,系统研制和开发可以立即开始进行2.2 客户需求分析考勤系统应该便于管理者的查询、修改、更新、统计以及高层管理人员的查询等操作。

能从整体上体现去每个员工每日,每月的出勤情况。

基本信息管理包括节假日日期设置、部门信息管理和员工信息管理。

(1) 主要功能a.员工考勤签到:员工每天上班时需要登陆系统进行签到,如果当天已经签到了,则不执行重复操作!考勤签退:员工每天下班时需要登陆系统进行签退,如果当天还没有签过到,则不执行签退操作,如果当天还没有到下班时间,也不执行签退操作!节假日查看:员工可以登录查看节假日加班安排系统管理:修改自己的密码, 查看系统简介.b.管理员员工信息管理:管理员登陆系统后可以添加新的员工信息,可以对现有员工的信息进行修改和查询!可以删除某些员工信息,当删除员工信息时同时将删除他们的考勤信息职位类别及上下班时间管理:不同的职位类别拥有不同的上下班时间,管理员可以添加新的职位类别,修改已经存在的职位类别的名称和上下班时间, 部门信息管理:管理员可以添加和删除部门信息,当部门下面存在员工信息时不执行删除操作.系统管理:修改自己的登陆密码,查看系统简介。

节假日管理:节假日的设置和查看;(2) 特点实现了管理员和员工登陆信息的自动判断!根据不同的身份显示不同的功能菜单。

程序使用三层架构思想,采用完全面向对象的思想方法设计。

系统在进行相关操作如删除员工信息时使用了存储过程。

(3) 数据输入:通过登录系统输入职工上班下班,以及请假、出差等信息。

输出:职工考勤情况。

(用户对相关职工的查询结果和报表)(4) 安全保密系统对不同权限的用户提供不同的功能模块,对历史数据的更改和新数据的添加只有一定权限的用户才能操作,一般用户只能进行查询操作。

对数据库的关键数据应要求保密。

系统默认管理员登陆信息: 帐号admin 密码admin2.3 系统分析部分2.3.1 业务流程图图2-1 业务流程图2.3.2 数据流程图图2-2 顶层数据流程图图2-3 一层数据流程图2.3.3 E-R 图图2-5 E-R 图2.3.4 数据字典第三章信息系统设计3.1 功能结构图设计图3-1 功能结构图3.2 输入输出设计表3-3 员工下班表3-4 修改密码表3-5 申请请假表3-6 申请出差表3-7 员工添加表3-8 部门添加表3-9 上下班时间设定3.3 数据库结构设计3.3.1 概念设计数据库一般分为三级模式:外模式、概念模式和内模式。

在这里我们将要设计的是数据库的概念模式。

通过对职工出勤管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构:1.部门信息。

包括部门编号、部门名称、部门人数等。

2.超级用户信息。

包括用户名、密码、姓名、性别、出生日期、籍贯等。

3.普通用户信息。

包括编号、部门名称、姓名、性别、出生日期、籍贯等信息。

4.考勤信息。

包括序列号、编号、签到时间、签离时间等信息。

5.员工状态。

包括员工请假、出差、早退、迟到、上班。

6.考勤历史信息。

包括记录号、编号、日期、签到时间、签离时间、迟到、缺勤、早退等信息。

7.用户信息。

包括用户名称、密码、所在单位、用户权限信息、操作员、最后修改时间。

3.3.1 逻辑结构设计设计根据职工考勤管理系统的功能要求,选取SQLServer 2000作为后台数据库。

在上面的实体和实体之间的E-R图设计基础上,将ER图转化为关系模型,形成数据库中的表格及表格之间的关系。

该数据库由5个表组成,部门表、超级用户表、用户表、考勤表、考勤历史表。

分别如下表所示:表3-11部门表表3-14 用户表表3-16 上班时间表表3-17 上班类型表3.4 代码设计部门代号为两位数,按照创建时间早晚排行。

例如:生产部为第七个创建的部门,所以他的编号为07。

员工ID一共分成6位,前两位表示部门代号,中间两位表示进入部门年份,后两位表示员工编号。

例如:娄京兆是2013年生产部招收的第一位员工,那么他的ID就是071301。

上班类型代号为一位数,按照上班类型分为五类,0:正常上班1:请假2:出差3:早退4:迟到。

第四章信息系统实施4.1 源程序4.1.1 添加用户Dim m_clsUser As clsUserPrivate Sub cmdReg_Click()Set m_clsUser = New clsUserm_clsUser.DoAddUser txtUserName, txtPassword, txtPasswordConfirm, txtRealName, comboPermission, txtRegTime, frmAddUserEnd SubPrivate Sub Form_Load()comboPermission.AddItem "管理员", 0comboPermission.AddItem "普通用户", 1comboPermission.ListIndex = 0End SubPrivate Sub cmdClose_Click()Unload MeEnd Sub4.1.2 修改密码Dim m_clsUser As clsUserPrivate Sub cmdChPwdOk_Click()Set m_clsUser = New clsUserm_clsUser.DoChPwd txtChUser, txtOldPwd, txtNewPwd, txtNewPwdagain, frmChPwdEnd SubPrivate Sub Form_Load()End SubPrivate Sub cmdChPwdCancel_Click()Unload MeEnd Sub4.1.3 出差情况Dim strSql As StringDim rs As New RecordsetPrivate Sub cboDept_Click()cboName.ClearstrSql = "Select * from TWorker where departmentId=" &cboDept.ItemData(cboDept.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboName.AddItem (rs.Fields(2).Value)cboName.ItemData(cboName.NewIndex) = rs.Fields(1).Valuers.MoveNextLooprs.ClosecboName.ListIndex = 0cboName.RefreshEnd SubPrivate Sub cmdPrint_Click()Set drChuChai.DataSource = adodcChuChai.RecordsetdrChuChai.Sections(1).Controls(1).Caption = "请假情况统计表"drChuChai.Sections(2).Controls(1).Caption = "部门名称"drChuChai.Sections(2).Controls(2).Caption = "员工名称"drChuChai.Sections(2).Controls(3).Caption = "出差时间"drChuChai.Sections(2).Controls(4).Caption = "出差地点"drChuChai.Sections(2).Controls(5).Caption = "出差天数"drChuChai.Sections(2).Controls(6).Caption = "登记时间"drChuChai.Sections(2).Controls(7).Caption = "销差时间"drChuChai.Sections(2).Controls(8).Caption = "出差备注"drChuChai.Sections(3).Controls(1).DataField = "部门名称"drChuChai.Sections(3).Controls(2).DataField = "员工名称"drChuChai.Sections(3).Controls(3).DataField = "出差时间"drChuChai.Sections(3).Controls(4).DataField = "出差地点"drChuChai.Sections(3).Controls(5).DataField = "出差天数"drChuChai.Sections(3).Controls(6).DataField = "登记时间"drChuChai.Sections(3).Controls(7).DataField = "销差时间"drChuChai.Sections(3).Controls(8).DataField = "出差备注"drChuChai.ShowEnd SubPrivate Sub cmdQuery_Click()strSql = "select a.departmentName as 部门名称,b.workerName as 员工名称,Time as 出差时间,Area as 出差地点,Length as 出差天数,c.dcTime as 登记时间,c.xcTime as 销差时间,Content as 出差备注from TDepartment a, TWorker b,TChuChai c where b.departmentId=" &cboDept.ItemData(cboDept.ListIndex) & "and b.workerId=" &cboName.ItemData(cboName.ListIndex) & " and a.departmentId=b.departmentId and b.departmentId=c.departmentId and b.workerId =c.workerId and Time between #" & dtpStartDate & "# and #" & dtpEndDate & "# "ConnectToDBRefushDataGrid adodcChuChai, dgChuChai, strSqlDisConnectEnd SubPrivate Sub Form_Load()strSql = "Select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboDept.AddItem (rs.Fields(1).Value)cboDept.ItemData(cboDept.NewIndex) = rs.Fields(0).Valuers.MoveNextLooprs.ClosecboDept.ListIndex = 0cboDept.RefreshEnd Sub4.1.4 添加部门Dim departId As IntegerDim departName As StringIf txtbmName.Text = "" ThenMsgBox "部门名称不能有空值"Exit SubElsedepartId = Trim(txtaddbmId.Text)departName = Trim(txtbmName.Text)strSql = "insert into TDepartment (departmentId,departmentName) values(" _ & departId & ",'" & departName & "')"TransactSQL (strSql)MsgBox "添加成功"End IfEnd SubPublic Sub init()txtbmName.Text = ""num = 0strSql = "select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)If Not rs.EOF And Not rs.BOF Thenrs.MoveLastnum = rs(0)num = num + 1Me.txtaddbmId.Text = CStr(num)ElseMe.txtaddbmId.Text = 1End IfEnd SubPrivate Sub cmdreadd_Click()Call initEnd SubPrivate Sub Form_Load()num = 0strSql = "select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)If Not rs.EOF And Not rs.BOF Thenrs.MoveLastnum = rs(0)num = num + 1Me.txtaddbmId.Text = CStr(num)ElseMe.txtaddbmId.Text = 1End IfEnd Sub4.1.5 部门管理Dim strSql As StringDim RowNumber As IntegerPrivate Sub cmdadd_Click()frmDepAdd.Show vbModalEnd SubPrivate Sub cmddel_Click()If ConnectToDB() = False ThenMsgBox "数据库连接失败!"Exit SubEnd IfIf MsgBox("你真的要删除吗", vbInformation + vbYesNo, App.Title) = vbYes ThenstrSql = "delete from TDepartment where departmentId =" & RowNumberTransactSQL (strSql)DisConnectMsgBox "删除成功", vbInformation, App.TitlestrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment"RefreshData adodcDepManage, dgDepManage, strSqlExit SubEnd IfEnd SubPrivate Sub cmdUpdate_Click()If RowNumber = -1 ThenMsgBox "请先选择要修改的数据!"Exit SubEnd IffrmDepUpdate.Show vbModalEnd SubPrivate Sub Comselect_Click()Dim m_txtdepartID As StringDim m_txtdepartName As Stringm_txtdepartID = Trim(txtDepartId.Text)m_txtdepartName = Trim(txtDepartName.Text)If (m_txtdepartID = "" And m_txtdepartName = "") ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment"ElseIf (m_txtdepartID <> "" And m_txtdepartName <> "") ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称" _& " from TDepartment where departmentId =" &m_txtdepartID & " and departmentName like '%" & m_txtdepartName & "%'"ElseIf (m_txtdepartID <> "") ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment where departmentId =" & m_txtdepartIDElseIf m_txtdepartName <> "" ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称" _& "from TDepartment where departmentName like '%" &m_txtdepartName & "%'"End IfRefreshData adodcDepManage, dgDepManage, strSqlEnd SubPrivate Sub dgDepManage_Click()On Error GoTo ShowErr:If IsNull(dgDepManage.Bookmark) ThenRowNumber = -1Exit SubElseRowNumber =dgDepManage.Columns("0").CellValue(dgDepManage.Bookmark)End IffrmDepUpdate.SetRowNumber RowNumberShowErr:Exit SubEnd SubPrivate Sub dgDepManage_DblClick()On Error GoTo ShowErr:If IsNull(dgDepManage.Bookmark) ThenRowNumber = -1Exit SubElseRowNumber =dgDepManage.Columns("0").CellValue(dgDepManage.Bookmark)End IffrmDepUpdate.SetRowNumber RowNumberfrmDepUpdate.Show vbModalShowErr:Exit SubEnd SubPrivate Sub Form_Load()RowNumber = -1End Sub4.1.6 更新部门Option ExplicitDim strSql As StringDim rsDep As New ADODB.RecordsetDim m_irownumber As IntegerDim m_iDepartId As IntegerDim m_strDepartName As StringPrivate Sub cmdOk_Click()If txtDepartName.Text = "" ThenMsgBox "登记项目不能有空值"Exit SubElsem_iDepartId = CInt(txtDepartId.Text)m_strDepartName = Trim(txtDepartName.Text)strSql = "update TDepartment set departmentName='" & m_strDepartName & "' where departmentId=" & m_iDepartIdIf ConnectToDB() = False ThenMsgBox "数据库连接失败!"Exit SubEnd IfTransactSQL (strSql)MsgBox "修改成功"cmdok.Enabled = FalseDisConnectstrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment"RefreshData frmDepManage.adodcDepManage, frmDepManage.dgDepManage, strSqlEnd IfEnd SubPrivate Sub Form_Load()m_iDepartId = GetRowNumberIf ConnectToDB() = False ThenMsgBox "数据库连接失败!"Exit SubEnd IfstrSql = "select * from TDepartment where departmentId=" & m_iDepartIdSet rsDep = TransactSQL(strSql)txtDepartId.Text = rsDep.Fields(0)txtDepartId.RefreshtxtDepartName.Text = rsDep.Fields(1)txtDepartName.RefreshtxtDepartId.Enabled = FalseDisConnectEnd SubPublic Function SetRowNumber(ByVal p_irownumber As Integer) m_irownumber = p_irownumberEnd FunctionPublic Function GetRowNumber() As IntegerGetRowNumber = m_irownumberEnd Function4.1.7 员工考勤登记Dim strSql As StringDim rs As New ADODB.RecordsetDim today As StringDim qjLength As DoubleDim qjTime As StringDim djTime As StringDim qjReason As StringDim ccLength As DoubleDim ccTime As StringDim dcTime As StringDim ccArea As StringDim ccContent As StringDim nowtime As StringPrivate Sub cboDept_Click()cboName.ClearstrSql = "Select * from TWorker where departmentId=" &cboDept.ItemData(cboDept.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboName.AddItem (rs.Fields(2).Value)cboName.ItemData(cboName.NewIndex) = rs.Fields(1).Valuers.MoveNextLooprs.ClosecboName.ListIndex = 0cboName.RefreshEnd SubPrivate Sub cboYourDepCC_Click()cboYourNameCC.ClearstrSql = "Select * from TWorker where departmentId=" & cboYourDepCC.ItemData(cboYourDepCC.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboYourNameCC.AddItem (rs.Fields(2).Value)cboYourNameCC.ItemData(cboYourNameCC.NewIndex) = rs.Fields(1).Valuers.MoveNextLooprs.ClosecboYourNameCC.ListIndex = 0cboYourNameCC.RefreshEnd SubPrivate Sub cboYourDepQJ_Click()cboYourNameQJ.ClearstrSql = "Select * from TWorker where departmentId=" & cboYourDepQJ.ItemData(cboYourDepQJ.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboYourNameQJ.AddItem (rs.Fields(2).Value)cboYourNameQJ.ItemData(cboYourNameQJ.NewIndex) =rs.Fields(1).Valuers.MoveNextLooprs.ClosecboYourNameQJ.ListIndex = 0cboYourNameQJ.RefreshEnd SubPrivate Sub cmdOk_Click()Dim psw As StringDim worktype As IntegerDim workerPsw As StringDim pwdCount As IntegerpwdCount = 0Dim departId As IntegerDim workerId As IntegerdepartId = cboDept.ItemData(cboDept.ListIndex)workerId = cboName.ItemData(cboName.ListIndex)strSql = "select workerPsw from TWorker where departmentId=" & departId & " and workerId=" & workerIdSet rs = TransactSQL(strSql)If rs.EOF = False ThenworkerPsw = rs.Fields(0)End IfIf Frame1.Visible = True ThenIf optmstart.Value = True ThenIf MsgBox("确定要" & optmstart.Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, mstart) >= 0 Thenworktype = 6Elseworktype = 4End IfIf yanzheng(departId, workerId, today) ThenMsgBox "你已经上班,不必再登记!"ElsestrSql = "insert into TShangBan (departmentId,workerId,workday,mstartTime,workmsType) " & _"values(" & departId & "," & workerId & ",#" & today & "# ,#" & nowtime & "#," & worktype & ")"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "欢迎" & cboName.Text & optmstart.Caption & ",祝你今天上午工作愉快!"MsgBox "登记成功!"End IfEnd IfElseMsgBox "不登记"End IfElseIf MsgBox("确定要" & optmleave.Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, mleave) <= 0 Thenworktype = 6Elseworktype = 3End IfIf yanzheng(departId, workerId, today) ThenIf mlrecord(departId, workerId, today) ThenstrSql = "update TShangBan set workmlType =" & worktype & ", mleaveTime ='" & nowtime & "' where departmentId =" & departId & " and workerId =" & workerId & " and workday=#" & today & "#"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "" & cboName.Text & optmleave.Caption & ",祝你生活幸福!"MsgBox "登记成功!"ElseMsgBox "你已经下班,不必再登记!"End IfElseMsgBox "对不起,你还没有上班,请先上班!", vbOKOnly + vbExclamation, "请遵守公司上下班秩序"End IfEnd IfElseMsgBox "不登记"End IfEnd IfElseIf optastart(0).Value = True ThenIf MsgBox("确定要" & optastart(0).Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, astart) >= 0 Thenworktype = 6Elseworktype = 4End IfIf yanzheng(departId, workerId, today) ThenIf asrecord(departId, workerId, today) ThenstrSql = "update TShangBan set workasType =" & worktype & ", astartTime ='" & nowtime & "' where departmentId =" & departId & " and workerId =" & workerId & " and workday=#" & today & "#"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "" & cboName.Text & optastart(0).Caption & ",祝你今天下午工作愉快!"MsgBox "登记成功!"ElseMsgBox "你已经上班,不必再登记!"End IfElsestrSql = "insert into TShangBan (departmentId,workerId,workday,astartTime,workasType) " & _"values(" & departId & "," & workerId & ",'" & today & "','" & nowtime & "'," & worktype & ")"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "欢迎" & cboName.Text & optastart(0).Caption & ",祝你今天下午工作愉快!"MsgBox "登记成功!"End IfEnd IfElseMsgBox "不登记"End IfElseIf MsgBox("确定要" & optaleave(1).Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, aleave) <= 0 Thenworktype = 6Elseworktype = 3End IfIf yanzheng(departId, workerId, today) ThenIf alrecord(departId, workerId, today) ThenstrSql = "update TShangBan set workalType =" & worktype & ", aleaveTime ='" & nowtime & "' where departmentId =" & departId & " and workerId =" & workerId & " and workday=#" & today & "#"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "" & cboName.Text & optaleave(1).Caption & ",祝你生活幸福!"MsgBox "登记成功!"ElseMsgBox "你已经下班,不必再登记!"End IfElseMsgBox "对不起,你还没有上班,请先上班!", vbOKOnly + vbExclamation, "请遵守公司上下班秩序"End IfEnd IfElseMsgBox "不登记"End IfEnd IfEnd IfEnd SubPrivate Sub cmdOKCC_Click()Dim departId As IntegerDim workerId As IntegerdepartId = cboYourDepCC.ItemData(cboYourDepCC.ListIndex)workerId = cboYourNameCC.ItemData(cboYourNameCC.ListIndex)If txtccTime.Text = "" Or txtccLength.Text = "" Or txtccArea.Text = "" Or txtccContent.Text = "" ThenMsgBox "登记项目不能有空值"Exit SubElseIf IsDate(txtccTime.Text) = False ThenMsgBox "时间格式不对!"yTimeCC.Visible = TrueyTimeCC.Caption = "时间格式:" & Now()Exit SubElseyTimeCC.Caption = ""yTimeCC.Visible = FalseccArea = Trim(txtccArea.Text)ccContent = Trim(txtccContent.Text)strSql = "insert into TChuChai(departmentId,workerId,ccTime,ccArea,ccLength,dcTime,ccContent) values(" _& departId & "," & workerId & ",'" & ccTime & "','" & ccArea & "'," & ccLength & ",'" & dcTime & "','" & ccContent & "')"TransactSQL (strSql)MsgBox "登记成功"End IfEnd SubPrivate Sub cmdOKQJ_Click()Dim departId As IntegerDim workerId As IntegerdepartId = cboYourDepQJ.ItemData(cboYourDepQJ.ListIndex)workerId = cboYourNameQJ.ItemData(cboYourNameQJ.ListIndex)If txtqjTime.Text = "" Or txtqjLength.Text = "" Or txtqjReason.Text = "" Then MsgBox "登记项目不能有空值"Exit SubElseIf IsDate(txtqjTime) = False ThenMsgBox "时间格式不对!"yTime.Visible = TrueyTime.Caption = "时间格式:" & Now()Exit SubElseyTime.Visible = FalseqjReason = Trim(txtqjReason.Text)strSql = "insert into TQingJia(departmentId,workerId,qjTime,qjLength,djTime,qjReason) values(" _& departId & "," & workerId & ",'" & qjTime & "'," & qjLength & ",'" & djTime & "','" & qjReason & "')"TransactSQL (strSql)MsgBox "登记成功"End IfEnd SubPrivate Sub cmdokUserLogin_Click()Dim m_clsUser As clsUserDim p_enumUserLogin As USERLOGINSet m_clsUser = New clsUserp_enumUserLogin = m_clsUser.DoUserLogin(Trim(txtUserName.Text), Trim(txtPassword.Text), frmUserLogin)If p_enumUserLogin = LOGERROR ThenExit SubElseIf p_enumUserLogin = LOGSUPER ThenUnload frmNormalUserMainMDIfrmAdminMain.ShowElseIf p_enumUserLogin = LOGNORMAL ThenUnload MDIfrmAdminMainfrmNormalUserMain.ShowEnd IfEnd SubPrivate Sub Form_Load()Dim nowtime As Stringlabwelcome.Visible = Falsenowtime = Time()If Hour(nowtime) < 13 ThenFrame1.Visible = TrueFrame2.Visible = FalseElseFrame1.Visible = FalseFrame2.Visible = TrueEnd IfstrSql = "Select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboDept.AddItem (rs.Fields(1).Value)cboDept.ItemData(cboDept.NewIndex) = rs.Fields(0).ValuecboYourDepQJ.AddItem (rs.Fields(1).Value)cboYourDepQJ.ItemData(cboYourDepQJ.NewIndex) =rs.Fields(0).ValuecboYourDepCC.AddItem (rs.Fields(1).Value)cboYourDepCC.ItemData(cboYourDepCC.NewIndex) =rs.Fields(0).Valuers.MoveNextLooprs.ClosecboDept.ListIndex = 0cboYourDepQJ.ListIndex = 0cboYourDepCC.ListIndex = 0cboDept.RefreshcboYourDepQJ.RefreshcboYourDepCC.RefreshtxtqjTime.Text = Now()labdjTime.Caption = ""yTime.Visible = FalsetxtccTime.Text = Now()labdcTime.Caption = ""yTimeCC.Caption = ""yTimeCC.Visible = FalseEnd SubPrivate Sub Form_Unload(Cancel As Integer)Unload frmUserLoginEnd SubPublic Function mlrecord(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select workmlType from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.Fields(0).Value = 0 Thenmlrecord = TrueElsemlrecord = FalseEnd Ifrs.CloseEnd FunctionPublic Function asrecord(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select workasType from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.Fields(0).Value = 0 Thenasrecord = TrueElseasrecord = FalseEnd Ifrs.CloseEnd FunctionPublic Function alrecord(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select workalType from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.Fields(0).Value = 0 Thenalrecord = TrueElsealrecord = FalseEnd Ifrs.CloseEnd FunctionPublic Sub getTime()strSql = "Select * from TWorkTime"Set rs = TransactSQL(strSql)If Not rs.EOF Thenmstart = rs.Fields(0)mleave = rs.Fields(1)astart = rs.Fields(2)aleave = rs.Fields(3)End Ifnowtime = Time()today = DateEnd SubPublic Function yanzheng(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select * from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.EOF = False Thenyanzheng = TrueElseyanzheng = FalseEnd Ifrs.CloseEnd FunctionPublic Function yanzhengPWD(ByVal labwelcome As Label, ByVal psw As String, workerPsw As String) As BooleanDo While psw <> workerPswlabwelcome.Visible = Truelabwelcome.Caption = "你的身份被怀疑啦,请再次输入你的员工密码!"pwdCount = pwdCount + 1If pwdCount = 3 ThenMsgBox "你已经是三次输错,系统将关闭啦!", vbOKOnly + vbExclamation, "通知"yanzhengPWD = FalseExit FunctionEnd Ifpsw = InputBox("请输入员工密码:", "输入密码")LoopyanzhengPWD = True。

相关文档
最新文档