考勤管理系统.docx

上传人:b****8 文档编号:11118389 上传时间:2023-02-25 格式:DOCX 页数:37 大小:337.03KB
下载 相关 举报
考勤管理系统.docx_第1页
第1页 / 共37页
考勤管理系统.docx_第2页
第2页 / 共37页
考勤管理系统.docx_第3页
第3页 / 共37页
考勤管理系统.docx_第4页
第4页 / 共37页
考勤管理系统.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

考勤管理系统.docx

《考勤管理系统.docx》由会员分享,可在线阅读,更多相关《考勤管理系统.docx(37页珍藏版)》请在冰豆网上搜索。

考勤管理系统.docx

考勤管理系统

考勤管理系统

一系统设计

1系统设计的目标

考勤管理系统的总体任务是实现企业员工考勤管理的规范化,考勤数据统计的自动化。

系统的设计目标即是完成这一任务

2设计思想

系统应该具备数据库维护功能,能够让用户进行数据包的备份和恢复。

系统应采用模块化程序设计,便于功能的组合与修改,以及以后可能进行的补充。

综合烤炉,缺的本系统采用才C/S工作模式,以Oracle作为后台数据库,visualbasic6.0为前台程序开发语言。

3系统功能模块划分

根据系统的设计思想,划分系统功能为以下几个模块。

考勤管理系统

员工管理

类型管理

考勤录入

考勤统计

二数据库设计

1数据库需求设计

需求分析要做的工作是与用户结合,调查用户需要操作的资料,以决定在数据库中存储什么数据,还要弄清用户怎么样处理各种数据资料,理清数据库中各数据之间的关系。

针对本实例,经认真调查分析,得到系统处理数据的流程图如下:

考勤

统计

员工信息数据

员工考勤信息数据

考勤类型数据

员工管理

类型管理

考勤录入

2数据库结构设计

2.1数据对象和数据类型,只是构建一个概念上的数据模型。

一般我们都将涉及结果用E—R图来表示

员工信息实体E—R图如下

员工信息

员工号

所属部门

员工性别

员工姓名

考勤类型实体E—R如如下

考勤类型

类型号

类型名称

员工考勤情况实体E—R图如下:

员工考勤情况

考勤日期

备注

考勤类型号

员工号

实体和实体之间的关系E—R如如下

员工

具有

考勤情况

属于

考勤类型

三数据库对象的创建

1创建考勤类型表

使用SQL语句创建如下的考勤类型表:

CREATETABLEKQLXB

(BHVARCHAR2(4)NOTNULL,

LXVARCHAR2(20)NULL,

CONSTRAINTKQLXBPRIPRIMARYKEY(BH)

);

插入数据

INSERTINTOKQLXBVALUES('0001','出勤');

INSERTINTOKQLXBVALUES('0002','迟到');

INSERTINTOKQLXBVALUES('0003','旷工');

INSERTINTOKQLXBVALUES('0004','早退');

INSERTINTOKQLXBVALUES('0005','病假');

INSERTINTOKQLXBVALUES('0006','事假');

2创建员工表

CREATETABLEYGB

(BHVARCHAR2(8)NOTNULL,

XMVARCHAR2(12)NOTNULL,

XBVARCHAR2

(2)NOTNULL,

BMVARCHAR2(20),

CONSTRAINTYGBPRIPRIMARYKEY(BH)

);

插入数据

INSERTINTOYGBVALUES('00000001','张成','男','财务部');

INSERTINTOYGBVALUES('00000002','李刚','男','教务处');

INSERTINTOYGBVALUES('00000003','刘元薇','女','人事处');

INSERTINTOYGBVALUES('00000004','刘奇','男','教务处');

INSERTINTOYGBVALUES('00000005','黄婷婷','女','人事处');

INSERTINTOYGBVALUES('00000006','罗桂英','女','财务部');

INSERTINTOYGBVALUES('00000007','周天','男','会计系');

INSERTINTOYGBVALUES('00000008','张以能','男','会计系');

INSERTINTOYGBVALUES('00000009','谭华','男','人事处');

INSERTINTOYGBVALUES('00000010','王玉梅','女','会计系');

3创建考勤管理表

CREATETABLEKQGLB

(KQRQDATENOTNULL,

YGBHVARCHAR2(8)NOTNULL,

LXBHVARCHAR2(4)NOTNULL,

BZVARCHAR2(60),

CONSTRAINTKQGLBPRIPRIMARYKEY(KQRQ,YGBH)

);

插入数据

INSERTINTOKQGLBVALUES('15-3月-2010','00000001','0002','塞车');

INSERTINTOKQGLBVALUES('16-3月-2010','00000003','0004','');

INSERTINTOKQGLBVALUES('16-3月-2010','00000004','0002','');

INSERTINTOKQGLBVALUES('17-4月-2010','00000001','0001','');

INSERTINTOKQGLBVALUES('17-4月-2010','00000002','0006','');

再添加两个必要的外键

ALTERTABLEKQGLBADD

(CONSTRAINTKQGL_BH_FKFOREIGNKEY(LXBH)REFERENCESKQLXB(BH),

CONSTRAINTYG_BH_FKFOREIGNKEY(YGBH)REFERENCESYGB(BH)

);

系统界面设计,运行界面及代码

主界面(Frm_main)

一、运行界面:

 

二、设计界面:

三、主要事件与代码:

PrivateSubForm_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

EndSub

PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)

SelectCaseButton.Key

Case"bt1"'员工管理

frm_yggl.Show,Me

Case"bt2"'类型管理

frm_lxgl.Show,Me

Case"bt3"'考勤录入

Frm_kqlr.Show,Me

Case"bt4"'考勤统计

frm_kqtj.Show,Me

EndSelect

EndSub

考勤类型管理(Frm_lxgl)

一、运行界面:

 

二、设计界面:

三、主要事件与代码:

Dimadd_flagAsBoolean,modify_flagAsBoolean

PrivateSubAdodc1_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)

IfAdodc1.Recordset.RecordCount>0Then

Text1.Text=Adodc1.Recordset.Fields("bh")&""

Text2.Text=Adodc1.Recordset.Fields("lx")&""

Else

Text1.Text=""

Text2.Text=""

Callshowbuttons

EndIf

EndSub

PrivateSubcmdadd_Click()

Text1.Text=""

Text2.Text=""

Text1.Locked=False

Text2.Locked=False

DataGrid1.Enabled=False

add_flag=True

Callshowbuttons

Text1.SetFocus

EndSub

PrivateSubcmdcancle_Click()

IfAdodc1.Recordset.RecordCount>0Then

Text1.Text=Adodc1.Recordset.Fields("bh")&""

Text2.Text=Adodc1.Recordset.Fields("lx")&""

Else

Text1.Text=""

Text2.Text=""

EndIf

Text1.Locked=True

Text2.Locked=True

DataGrid1.Enabled=True

add_flag=False

modify_flag=False

Callshowbuttons

DataGrid1.SetFocus

EndSub

PrivateSubcmddelete_Click()

ret=MsgBox("是否要删除"+Adodc1.Recordset.Fields("lx")+"类型吗?

",vbYesNo+vbQuestion+vbDefaultButton2,"删除提示")

Ifret=vbYesThen

Adodc1.Recordset.Delete

Adodc1.Recordset.Update

EndIf

DataGrid1.SetFocus

EndSub

PrivateSubcmdexit_Click()

UnloadMe

EndSub

PrivateSubcmdmodify_Click()

Text1.Locked=False

Text2.Locked=False

DataGrid1.Enabled=False

modify_flag=True

Callshowbuttons

Text1.SetFocus

EndSub

PrivateSubcmdsave_Click()

Text1.Text=Trim(Text1.Text)

Text2.Text=Trim(Text2.Text)

Ifis_data_ok()=FalseThen

ExitSub

EndIf

in_bh=Text1.Text

in_lx=Text2.Text

Ifadd_flag=TrueThen

Adodc1.Recordset.AddNew

EndIf

Adodc1.Recordset("bh")=in_bh

Adodc1.Recordset("lx")=in_lx

Adodc1.Recordset.Update

Ifadd_flag=TrueThen

Adodc1.Refresh

Adodc1.Recordset.Find"bh='"+in_bh+"'",,adSearchForward,1

EndIf

Text1.Locked=True

Text2.Locked=True

DataGrid1.Enabled=True

add_flag=False

modify_flag=False

Callshowbuttons

DataGrid1.SetFocus

EndSub

PrivateSubForm_Load()

add_flag=False

modify_flag=False

Callshowbuttons

EndSub

PrivateSubshowbuttons()

Ifadd_flag=FalseAndmodify_flag=FalseThen

cmdadd.Enabled=True

IfAdodc1.Recordset.RecordCount=0Then

cmdmodify.Enabled=False

cmddelete.Enabled=False

Else

cmdmodify.Enabled=True

cmddelete.Enabled=True

EndIf

cmdexit.Enabled=True

cmdcancle.Enabled=False

cmdsave.Enabled=False

Else

cmdadd.Enabled=False

cmdmodify.Enabled=False

cmddelete.Enabled=False

cmdexit.Enabled=False

cmdcancle.Enabled=True

cmdsave.Enabled=True

EndIf

EndSub

PrivateFunctionis_data_ok()AsBoolean

oldbh=IIf(modify_flag=True,Adodc1.Recordset.Fields("bh"),"")

IfLen(Text1.Text)<>4Then

MsgBox("编号未输入或输入的编号长度不够!

")

is_data_ok=False

Text1.SetFocus

ExitFunction

EndIf

Ifadd_flag=TrueThen

Adodc2.RecordSource="select*fromkqlxbwherebh='"+Text1.Text+"'"

Adodc2.Refresh

Else

Adodc2.RecordSource="select*fromkqlxbwherebh='"+Text1.Text+"'andbh<>'"+oldbh+"'"

Adodc2.Refresh

EndIf

IfAdodc2.Recordset.RecordCount>0Then

MsgBox("输入编号重复!

")

is_data_ok=False

Text1.SetFocus

ExitFunction

EndIf

IfLen(Text2.Text)=0Then

MsgBox("类型名称未输入!

")

is_data_ok=False

Text2.SetFocus

ExitFunction

EndIf

is_data_ok=True

EndFunction

PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)

Ifadd_flag=TrueOrmodify_flag=TrueThen

MsgBox("正在编辑数据,请先按取消键后再退出!

")

Cancel=True

EndIf

EndSub

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

If(KeyAscii<48OrKeyAscii>57)AndKeyAscii<>8Then

KeyAscii=0

EndIf

EndSub

员工信息管理(Frm_yggl)

一、运行界面:

 

二、设计界面:

 

三、属性设置:

1.Frm_yggl的属性设置

属性名

含义

Caption

员工信息管理

 

BorderStyle

1

Fixedsingle

StartUpPosition

1

所有者中心

2.Combo1的属性设置

Style

2

DropdownList

List

男 女

 

Locked

True

 

3.DataGrid1的属性设置

DataSource

Adodc1

 

4.Text1--Text3的属性设置

Locked

True

 

 

四、主要事件与代码:

 

  Dimadd_flagAsBoolean,modify_flagAsBoolean

  'add_flag:

增加状态标志modify_flag:

修改状态标志

  PrivateSubAdodc1_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)

     Text1.Text=Adodc1.Recordset.Fields("bh")&""

     Text2.Text=Adodc1.Recordset.Fields("xm")&""

     Text3.Text=Adodc1.Recordset.Fields("bm")&""

     Combo1.ListIndex=IIf(Adodc1.Recordset.Fields("xb")="男",0,1)

  EndSub

  PrivateSubcmdadd_Click()'增加按钮

     '初始化文本框、组合框,设置增加编辑状态

     Text1.Text=""'清空文本框内容

     Text2.Text=""

     Text3.Text=""

     Text1.Locked=False'取消对象的只读

     Text2.Locked=False

     Text3.Locked=False

     Combo1.Locked=False

     Combo1.ListIndex=0

     DataGrid1.Enabled=False'锁定表格

     add_flag=True'设置为增加编辑状态

     Callshowbuttons'刷新按钮状态

     Text1.SetFocus

  EndSub

  PrivateSubcmdmodify_Click()'修改按钮

     '初始化文本框、组合框,设置修改编辑状态

     Text1.Locked=False'取消对象的只读

     Text2.Locked=False

     Text3.Locked=False

     Combo1.Locked=False

     DataGrid1.Enabled=False'锁定表格

     modify_flag=True'设置为修改编辑状态

     Callshowbuttons'刷新按钮状态

     Text1.SetFocus

EndSub

  PrivateSubcmddelete_Click()'删除按钮

    ret=MsgBox("是否要删除"+Adodc1.Recordset("xm")+"员工的记录!

",vbYesNo+vbExclamation+vbDefaultButton2,"提示")

     Ifret=vbYesThen'确定要删除

        WithAdodc1.Recordset

           .Delete

           .Update

        EndWith

     EndIf

     DataGrid1.SetFocus

  EndSub

  PrivateSubcmdcancle_Click()'取消按钮

     Text1.Text=Adodc1.Recordset.Fields("bh")&""

     Text2.Text=Adodc1.Recordset.Fields("xm")&""

     Text3.Text=Adodc1.Recordset.Fields("bm")&""

     Combo1.ListIndex=IIf(Adodc1.Recordset.Fields("xb")="男",0,1)

     Text1.Locked=True'设置对象的只读

     Text2.Locked=True

     Text3.Locked=True

     Combo1.Locked=True

     DataGrid1.Enabled=True'取消锁定表格

     add_flag=False'设置为非增加状态

     modify_flag=False'设置为非修改状态

     Callshowbuttons'刷新按钮状态

     DataGrid1.SetFocus

  EndSub

  PrivateSubcmdsave_Click()'保存按钮

     Text1.Text=Trim(Text1.Text)

     Text2.Text=Trim(Text2.Text)

     Text3.Text=Trim(Text3.Text)

     '检查数据的正确性

     Ifisdataok()=FalseThen'数据有错误

        ExitSub

     EndIf

     in_bh=Text1.Text

     in_xm=Text2.Text

     in_bm=Text3.Text

     in_xb=Combo1.Text

     '-----------------------

     Ifadd_flag=TrueThen'增加数据

        Adodc1.Recordset.AddNew

     EndIf

     Adodc1.Recordset("bh")=in_bh

     Ad

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1