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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

模块开发卷宗.docx

1、模块开发卷宗模块开发卷宗1标题软件系统名称:学校内部员工工资管理系统。模块名称:用户管理模块、员工信息管理模、工资管理模块、数据统计模块和数据维护模块等。程序编制员签名:陈伟,黄建才修改完成日期: 2007年12月30日卷宗序号:1编排日期: 2007年12月30日2模块开发情况表1 建立程序系统结构 3功能说明员工信息管理模块:员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功能,员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。员工增删实现了对数据库中员工信息的增加和删除。员工可以通过员工号或员工姓名对员工信息进行查询。用户管理模块:实现对不

2、同用户管理级别的分类,以及不同级别用户对系统拥有不同权限而对系统进行操作。工资信息管理模块:实现工资表的生成、个人工资查询、工资修改、工资结算、工资统计以及工资表打印等功能。其中按月生成工资表,保存在数据库中。数据统计模块:用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打预览。系统维护模块: 系统维护模块包括数据库的恢复与备份,部门信息的维护三个功能,部门信息维护模块主要是进行部门的添加和修改。另外,在本高校工资管理系统中,还包括帮助文件的制作,要求有较为完善的帮助文件,使用说明供用户参考

3、。4设计说明用户管理模块:a. 制定用户的管理级别,管理级别分为管理员和教职员工两类。b. 他们的操作权限不同,管理员是财务部门人员,可以对系统进行一切操作,而教职员工只能进行查询和打印。c. 另外在这个模块中也应该包含添加用户、修改用户信息、修改口令等。员工信息管理模块员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功能,员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。员工增删实现了对数据库中员工信息的增加和删除。员工可以通过员工号或员工姓名对员工信息进行查询。工资管理模块根据该公司的工资管理实际情况,本系统将工资结构分为基本工资、浮动工资、

4、工资发放三部分。该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。数据统计模块用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打预览。系统维护模块 系统维护模块包括数据库的恢复与备份,部门信息的维护三个功能,部门信息维护模块主要是进行部门的添加和修改,其它功能模块 主要有管理员的添加、修改以及登录信息浏览,调用系统的记事本和计算器等工具。5原代码清单登录到该工资管理系统需要验证管理员和普通员工的身份,界面如下图所示:实现该功能的代码是: if (length(trim(use

5、r.Text)0) or (length(trim(pwd.Text)0) thenbegin if(RadioGroup1.ItemIndex=0)then beginsql:=select adminname,pwd from adminwhere adminname=+user.Text+ and pwd=+pwd.Text+;adoquery_login.Close;adoquery_login.SQL.Clear;adoquery_login.SQL.Add(sql);adoquery_login.SQL.Add(sql);adoquery_login.Open;if adoquer

6、y_login.RecordCount0 then begin ADOQuery_Login.Close; ADOQuery_Login.SQL.Clear; ADOQuery_Login.SQL.Add(insert into Logindetail values(+user.Text+,+管理员+,+datetimetostr(NOW)+); ADOQuery_Login.ExecSQL; frmmain.Show; frmmain.StatusBar1.Panels1.Text:=管理员:+user.Text; loginform.hide;end else begin applicat

7、ion.MessageBox(您输入的用户名或密码错误!,错误提示,mb_ok); user.SetFocus; end; end; if(RadioGroup1.ItemIndex=1)then begin sql:=select employeename from employees where employeename=+user.text+; adoquery_login.Close; adoquery_login.SQL.Clear; adoquery_login.SQL.Add(sql); adoquery_login.SQL.Add(sql); adoquery_login.Op

8、en;if adoquery_login.RecordCount0 then begin ADOQuery_Login.Close; ADOQuery_Login.SQL.Clear; ADOQuery_Login.SQL.Add(insert into Logindetail values(+user.Text+,+普通员工+,+datetimetostr(NOW)+); ADOQuery_Login.ExecSQL; gzfind.Show;loginform.hide;end else begin application.MessageBox(对不起!该用户不存在!,错误提示!,mb_o

9、k); user.SetFocus; end;员工信息管理员工信息的输入界面如下图所示:员工信息的输入实现代码是:if(edit_id.Text=)or(edit_name.Text=)or(combobox_sex.Text=)or (edit_depname.Text=)thenbegin Messagebox(handle,请输入有效的信息!,错误提示信息,MB_OK); exit;end;if (edit_id.gettextlen)8 then begin Messagebox(handle,你输入的员工编号不能大于8位!,错误提示信息,MB_OK); exit; end else

10、begin adoquery.Close; adoquery.SQL.Clear; adoquery.SQL.Add(select * from employees where employeeID=:ygID); adoquery.Parameters.ParamByName(ygID).Value:=strtoint(trim(edit_id.Text); adoquery.Open; if not adoquery.IsEmpty then begin Messagebox(handle,该编号已经存在!,错误提示信息,MB_OK); adoquery.Close; adoquery.F

11、ree; exit; end; try str:=insert into employees(employeeID,employeename,sex,level,departname,hiresdate,bank,bankID,note); str:=str+Values(:ygID,:name,:sex,:level,:departname,:hiresdate,:bank,:bankID,:note); with adoquery do begin close; sql.Clear; sql.Add(str); parameters.ParamByName(ygID).Value:=str

12、toint(trim(edit_id.Text); parameters.ParamByName(name).Value:=trim(edit_name.Text); parameters.ParamByName(sex).Value:=trim(combobox_sex.Text); parameters.ParamByName(level).Value:=trim(combobox_wenhua.Text); parameters.ParamByName(departname).Value:=trim(edit_depname.Text); parameters.ParamByName(h

13、iresdate).Value:=trim(datetostr(datetimepicker1.Date); parameters.ParamByName(bank).Value:=trim(combobox_bank.Text); parameters.ParamByName(bankID).Value:=trim(edit_banknum.Text); parameters.ParamByName(note).Value:=trim(memo_detail.Text); ExecSQL;end; showmessage(添加成功!); btclear.Click; except showm

14、essage(添加失败!请检查数据正确与否?); end; end; end;procedure TYGForm.BitBtn5Click(Sender: TObject);beginif not adotable.IsEmpty thenadotable.Firstelse showmessage(没有员工信息记录,请确定员工信息!);end;员工信息的查询界面如下图: 员工信息的查询实现代码:varsearchfield:String;str:String;begin case RadioGroup1.ItemIndex of 0:searchfield:=employeeID; 1:se

15、archfield:=employeename; 2:searchfield:=level; 3: searchfield:=departname; 4:searchfield:=hiresdate; 5:searchfield:=bank; end; if content.Text= then begin if(messagedlg(您输入的查询内容不能为空!是否要重输?,mtinformation,mbyes,mbno,0)mryes) then close; end else beginadoquery1.Close; adoquery1.SQL.Clear; if searchfiel

16、d=employeeID then str:=select * from employees where +searchfield+=+trim(content.Text) else str:=select * from employees where +searchfield+=+trim(content.Text)+; adoquery1.SQL.Add(str); adoquery1.Active:=true; if adoquery1.RecordCount=0 then begin messagebeep(1); showmessage(没有找到符合条件的记录,请确定查询条件或放弃查

17、询!); if messagedlg(是否继续查询?只有结束查询才能进行其它操作!,mtinformation,mbyes,mbno,0)=mrno then abort; end else begin adotable.Recordset:=adoquery1.Recordset; adotable.Filtered:=false; adotable.Filter:=searchfield+=+content.Text+; adotable.Filtered:=true; adotable.Active:=true; showmessage(共找到了+inttostr(adoquery1.r

18、ecordcount)+条记录!); content.Text:=; end ; 把员工信息查询的结果导到Excel中去,实现代码是:variCount,jCount:Integer;XLApp:Variant;Sheet:Variant;begin screen.Cursor:=crHourGlass; if not VarIsEmpty(XLApp)then beginXLApp.DisplayAlerts:=False;XLApp.Quit;VarClear(XLApp); end; try XLApp:=CreateOleObject(Excel.Application);except

19、screen.Cursor:=crDefault;Exit; end; XLApp.workbooks.add; XLApp.sheetsInNewWorkbook:=1; XLApp.workbooks1.worksheets1.name:=DBGrid2.Name; sheet:=XLApp.workbooks1.worksheetsDBGrid2.Name; sheet.columns.autofit; if not dbgrid2.DataSource.DataSet.Active then begin screen.Cursor:=crDefault; exit; end; dbgr

20、id2.DataSource.DataSet.First; for iCount:=0 to dbgrid2.Columns.Count-1 do sheet.cells1,iCount+1:=dbgrid2.Columns.ItemsiCount.Title.caption; jCount:=1; while not dbgrid2.DataSource.DataSet.Eof do begin for iCount:=0 to dbgrid2.Columns.Count-1 do sheet.cellsjCount+1,iCount+1:=adoquery1.Fieldsicount.As

21、String; inc(jCount); dbgrid2.DataSource.DataSet.Next; end; XlApp.visible:=true; screen.Cursor:=crDefault; end;工资发放管理界面如下图: 工资发放管理工资保存代码实现如下:with tasave dobeginopen;edit;append;if trim(combobox1.Text)= thenbeginApplication.MessageBox(员工编号不能为空,提示,0+64);combobox1.SetFocus;exit;end;if trim(editygname.Te

22、xt)= thenbeginApplication.MessageBox(员工姓名不能为空,提示,0+64);editygname.SetFocus;exit;end;if trim(editjiben.Text)= thenbeginApplication.MessageBox(基本工资不能为空,提示,0+64);editjiben.SetFocus;exit;end;if trim(editzhiwu.Text)= thenbeginApplication.MessageBox(职务不能为空,提示,0+64);editzhiwu.SetFocus;exit;end;if trim(edit

23、gongling.Text)= thenbeginApplication.MessageBox(工龄工资不能为空,提示,0+64);editgongling.SetFocus;exit;end;if trim(edityanglao.Text)= thenbeginApplication.MessageBox(养老保险不能为空,提示,0+64);edityanglao.SetFocus;exit;end;if trim(editjiangjin.Text)= thenbeginApplication.MessageBox(其他奖金不能为空,提示,0+64);editjiangjin.SetFo

24、cus;exit;end;if trim(editzhufang.Text)= thenbeginApplication.MessageBox(住房补助不能为空,提示,0+64);editzhufang.SetFocus;exit;end;if trim(editbaoxian.Text)= thenbeginApplication.MessageBox(保险费不能为空,提示,0+64);editbaoxian.SetFocus;exit;end;if trim(editshenghuo.Text)= thenbeginApplication.MessageBox(生活补助不能为空,提示,0+

25、64);editshenghuo.SetFocus;exit;end;if Application.MessageBox(确定添加记录?,提示,mb_YesNo)=ID_Yesthenbegin tasave.FieldByName(employeeID).AsString:=trim(combobox1.Text); tasave.FieldByName(employeename).AsString:=trim(editygname.Text); tasave.FieldByName(basicwages).AsString:=trim(editjiben.Text); tasave.Fie

26、ldByName(dutywages).AsString:=trim(editzhiwu.Text); tasave.FieldByName(agewages).AsString:=trim(editgongling.Text); tasave.FieldByName(oldage-insurance).AsString:=trim(edityanglao.Text); tasave.FieldByName(others).AsString:=trim(editjiangjin.Text); tasave.FieldByName(housing-subsidy).AsString:=trim(

27、editzhufang.Text); tasave.FieldByName(insurance).AsString:=trim(editbaoxian.Text); tasave.FieldByName(life-subsidy).AsString:=trim(editshenghuo.Text); tasave.FieldByName(worktimes).AsString:=trim(editjiaban.Text); tasave.FieldByName(workwages).AsString:=trim(editday.Text); tasave.FieldByName(asktime

28、s).AsString:=trim(editshijia.Text); tasave.FieldByName(workwages2).AsString:=trim(editday2.Text); tasave.FieldByName(personal-incom).AsString:=trim(editshuilv.Text); tasave.FieldByName(totals).AsString:=trim(editzong.Text); tasave.FieldByName(pays).AsString:=trim(editshifa.Text); tasave.FieldByName(

29、paydate).AsString:=datetostr(datetimepicker1.date); tasave.Post; showmessage(保存数据成功!);end;员工信息统计界面: 员工信息统计实现代码:if radiogroup2.ItemIndex=0 thenbegin adodataset2.Active:=false; adodataset2.CommandText:=select departname as 部门,count(*) as 人数 from employees group by departname; adodataset2.Active:=true; adodataset2.Open;end;if radiogroup2.ItemIndex=1 thenbegin adodataset2.Active:=false; adodataset2.CommandText:=select sex as 性别,count(*) as 人数 from employees group by sex; adodataset2.Active:=true; adodataset2.Open;end;if radiogroup2.Item

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

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