企业工资管理系统毕业设计.doc_第1页
企业工资管理系统毕业设计.doc_第2页
企业工资管理系统毕业设计.doc_第3页
企业工资管理系统毕业设计.doc_第4页
企业工资管理系统毕业设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计论文 学 生 姓 名: 学 号: 学 院、 系: 专 业: 设 计 题 目: 企业工资管理系统 指 导 老 师: 2010 年 10 月 1日目 录摘 要 3一、开发背景 31.1 数据库管理系统简介 41.2 企业工资管理系统 41.3 开发工具简介 4二、需求分析 42.1 系统分析 42.2系统开发的可行性分析 52.3系统功能需求 5三、系统数据库设计 63.1 数据库介绍 63.2 使用ADO控件访问数据库 63.3 数据库设计过程6四、企业工资管理系统用户界面设计104.1 用户界面104.2 “主窗体”模块设计114.3各项子模块的设计12五、结论与体会30六、 参考资料30摘 要本系统是针对芜湖市双翼航天有限公司的实际管理情况所设计和开发的一个工资管理系统。本系统采用可视化的面向对象的编程工具Visual Basic 6.0来开发,用Access 2003建立数据库,从开发背景、需求分析、系统模块建立、数据库设计、功能模块编程等方面阐述了于企业工资管理系统的开发过程,开发出真正适合该公司的工资管理系统。该系统主要由员工管理、工资查询计算和工资报表输出三个模块组成,功能基本涵盖该企业的工资管理业务范围。这个工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。关键词:工资管理系统;开发工具Visual Basic 6.0;数据库Access 2003;系统设计与开发开发平台::WINDOWS开发环境: Visual Basic 6.0,Access 2003一、 开发背景企业工资管理是任何企事业单位都面临的问题,由于各个单位的工资处理方式总是有所区别,因此目前还没有一个通用的工资管理系统,只能针对具体情况去开发适合本单位需求的工资管理系统。由于芜湖市双翼航天有限公司的发展规模一般,员工的数量有限,对企业的工资管理有一定基本的要求,当然使用计算机工资管理系统成为其必然趋势。企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间限制。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。1.1数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。Microsoft Access 2003就是一种关系型数据库管理系统。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。SQL语言是关系型数据库的标准化语言,已得到了广泛的应用。1.2 企业工资管理系统企业工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是企业工资管理的这种重复性、规律性、时间性,使得企业工资管理计算机化成为可能。企业工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多企业工资信息的处理,同时使用电脑还可以安全地、完整地保存大量的企业工资记录。1.3 开发工具简介微软公司的Visual Basic 6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。因此,本系统使用Microsoft Visual Basic 6.0开发。二、 需求分析2.1 系统分析系统分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。通常需求分为两种类型:一种是功能性需求,一种是非功能性需求,这一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类最主要的需求。非功能性需求是指实际使用环境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等。本系统的设计应满足以下的系统要求:满足企业员工信息管理的基本要求;满足企业工资结算的基本要求;满足企业工资查询和报表导出的基本要求;提供良好的操作界面,对操作人员的技能要求比较的低;能够保证企业工资管理数据的安全准确。2.2 系统开发的可行性分析管理信息系统的可行性分析包括以下四个方面:管理可行性:指管理人员对开发项目是否支持,现有管理制度是否健全等。而且运用此系统能够大大地提高工作效率,方便管理。经济可性行:主要是预估费用支出和对项目的经济效益进行评价。根据该医院的现有资源设备,建立工资MIS不但能提高工作效率、降低费用,还能提高数据计算的准确性。技术可行性:主要分析当前的技术条件能否满足对系统提出的要求。该医院内部建有局域网,有比较专业的技术人员,能够胜任信息系统的开发工作。社会可行性:是分析研究系统投入使用后对医院和社会可能带来的影响。此系统的开发不会对社会带来任何危害,所以开发此系统是可行的。综上所述,芜湖市双翼航天有限公司工资管理系统是完全可行与重要的。2.3系统功能需求开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。系统最终实现的主要功能如下:企业工资信息设置部分:包括设置员工的基本工资和其他项目的金额,如奖金等。并且负责设置员工工资的计算公式。企业工资信息管理部分:包括统计出勤、计算工资、查询工资和导出工资表。系统部分:包括添加用户和修改密码。根据以上系统应实现的功能,可以对其上面的功能进行模块化设计,得出系统功能模块图,如图2-1所示。 系 统 修改密码添加用户 系 统1 工资信息管理关 于退出系统基本工资设置其他工资设置工资计算公式设置出勤统计计算实发工资查询工资导出工资工资信息设置退出系统 图2-1 系统功能模块图 三、系统数据库设计数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。3.1数据库介绍数据库是一种存储数据并对数据进行操作的工具。数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库和关系数据库。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。Access2003 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发,具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。3.2使用ADO控件访问数据库ADO是ActiveX Data Objects 的缩写,提供对各种数据库访问的标准接口。1如何用ADO存取数据:在实际编程过程中使用ADO的一个典型的存取数据的步骤为:第一,连接数据源;第二,打开记录集对象;第三,使用记录集;第四,断开连接。2关闭所有的数据连接:如果在代码中使用了数据控件如ADO,在退出时应该关闭所有打开的recordsource,database。虽然对象能自动注销,但是数据连接不会马上断开,可能会导致一些内存不能被系统重新分配。Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式有两种:第一,通过使用Visual Basic的 ADO控件; 第二,通过使用由Visual Basic提供的专用的直接与数据库相连的接口。3.3数据库设计过程 1企业管理系统的ER图:如图31所示。2关系模式的设计:启动Access 2003,创建新的数据库,命名为Salary.mdb,保存在要存放这个系统所有工程文件的文件夹中。在使用的时,要把应用程序和这个数据库保存在同一个文件夹中。员工出勤统计信息表(记录编号、员工编号、员工姓名、统计时间、出勤天数、迟到早退次数、旷工次数、正常加班次数、特殊加班次数、出差次数);员工工资计算公式信息表(正常加班工资百分比、特殊加班工资百分比、出差工资、旷工工资、迟到早退); 员工其他项目设置(记录编号、员工编号、年月、类型、名称、金额、备注);工资信息设置表(记录编号、员工编号、员工职务、基本工资);员工工资统计信息表(记录编号、员工编号、员工姓名、时间、基本工资、奖金、福利、津贴、扣发、迟到早退扣发、旷工扣发、加班费、出差费、其他金额、总额)。员工信息表(员工编号、员工姓名、性别、籍贯、年龄、生日、学历、专业、住址、邮编、电话、Email、参加工作时间、进入公司时间、部门、起薪时间、职务、备注)用户信息表(用户名称、用户密码)3物理结构的设计:为了便于对数据的添加、查询、修改和删除操作,根据本系统的需求分析,最终确定用于保存数据的基本数据表共有7个,具体设计如下:基本表attendancestatistics,用于保存员工的出勤信息:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号stuffname文本50员工姓名recordmonth日期/时间短日期统计时间attendance数字长整型出勤天数lateearly数字长整型迟到早退次数absent数字长整型旷工次数overtimecom数字长整型正常加班次数overtimespe数字长整型特殊加班次数errand数字长整型出差次数基本表formulasetting,用于计算员工工资:字 段类 型长 度说 明overtimecom数字长整型正常加班工资百分比overtimespe数字长整型特殊加班工资百分比errand数字长整型出差工资absent数字长整型旷工工资le数字长整型迟到早退基本表salaryother,用于设置员工其他项目:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号yearmonth日期/时间短时期年月type数字长整型类型name文本50名称money货币货币金额remark备注备注基本表salarysetting,用于设置基本工资:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号sposition文本50员工职务salary货币货币基本工资基本表salarystatistics,用于保存员工工资统计出的信息:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号stuffname文本50员工姓名yearmonth日期/时间短时期时间basicsalary货币货币基本工资bonus货币货币奖金welfare货币货币福利allowance货币货币津贴abatement货币货币扣发lesub货币货币迟到早退扣发absentsub货币货币旷工扣发overtime货币货币加班费errand货币货币出差费others货币货币其他金额total货币货币总额基本表stuffinfo, 用于保存员工的信息:字 段类 型长 度说 明sid文本50员工编号sname文本50员工姓名sgender文本50性别splace文本50籍贯sage数字长整型年龄sbirthday日期/时间短时期生日sdegree文本50学历sspecial文本50专业saddress文本50住址scode文本50邮编stel文本50电话semail文本50EmailsworkTime日期/时间短时期参加工作时间sintime日期/时间短时期进入公司时间sdept文本50部门spaytime日期/时间短时期起薪时间sposition文本50职务sremark文本50备注基本表userinfo,保存用户信息: 字 段类 型长 度说 明userid文本50用户名称userpwd文本50用户密码四、 企业工资管理系统用户界面设计4.1 登录界面登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。 登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。 4.2 “主窗体”模块设计在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。 4.3各项子模块的设计1、选择“系统”“添加用户”菜单,在添加用户的窗体里,输入新的用户名称和密码后,单击“确定”按钮,系统将会添加新的用户。添加用户窗口局部代码:sql = insert into userinfo (userid,userpwd) values( & usernamesql = sql & , & password & )Call transactsql(sql, salary) MsgBox 添加成功, vbOKOnly + vbExclamation, 添加结果 username.Text = password.Text = confirmpwd.Text = username.SetFocus 2、选择“系统”“修改密码”菜单,在修改密码的窗体里,输入旧密码和2次输入新密码后,单击“确定”按钮,系统将会更改当前用户的密码。修改密码窗口局部代码:userpassword = newpwdsql = update userinfo set userpwd= & newpwd & where userid= & strusername & Call transactsql(sql, salary)MsgBox 密码已经修改, vbOKOnly + vbExclamation, 修改结果Unload Me3、选择“工资信息设置”“设置基本工资”菜单设置员工的基本工资,可以根据员工的编号,或者根据员工职务设置基本工资,设置的基本工资为每个小时的工资。设置基本工资窗口局部代码:Set rs = getrs(sql, salary)If rs.EOF = False Thensql = delete from salarysetting where stuffid= & Mstuffid.Text & Call transactsql(sql, salary)End Ifrs.Closeid = Mstuffid.TextCall addrecordMsgBox 已经设置基本工资, vbOKOnly + vbExclamation, 添加结果Call initsql = select * from salarysettingCall frmresult.basictopicCall frmresult.showbasic(sql)frmresult.Showfrmresult.ZOrder 0Me.ZOrder 04、选择“工资信息设置”“其他项目设置”菜单,在其他项目设置的窗体中,设置员工当月的奖金、津贴、福利等项目。其他项目设置窗口局部代码:sql = select * from salaryotherIf ichangeflag = 1 ThenCall add MsgBox 已经添加记录, vbOKOnly + vbExclamation, 提示Call frmresult.othertopicCall frmresult.showother(sql)frmresult.Show Unload MeElse If Me.optionbonus.Value = True Then itype = 1 ElseIf Me.optionallowance.Value = True Then itype = 2 ElseIf Me.optionwelfare.Value = True Then itype = 3 ElseIf Me.optionabatement.Value = True Then itype = 4 ElseIf Me.optionothers.Value = True Then itype = 5 resumdate = recordtime sql = delete from salaryother where stuffid= & Mid.Text sql = sql & and YearMonth=# & recordtime & # and sql = sql & Type= & itype Call transactsql(sql, Salary) Call add Call frmsumsalary.resumsalary(resumdate) sql = select * from salaryother Call frmresult.othertopic Call frmresult.showother(sql) frmresult.Show Unload Me End If 5、选择“工资信息设置”“工资计算公式设置”菜单,在这个计算公式窗体中设置员工实际发放工资的计算公式。 计算公式窗口局部代码:If Me.textovertimecom = And IsNumeric(Me.textovertimecom) = True Then MsgBox 请输入正常加班工资百分比, vbOKOnly + vbExclamation, 提示 Me.textovertimecom = Me.textovertimecom.SetFocusElseIf Me.textovertimespe = And IsNumeric(Me.textovertimespe) = False Then MsgBox 请输入特殊加班工资百分比, vbOKOnly + vbExclamation, 提示 Me.textovertimespe = Me.textovertimespe.SetFocusElseIf Me.texterrand = And IsNumeric(Me.texterrand) = False Then MsgBox 请输入出差工资, vbOKOnly + vbExclamation, 提示 Me.texterrand = Me.texterrand.SetFocusElseIf Me.textabsent = And IsNumeric(Me.textabsent) = False Then MsgBox 请输入旷工扣发工资, vbOKOnly + vbExclamation, 提示 Me.textabsent = Me.textabsent.SetFocusElseIf Me.textle = And IsNumeric(Me.textle) = False Then MsgBox 请输入迟到早退扣发工资, vbOKOnly + vbExclamation, 提示 Me.textle = Me.textle.SetFocus Else Call setvalue Call initEnd If6、选择“工资信息管理”“统计出勤记录”菜单,在统计出勤记录窗体中选择需要统计记录的月份。 统计出勤记录窗口部分代码:firstday = Year(Date) & - & Mmonth.Text & -1days = DateDiff(d, Year(Date) & - & Mmonth.Text & -1, _Year(Date) & - & Mmonth.Text + 1 & -1)lastday = Year(Date) & - & Mmonth.Text & - & dayssql = select * from attendancestatistics where recordmonth between #sql = sql & firstday & # and # & lastday & #Set rsrecord = getrs(sql, salary)If rsrecord.EOF = False Then MsgBox 已经统计, vbOKOnly + vbExclamation, 提示 frmaresult.Show frmaresult.ZOrder 0 rsrecord.Close Unload Me Exit Sub End If sql = select * from attendanceinfo where adate between # sql = sql & firstday & # and # & lastday & # Set rsrecord = getrs(sql, person) If rsrecord.EOF = False Then sql = select sid,sname from stuffinfo order by sid Set rsperson = getrs(sql, person)7、选择月份后单击“确定”按钮,如果系统已经统计过该月份的记录,那么会出现如下图所示的统计结果信息列表。如果系统没有统计过,那么系统就会开始统计记录,然后显示如图所示的统计结果信息列表。 员工出勤结构窗口部分代码:If strusername admin Thensql = select sid from stuffinfo where sname= & strusername & Set rs = getrs(sql, salary)sd = rs(0)sql = select * from attendancestatistics where stuffid= & sd & Me.Adodc1.ConnectionString=provider=microsoft.jet.oledb.4.0;Datasource=& App.Path & salary.mdbMe.Adodc1.RecordSource = sqlMe.Adodc1.RefreshSet Me.DataGrid1.DataSource = Me.Adodc1.RecordsetMe.DataGrid1.RefreshElsesql = select * from attendancestatisticsMe.Adodc1.ConnectionString=provider=microsoft.jet.oledb.4.0;Datasource=&App.Path&salary.mdbMe.Adodc1.RecordSource = sqlMe.Adodc1.RefreshSet Me.DataGrid1.DataSource = Me.Adodc1.RecordsetMe.DataGrid1.RefreshEnd If8、选择“工资信息管理”“计算实发工资”菜单,在这个窗体中选择需要统计的月份。选择统计月份后,单击“开始统计”按钮,系统如果已经统计了该月份的工资,系统会显示工资信息列表窗体。如果系统还没有统计工资,那么系统开始统计工资,然后在信息结果列表窗体中显示统计结果。计算实发工资窗口部分代码:If Mmonth.Text = 4 Then firstday = Year(Date) & - & Mmonth.Text & -1 days = DateDiff(d, Year(Date) & - & Mmonth.Text & -1,_Year(Date) & - & Mmonth.Text + 1 & -1) lastday = Year(Date) & - & Mmonth.Text & - & days Call sumsalary(firstday, lastday) sql = select * from salarystatistics frmresult.SSTab1.Caption = 员工工资统计列表 Call frmresult.listtopic Call frmresult.showdata(sql) frmresult.Caption = 统计结果列表 frmresult.ZOrder 0 Unload MeElse MsgBox 这个月的工资未统计, vbOKOnly + vbExclamation, 提示End If9、选择“工资信息管理”“查询工资”菜单,系统显示如图的查询信息窗体,系统默认的是查询出数据库中所有的记录(当管理员进入的时候),当从“员工编号”下拉列表中选择一个员工编号后,单击“查询单人”按钮,就会查询出符合这个员工编号的记录;如果需要返回查询所有信息,单击“查询所有”按钮,系统就会返回所有员工的信息。在“员工工资统计列表”中单击鼠标右键,会弹出下图的菜单,在“员工其他项目列表”中单击鼠标右键也会出现下图的菜单。如果要选择“删除基本工资设置”,出现如下的提示:具体的操作这里就不详细介绍。10、选择“工资信息管理”“导出工资表”菜单,会出现下图的“导出记录”窗体中选择需要导出工资的月份。选择月份和保存位置后,单击“导出”按钮,系统会开始导出数据。单击“确定”按钮打开导出的文件,单击“取消”按钮回到系统。4.4 各项子模块编写要点在登录的这个窗体里,我做的特点是:只要在数据库里有用户信息的,都可以登录,然后显示相关自己的信息,而管理员显示所有的信息。当输入的用户名或密码不正确的时候,会出现如下的对话框: 或者 在主窗体的设计中,我在系统的下拉菜单里包括有添加用户、修改密码和退出系统。在这个模块里普通用户只有修改自己的密码的权利。在添加用户的窗体里:添加3个标签、3个文本框和2个命令按钮,然后设置它们相关的属性。在修改密码的窗体里:添加了3个标签,用来显示信息;3个文本框用来输入用户名称和用户密码;2个按钮用来确定和取消操作,然后设置它们的属性。在工资信息设置的下拉菜单里包括有基本工资信息设置、其他项目信息设置和计算公式设置。在这个模块里,普通用户没有任何权利进行相关的操作。在基本工资窗体里:添加了2个选项按钮、2个下拉列表、2个标签、1个文本框和2个按钮,然后设置它们的属性。在其他项目设置的窗体里:使用了一个DTPicker控件获得添加记录的时间,要使用这个控件需要添加部件类库,选择“工程部件”命令,选择Microsoft Windows Common Controls-2 6.0(sp4)项,然后设置相关的属性。在工资信息管理的下拉菜单里包括有统计出勤信息、计算实发工资、查询工资和导出工资表。在这个模块里,普通用户有统计出勤信息和查询工资的权利,但是都显示的是自己的信息。在出勤统计窗体里:添加一个下拉列表、一个标签和2个命令按钮,然后设置相关的属性。在出勤结果信息列表的窗体里:使用了Adodc控件和DataGrid控件,控件的Visible属性一定要设置为False。在计算实发工资窗体里添加的控件和统计出勤记录窗体的控件相同。在工资统计列表窗体里:使用了SSTab控件,在每一个标签上添加一个MSFlexGrid控件,然后设置它们的属性。在导出工资表的窗体中使用了CommondDialog控件,要使用这个控件需要在“控件”窗体中,选择Microsoft Common Dialog Control6.0(sp3)项,同时因为数据表格是导出到Excel,所以需要添加引用。选择“工程引用”菜单,在“引用”窗体中选择Microsoft Excel 9.0 Object Library项,这样才能够成功导入到Excel。在这个窗体里,我做的特点是:权利分工明确。当管理员进入的时候他有所有的权利,单击哪个模块就会弹出相对应的窗体。而普通用户则不能,我把它进行了权限设置,会弹出权限的对话框。 在添加用户的窗体里,如果输入的用户密码和确认密码不一致,将出现一个警告对话框: 然后输入与用户密码相同的密码,我这里的密码都是以*的形式表达,是不可见的。添加的用户将保存在数据库的userinfo里。单击“取消”按钮就卸载此窗体,添加用户的过程到此完成。在修改密码的窗体里,我要注重讲解一下:当输入的旧密码与登录时的密码不一致将出现提示对话框(如图一),当输入的“确认新密码”和“输入新密码”的密码不一致时也将出现警告对话框(如图二)。我在做这个窗体时遇到了一个问题:就是输入的新密码确认后,当你再一次的进入修改密码窗体输入旧密码时,如果输入的是刚刚修改过的密码,就会出现错误。经过一段时间的思考,我发现原因是修改过的密码没有覆盖登录时的密码,所以会出现问题。我觉得这是一个很大的问题,在别的书上可能没注意到这一点,所以我要注重的讲一下,这是我做这个窗体时的最大体会。 图一 图二在建立基本工资窗体时,这个窗体会在两个地方使用到,一个就是添加,另一个就是修改,在窗体载入时系统应自动判断状态。选择员工编号或选择职务,然后填写工资金额,单击“确定”按钮,系统就会按照选择的方式,设置员工的基本工资。在做基本工资这个窗体时,我的想法是:当你在修改基本工资的信息,首先都要从数据库中调出相关的信息,然后把它删除掉,再从数据库中的员工信息表中调出所要的信息,然后再一次的添加所要设置的信息。当你没输入员工编号的时候,会出现下图的对话框: 当没输入员工的职务时会出现错误的信息。在建立其他项目设置的窗体时,也在两个地方使用,即添加和修改,在载入时也需要判断状态。选择员工编号,再选择需要添加的项目和进额,单击“确定”按钮,即可添加其他项目。在其他项目设置这个窗体里,我用了一个Frame控件和几个optionButton控件,目的在于:在添加其他项目时,只能有一个设置是有效的,而且还可以添加其他的项目,还有备注等等,这些都便于记录。这里还有一个DTPicker控件是用来记录添加其他项目的时间,我觉得这个控件非常好。还有就是每次添加成功后,系统需要初始化,更新一下。在设置完这个窗体后将会弹出查询工资的窗体。在建立工资计算公式的窗体时,输入内容后,单击“确定”按钮,设置计算公式中使用的数字。在计算公式设置的窗体里,单击“恢复默认值”按钮系统将会恢复公式中的默认值。这里的恢复默认值功能采用的方法比较简单,就是在一个函数中设置了固定的默认值。如果需要使用可变的默认值,可以在数据库中设置一项默认值字段,这样可以方便的更改默认值。当输入的格式与设定的格式不一致的时候,会弹出相关的对话框。建立出勤统计窗体,选择月份后,单击“确定”按钮,开始统计出勤记录。在统计出勤信息的窗体里,这要和出勤记录的数据库相连,如果输入的月份没有统计将如下的对话框:如果输入的月份有统计记录则弹出如下的对话框:然后弹出出勤结果的窗体,显示数据库中统计信息相关的记录。 管理员能看到的界面 这是用户登录所显示的用户信息建立计算实发工资的窗体,这个窗体的建立和统计出勤记录的窗体比较相似,选择月份后,单击“开始统计”按钮,即可统计员工工资。在计算实发工资的窗体里,如果输入的月份的工资没统计会弹出如下的对话框:否则会出现如下的对话框: 单击“确定”后,就会出现工资信息列表,这时你将看见所有关于你想要的信息。建立工资查询的窗体,在选择员工编号后,单击“查询单人”按钮,返回选择员工的相关信息。单击“查询全部”按钮,系统返回全部员工的信息。在建立工资查询(即工资统计结果列表)的窗体时,我觉得这是一个最难的窗体。不仅是因为它的设置,还有就是它的代码和数据库相连的操作。在这个窗体中使用了SSTab控件,在每一个标签上添加一个MSFlexGrid控件。当你是管理员登录的时候,他的权限是所有,当你是用户登录的时候,窗体只显示登录用户本人的相关信息。他没有任何权限,只能看到自己的信息,这是我做这个窗体的特色。窗体的部分代码为:sql = select sid from stuffinfo where sname= & strusername & Set

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论