VF课程设计--员工工资管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库技术与应用课程设计
题目:员工工资管理系统
系别:测绘工程
专业:地理信息系统
班级:0624121
姓名:时柳青孙浩谈士军王豪
2014年1月2日1.功能简介
工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。
通过本系统可以实现员工信息和工资的浏览、查询、编辑和预览打印报表的功能.
2。
概要设计
由于这是一次课程设计,制作的系统相对来说比较简单。
包括登录模块、数据浏览模块、数据添加模块、数据修改模块、数据删除模块、数据查询模块、数据统计模块、报表输出模块.该工资管理的系统的主要功能如图所示。
工资管理系统
浏览模块要求有员工的基本信息,查询模块个人查询通过职工编号的来查询员工各自的信息,集体查询通过查询一个部门。
编辑模块包括添加、修改、删除模块,输出模块包括报表的预览与打印.
3。
详细设计
工资管理系统主界面
登录代码如下:
do case
case thisform。
optiongroup1。
value=1
if thisform.cbo用户名。
value="时柳青" and thisform。
txt密码。
value="123" do form 工资管理系统欢迎界面.scx
else
i=i+1
if i〈=3
messagebox(”用户名或密码错误")
thisform.cbo用户名。
value=”"
thisform。
txt密码.value="”
thisform.cbo用户名。
setfocus
else
messagebox("信息有误,不能登录”)
endif
endif
case thisform.optiongroup1.value=2
if thisform.cbo用户名。
value="孙浩” and thisform.txt密码.value=”456"
do form 一般用户登录后的界面.scx
else
k=k+1
if k〈=3
messagebox(”用户名或密码错误”)thisform。
cbo用户名。
value="" thisform。
txt密码.value=””thisform.cbo用户名.setfocus
else
messagebox("信息有误,不能登录”) endif
endif
endcase
退出代码如下:
release thisform
工资管理系统欢迎界面
所用代码如下:
do form 浏览界面.scx
do form 个人查询界面.scx
do form 集体查询界面.scx
do form 添加记录界面.scx
do form 修改记录界面。
scx
do form 删除记录界面.scx
do form 打印界面.scx
所用代码如下:
do form 个人查询界面.scx do form 集体查询界面.scx release thisform
集体查询界面
确定代码如下:
do case
case bo1.value=”生产部"
select 员工表。
职工编号,员工表.姓名,工资表。
基本工资,工资表。
岗位工资,工资表。
奖金,工资表.扣所得税,工资表.实发工资from 员工表,工资表;
where 员工表.部门=='生产部’ and 员工表.职工编号=工资表。
职工编号into cursor shchb thisform.grid1。
recordsource=”shchb"
thisform.grid1.refresh
case bo1.value=”销售部”
select 员工表.职工编号,员工表。
姓名,工资表.基本工资,工资表。
岗位工资,工资表.奖金,工资表。
扣所得税,工资表.实发工资from 员工表,工资表;
where 员工表。
部门==’销售部’ and 员工表。
职工编号=工资表。
职工编号into cursor xshb thisform。
grid1。
recordsource="xshb”
thisform。
grid1.refresh
case thisform。
combo1。
value="技术部"
select 员工表.职工编号,员工表。
姓名,工资表.基本工资,工资表。
岗位工资,工资表。
奖金,工资表。
扣所得税,工资表。
实发工资from 员工表,工资表;
where 员工表.部门=='技术部' and 员工表。
职工编号=工资表。
职工编号into cursor jshb thisform.grid1.recordsource="jshb”
thisform。
grid1。
refresh
case bo1。
value="公关部”
select 员工表。
职工编号,员工表.姓名,工资表.基本工资,工资表.岗位工资,工资表。
奖金,工资表.扣所得税,工资表.实发工资from 员工表,工资表;
where 员工表.部门=='公关部' and 员工表。
职工编号=工资表.职工编号into cursor ggb
thisform。
grid1.recordsource=”ggb"
thisform.grid1。
refresh
endcase
个人查询界面
确定代码如下
zgbh=alltrim(thisform.text1。
value)
select 工资表
set order to tag 职工编号
seek zgbh
if found ()
select 工资表.职工编号,员工表.姓名,员工表.性别,员工表。
工作日期,员工表。
职称,工资表.基本工资,工资表。
岗位工资,工资表。
奖金,工资表。
津贴,工资表。
扣所得税,工资表。
实发工资;
from 员工表,工资表;
where 工资表.职工编号==alltrim(thisform.text1.value) and 员工表。
职工编号=工资表。
职工编号into cursor chx
thisform。
txt姓名.value=chx。
姓名
thisform。
txt性别.value=chx。
性别
thisform。
txt工作日期.value=chx.工作日期
thisform。
txt职称。
value=chx.职称
thisform。
txt基本工资。
value=chx。
基本工资
thisform.txt岗位工资。
value=chx.岗位工资
thisform。
txt奖金。
value=chx.奖金
thisform。
txt津贴。
value=chx.津贴thisform.txt扣所得税。
value=chx.扣所得税thisform.txt实发工资。
value=chx.实发工资thisform.refresh
else
thisform。
txt姓名.value=""
thisform.txt性别.value=""
thisform.txt工作日期。
value=””
thisform.txt职称。
value=”"
thisform。
txt基本工资。
value=””
thisform。
txt岗位工资。
value="”
thisform.txt奖金。
value="”
thisform.txt津贴.value=””
thisform.txt扣所得税.value=”"
thisform。
txt实发工资.value=”" messagebox("没有找到记录!",48,"警告”)endif
浏览界面
添加记录界面
所用代码如下:
m=messagebox("是否添加?”,4+32,"信息窗口") append blank
thisform.refresh
thisform.text1。
enabled=。
t。
thisform。
text2。
enabled=.t。
thisform。
text3。
enabled=.t.
thisform。
text4.enabled=。
t.
thisform。
text5.enabled=.t.
thisform。
text6.enabled=.t。
thisform.text7。
enabled=。
t.
thisform。
text8。
enabled=.t。
thisform.text9.enabled=。
t.
thisform.text10。
enabled=.t。
thisform。
text11。
enabled=。
t.
thisform.refresh
确定代码
thisform.text1。
enabled=.f.
thisform.text2。
enabled=。
f。
thisform。
text3。
enabled=。
f.
thisform。
text4。
enabled=.f。
thisform.text5.enabled=。
f。
thisform。
text6。
enabled=。
f.
thisform。
text7.enabled=.f。
thisform。
text8.enabled=。
f.
thisform.text9。
enabled=。
f。
thisform。
text10。
enabled=.f.
thisform。
text11.enabled=.f.
thisform.refresh
修改界面:
修改记录代码:
if mand1.caption=”修改记录" thisform。
text1.enabled=。
T。
thisform。
text2.enabled=。
T.
thisform。
text3。
enabled=.T。
thisform.text4.enabled=.T。
thisform。
text5。
enabled=.T.
thisform.text6。
enabled=。
T。
thisform。
text7.enabled=.T.
mand1.caption=”确认修改”thisform。
refresh
thisform.text1.setfocus
else
thisform。
command1.caption=”修改记录”thisform。
text1.enabled=。
f.
thisform.text2.enabled=.f。
thisform.text3。
enabled=。
f.
thisform。
text4。
enabled=。
f。
thisform。
text5.enabled=。
f.
thisform。
text6。
enabled=.f。
thisform.text7。
enabled=.f。
endif
修改密码界面:
确认代码如下
USE 用户密码表。
dbf
if empty(thisform.text2.value) or empty(thisform。
text1。
value) messagebox(”请输入用户名称和密码!",48,"警告")
else
locate for 用户名 =alltrim(thisform。
text1.value)
if 密码=alltrim(thisform.text2。
value)
If ALLTRIM(thisform.text3.Value) == "”
MessageBox(”新密码”, 16, ”提示”)
else
If ALLTRIM(thisform。
text3。
Value) != ALLTRIM(thisform.text4。
Value) MessageBox("俩次输入的新密码不同”, 16,”提示")
thisform.text3。
value= "”
thisform。
text4。
value= ”"
else
locate for 用户名=ALLTRIM(thisform。
text1.Value)
replace 密码with thisform.text3。
Value
thisform.release
MessageBox("密码已经成功修改,请在下次登录时使用新密码”)Endif
Endif
else
messagebox(”用户名或密码错误,请重新输入!",64,”警告")
thisform.text2.value= ””
thisform.text1。
value= ””
endif
endif
close all table
release thisform
do form 工资管理系统主界面.scx.
删除界面
删除记录代码如下
zgbh=alltrim(thisform.text1.value)
if messagebox(”真的要删除当前记录吗?",32+4+256,"删除记录")=6 use 工资表exclusive
set order to tag zgbh
seek text1
delete
pack
endif
thisform.refresh
打印界面:
预览代码如下:
if thisform。
check1.value=1
report form 工资报表。
frx preview
endif
if thisform。
check2。
value=1
report form 生产部工资报表。
frx preview
endif
if thisform。
check3.value=1
report form 销售部工资报表.frx preview
endif
if thisform.check4.value=1
report form 技术部工资报表.frx preview
endif
if thisform。
check5。
value=1
report form 公关部工资报表.frx preview
endif
打印代码如下:
do case
if thisform.check1。
value=0 and thisform。
check2.value=0 and thisform.check3。
value=0 and thisform。
check4.value=0 and thisform.check5.value=0 messagebox(”请选定部门!”)
endif
case this。
value=2
if thisform.check1.value=1
report form 工资报表。
frx to printer
endif
if thisform。
check2。
value=1
report form 生产部工资报表to printer
endif
if thisform.check3。
value=1
report form 销售部工资报表to printer
endif
if thisform.check4.value=1
report form 技术部工资报表to printer
endif
if thisform。
check5.value=1
report form 公关部工资报表to printer
endif
if thisform。
check1。
value=0 and thisform.check2.value=0 and thisform。
check3。
value=0 and thisform。
check4.value=0 and thisform.check5.value=0 messagebox(”请选定部门!")
endif
case this.value=3
thisform。
release
endcase
打印代码如下:
do case
if thisform。
check1.value=0 and thisform.check2.value=0 and thisform。
check3。
value=0 and thisform。
check4.value=0 and thisform。
check5.value=0 messagebox(”请选定部门!")
endif
case this.value=2
if thisform。
check1.value=1
report form 工资报表.frx to printer
endif
if thisform.check2.value=1
report form 生产部工资报表to printer
endif
if thisform。
check3。
value=1
report form 销售部工资报表to printer
endif
if thisform。
check4。
value=1
report form 技术部工资报表to printer
endif
if thisform.check5。
value=1
report form 公关部工资报表to printer
endif
if thisform。
check1.value=0 and thisform。
check2。
value=0 and thisform。
check3。
value=0 and thisform.check4.value=0 and thisform.check5。
value=0 messagebox("请选定部门!”)
endif
case this.value=3
thisform。
release
endcase
所用报表如下:工资报表
还有公关部工资报表,技术部工资报表,销售部工资报表,生产部工资报表类似这里不在一一列举
4。
连编程序
连编应用程序项目本设计的收尾工作。
通过连编将项目资源,如视图、查询、表单、报表、菜单、类、过程这些包含于项目管理器中的文件信息结合在一起,生成一个扩展名为
salary.exe可执行文件的应用程序。
连编程序之前,要进行设置主文件、确定包含或排除文件、设置项目信息等操作.完成这些操作后,运行主程序,当主程序没有错误后,即可连编项目
Set talk off
Clear all
Close all
Clear all
_screen。
Visibie=.f.
Set sysmenu off
Set defa to sys(5)+sys(2003)+’\'
Do form 工资管理系统主界面。
scx
Read events
Return
Quit
5.心得体会
当今世界,信息科学技术已经渗透到经济、文化和社会的各个领域,迅速改变着人们的观念、生活和社会结构,作为大学生的我们应该紧跟时代潮流,不断丰富自己的知识,以适应知识经济发展的需要.通过这次关于工资管理系统的课程设计,让我更加深刻地感受到了掌握计算机知识的重要,并在这短暂的实践中熟练的掌握了数据库的设计、表单的设计、表单与数据库的连接、SQL语言的使用和了解它的功能:数据定义、数据操纵、数据控制,以及简单VF程序的编写。
基本实现了工资的管理,包括系统的登录、员工信息的录入、员工信息的浏览、员工信息的查询、员工信息的修改和员工信息的删除,并对Visual FoxPro6。
0的各种功能有了进一步的了解,并且使我的动手操作能力得到了很大提高,为我们以后更加深入的学习奠定了基础。
我们通过这次对工资管理系统的设计,在让我充分感受信息技术带给我们方便的同时,也让我充分认识到自己知识的匮乏,所以,我们平时要加强知识的积累来提高我们的知识水平和操作能力,从而提高我们的基本素质,使能更好的满足社会需求。
这次实验的成功很大程度上依赖于老师的讲解,在此对老师表示深深的谢意。
同时,也希望学校以后能给我们提供更多的实践机会,把课堂上的理论知识运用到实践当中,来提高我们各方面的素质,为我们步出校门,及早融入社会打下坚实基础。
总之,这次课程设计让我们受益匪浅,我们以后会更加注重这方面知识的学习与积累,使我们在经济全球化的今天能够经得起时代的考验。