ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:310.85KB ,
资源ID:11210289      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11210289.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(考勤管理系统.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

考勤管理系统.docx

1、考勤管理系统考勤管理系统1.1系统设计1.1.1系统的设计目标考勤管理系统的总体任务是实现考勤管理的规范化、考勤数据统计的自动化。系统的设计目标即是完成这一任务。1.1.2设计思想系统应尽量结合单位现有的软硬件环境,充分利用现有资源。所以本系统除了要能够手工录入员工的考勤记录外,还应能够与考勤机相结合,实现考勤信息录入自动化。系统的考勤类型应能够灵活设定,以便用户随时调整。系统应具备报表功能,查询统计时能够直接生成相关员工的考勤报表,报表要能够导出、打印。系统应该具备数据库维护功能,能够让用户进行数据表的备份和恢复。系统应采用模块化程序设计,便于功能的组合与修改,以及以后尽可能进行补充。综合考

2、虑,确定本系统使用C/S工作模式,以oracle作为后台数据库,visual basic 6.0为前台程序开发语言。1.1.3系统功能模块划分根据系统的设计思想,划分系统功能为以下几个模块。员工信息的管理模块考勤类型的设定模块员工考勤信息手工录入模块经考勤机生成并处理的考勤信息导入模块员工考勤情况统计报表生成模块数据库维护模块系统功能模块图如图1.1所示考勤管理系统员工信息管理考勤类型设定信息手工录入信息导入生成统计报表数据库维护图1.1系统功能模块图1.2系统设计数据库设计在数据库程序设计中是非常重要的一个环节,具体指的是数据库中各个表结构的设计,包括信息保存在哪些表格中,各个表详细结构以及

3、各个表格之间的关系。数据库结构是数据库应用程序的基础,它的好坏直接影响到应用程序的执行效率,数据库结构设计得好,就会减少数据库的存储量,并且使数据保持很高的完整性和一致性,还会提高数据查询的数度,运用前台编程工具时,也会有一定程序上的简化。数据库设计分为以下三个阶段。数据库需求分析数据库概念结构设计数据库逻辑结构设计1.2.1数据库需求分析数据库需求分析是数据库结构设计的第一个阶段,也是非常重要的一个阶段,这个阶段的任务是收集数据基本信息和取得数据处理的流程。需求分析要做的工作是与用户结合,调查用户需要操作的资料,以决定在数据库中存储什么数据,还要弄清用户怎么处理各种数据资料,理清数据库中个数

4、据之间的关系。这个阶段的工作成功应该有以下三个方面的内容。数据项:每种具体数据的名称、意义、类型、取值范围以及与其他数据项之间的逻辑关系。数据集:若干数据项的有逻辑关联的集合,包括名称、意义和组成数据集的数据项。数据流:应用系统运行时,数据是怎样输入、处理和输出的。这三个方面的内容就是本系统的数据字典文档,如果数据库需求分析阶段的工作没有做好,数据字典在将来的系统开发过程中就有可能随时发生变化,开发后期可能面临程序午休止的修改和调试,甚至是一切的推到重来,因此一定要重视这个阶段的工作。系统处理数据的流程,如图1.2所示生成考勤统计表员工信息数据考勤类型数据员工考勤信息数据考勤类型设定员工信息管

5、理考勤信息手工录入考勤类型数据导入图1.2数据流程图通过分析数据流程,设计数据集和数据项如下。员工信息数据集,数据项为员工号、员工姓名、员工性别、员工所属部门。考勤类型数据集,数据项为类型号、类型名称。员工考勤情况数据集,数据项为考勤日期、员工号、考勤类型号、备注。1.2.2数据库结构设计本系统采用E-R图的方法来进行数据库概念结构设计。1.员工信息实体E-R图员工信息实体E-R图如图1.3所示。员工信息员工号员工姓名员工性别所属部门图1.3员工信息实体E-R图2.考勤类型实体E-R图考勤类型实体E-R图如图1.4所示。考勤类型类型号类型名称图1.4考勤类型实体E-R图3.员工考勤情况实体E-

6、R图员工考勤情况实体E-R图如图1.5所示。员工考勤情况考勤日期员工号考勤类型号备注 图1.5员工考勤情况实体E-R图4.实体和实体之间的关系E-R图 实体和实体之间的关系E-R图如图1.6所示。员工具有哦、考勤情况属于考勤类型图1.6各实体之间的关系E-R图数据库各个表格的设计结果,如表1.11.3所示。表1.1考勤类型表格KQLXB字段数据类型能否为空备注BHVARCHAR2(4)NOT NULL类型编号(主键)LXVARCHAR2(20)NULL类型名称表1.2员工信息表格YGB字段数据类型能否为空备注BHVARCHAR2(8)NOT NULL员工编号(主键)XMVARCHAR2(12)

7、NOT NULL员工姓名XBVARCHAR2(2)NOT NULL员工性别BMVARCHAR2(20)NULL员工部门表1.3考勤管理表格KQGLB字段数据类型能否为空备注KQRQDATENOT NULL考勤日期(主键1)YGBHVARCHAR2(8)NOT NULL员工编号(主键2)(指向员工信息表BH字段的外键)LXBHVARCHAR2(4)NOT NULL类型编号(指向考勤类型表BH字段的外键)BZVARCHAR2(20)NULL备注1.3设计系统的界面1.3.1窗口的设计 经过构细,本系统需要创建五个窗口:考勤管理系统登录窗口、考勤类型管理窗口、员工信息管理窗口、考勤情况录入窗口、考勤

8、信息统计窗口1.考勤管理系统登录窗口运行界面2.考勤管理系统登录窗口设计界面主要事件与代码:Private Sub Form_Resize() Image1.Width = Me.Width Image1.Height = Me.Height Label1.Left = (Me.Width) / 2 - Label1.Width / 2 Label2.Left = (Me.Width) / 2 - Label2.Width / 2 Label3.Left = (Me.Width) / 2 - Label3.Width / 2End SubPrivate Sub Toolbar1_ButtonC

9、lick(ByVal Button As MSComctlLib.Button)Select Case Button.KeyCase bt2frm_yggl.Show , MeCase bt3frm_kqlx.Show , MeCase bt4frm_kqlr.Show , MeCase bt5Frm_kqtj.Show , MeEnd SelectEnd Sub3.员工信息管理窗口运行界面4.员工信息管理窗口设计界面属性设置:1. Frm_yggl的属性设置属性名值含义Caption员工信息管理BorderStyle1Fixed singleStartUpPosition1所有者中心2. C

10、ombo1的属性设置Style2Dropdown ListList男 女LockedTrue3. DataGrid1的属性设置DataSourceAdodc14. Text1-Text3的属性设置LockedTrue主要事件与代码:Dim add_flag As Boolean, modify_flag As BooleanPrivate Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum,

11、ByVal pRecordset As ADODB.Recordset) If Adodc1.Recordset.RecordCount 0 Then Text1.Text = Adodc1.Recordset.Fields(bh) & Text2.Text = Adodc1.Recordset.Fields(xm) & Text3.Text = Adodc1.Recordset.Fields(bm) & If Adodc1.Recordset.Fields(xb) = 男 Then Combo1.ListIndex = 0 Else Combo1.ListIndex = 1 End If E

12、lse Text1.Text = Text2.Text = Text3.Text = Combo1.ListIndex = 0 Call showbuttons End If End SubPrivate Sub cmdadd_Click()Text1.Text = Text2.Text = Text3.Text = Text1.Locked = FalseText2.Locked = FalseText3.Locked = FalseCombo1.Locked = FalseDataGrid1.Enabled = Falseadd_flag = TrueCall showbuttonsEnd

13、 SubPrivate Sub cmdcancle_Click() If Adodc1.Recordset.RecordCount 0 Then Text1.Text = Adodc1.Recordset.Fields(bh) & Text2.Text = Adodc1.Recordset.Fields(xm) & Text3.Text = Adodc1.Recordset.Fields(bm) & If Adodc1.Recordset.Fields(xb) = 男 Then Combo1.ListIndex = 0 Else Combo1.ListIndex = 1 End IfElse

14、Text1.Text = Text2.Text = Text3.Text = Combo1.ListIndex = 0 End If Text1.Locked = True Text2.Locked = True Text3.Locked = True Combo1.Locked = True DataGrid1.Enabled = True add_flag = False modify_flag = False Call showbuttonsEnd SubPrivate Sub cmddelete_Click()ret = MsgBox(你真的要删除 + Adodc1.Recordset

15、.Fields(xm) + 的记录吗?, vbYesNo + vbQuestion + vbDefaultButton2, 提示)If ret = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.UpdateEnd IfDataGrid1.SetFocusEnd SubPrivate Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdmodify_Click()Text1.Locked = FalseText2.Locked = FalseText3.Locked = FalseCombo

16、1.Locked = FalseDataGrid1.Enabled = Falsemodify_flag = TrueCall showbuttonsEnd SubPrivate Sub cmdsave_Click()Text1.Text = Trim(Text1.Text)Text2.Text = Trim(Text2.Text)Text3.Text = Trim(Text3.Text)If is_data_ok() = False Then Exit SubEnd Ifin_bh = Text1.Textin_xm = Text2.Textin_xb = Combo1.Textin_bm

17、= Text3.TextIf add_flag = True Then Adodc1.Recordset.AddNewEnd IfAdodc1.Recordset.Fields(bh) = in_bhAdodc1.Recordset.Fields(xm) = in_xmAdodc1.Recordset.Fields(xb) = in_xbAdodc1.Recordset.Fields(bm) = in_bmAdodc1.Recordset.UpdateIf add_flag = True Then Adodc1.Recordset.Find bh= + in_bh + , , adSearch

18、Forward, 1End IfText1.Locked = TrueText2.Locked = TrueText3.Locked = TrueCombo1.Locked = TrueDataGrid1.Enabled = Trueadd_flag = Falsemodify_flag = FalseCall showbuttonsDataGrid1.SetFocusEnd SubPrivate Sub Form_Load()add_flag = Falsemodify_flag = FalseCall showbuttonsEnd SubPrivate Sub showbuttons()I

19、f add_flag = False And modify_flag = False Thencmdadd.Enabled = TrueIf Adodc1.Recordset.RecordCount = 0 Then Cmdmodify.Enabled = False cmddelete.Enabled = FalseElse Cmdmodify.Enabled = True cmddelete.Enabled = TrueEnd Ifcmdexit.Enabled = TrueCmdcancle.Enabled = FalseCmdsave.Enabled = FalseElsecmdadd

20、.Enabled = FalseCmdmodify.Enabled = Falsecmddelete.Enabled = Falsecmdexit.Enabled = FalseCmdcancle.Enabled = TrueCmdsave.Enabled = TrueEnd IfEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)If add_flag = True Or modify_flag = True Then MsgBox (数据正在编辑,不能退出!) Cancel = TrueE

21、nd IfEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If (KeyAscii 57) And KeyAscii 8 Then KeyAscii = 0End IfEnd SubPrivate Function is_data_ok() As BooleanIf modify_flag = True Then old_bh = Adodc1.Recordset.Fields(bh)End IfIf Len(Text1.Text) 8 Then MsgBox (编号的长度不够!) is_data_ok = False Text1.S

22、etFocus Exit FunctionEnd IfIf Len(Text2.Text) = 0 Then MsgBox (姓名未输入!) is_data_ok = False Text2.SetFocus Exit FunctionEnd IfIf add_flag = True Then Adodc2.RecordSource = select * from ygb where bh= + Text1.Text + Adodc2.Refresh Else Adodc2.RecordSource = select * from ygb where bh= + Text1.Text + an

23、d bh + old_bh + Adodc2.RefreshEnd IfIf Adodc2.Recordset.RecordCount 0 Then MsgBox (编号有重复!) is_data_ok = False Text1.SetFocus Exit FunctionEnd Ifis_data_ok = TrueEnd Function5.考勤情况录入窗口运行界面6.考勤情况录入窗口设计界面属性设置:1. Frm_kqlr的属性设置属性名值含义Caption考勤情况录入BorderStyle1Fixed singleStartUpPosition1所有者中心2.数据源Adodc的设置A

24、dodc1名称AdoDataGridAdodc2名称AdoKQGLBAdodc3名称AdoKQLXBAdodc4名称AdoYGB2. 下拉框Combo的属性设置Combo1名称ComboYGB生成员工列表Combo2名称ComboKQLXB生成考勤类型列表LockedTrueStyle2Dropdown List3. DataGrid1的属性设置DataSourceAdoDataGrid4. Text1的属性设置LockedTrue主要事件与代码: Dim add_flag As Boolean, modify_flag As Boolean Dim ygb_rec As Integer, l

25、xb_rec As Integer Dim kq_date As String add_flag:增加状态标志(布尔型) modify_flag:修改状态标志(布尔型) ygb_rec:员工表记录总数(数值型) lxb_rec:类型表记录总数(数值型) kq_date:考勤的日期(类型是字符型) Private Sub AdoDataGrid_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRe

26、cordset As ADODB.Recordset) If AdoDataGrid.Recordset.RecordCount 0 Then 数据表内容不为空 ComboYGB.Text = AdoDataGrid.Recordset.Fields(员工) & ComboKQLXB.Text = AdoDataGrid.Recordset.Fields(类型) & Text1.Text = AdoDataGrid.Recordset.Fields(bz) & End If End Sub Private Sub cmdadd_Click() 增加按钮 增加按钮的单击事件 1:生成员工的增加列

27、表框 Call formyglist(kq_date, add) 2:文本框、组合框解锁 Text1.Text = 文本框清空 Text1.Locked = False 取消对象的只读 ComboYGB.Locked = False ComboKQLXB.Locked = False ComboYGB.ListIndex = 0 ComboKQLXB.ListIndex = 0 3:锁定表格、日期不能动 DataGrid1.Enabled = False 锁定表格 DTPicker1.Enabled = False 锁定日期 4:设置表单状态 add_flag = True 设置为增加编辑状态

28、 Call showbuttons 刷新按钮状态 ComboYGB.SetFocus End Sub Private Sub cmdmodify_Click() 修改按钮 修改按钮的单击事件 1:文本框、组合框解锁 Text1.Locked = False 取消对象的只读 ComboKQLXB.Locked = False 2:锁定表格、日期不能动 DataGrid1.Enabled = False 锁定表格 DTPicker1.Enabled = False 锁定日期 3:设置表单状态 modify_flag = True 设置为修改编辑状态 Call showbuttons 刷新按钮状态 ComboKQLXB.SetFocus End Sub Private Sub cmdcancle_Click() 取消按钮 取消按钮的单击事件 1:生成员工的浏览列表 Call formyglist(kq_date, browse) 2:恢复数据,并设置文本框、下拉框对象只读 If AdoDataGrid.Recordset.RecordCount 0 Then 数据表内容不为空 ComboYGB.Text = AdoDataGrid.Recordset.Fields(员工) & ComboKQLX

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2