ERP工资管理系统_第1页
ERP工资管理系统_第2页
ERP工资管理系统_第3页
ERP工资管理系统_第4页
ERP工资管理系统_第5页
已阅读5页,还剩52页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

{管理信息化ERPMRP}ERP工资管理系统先锋软件学院学生毕业设计(论文)工作自查表(2010年10月-2011年4月检查)学生姓名专业学号导师姓名职称教师导师每周指导次数5每次:3小时题目名称ERP工资管理系统作息时间上午9时~12时下午14时~17时晚间19时~21时个人精力实际投入日均工作小时8周均工作小时40缺席天数0出勤率%100已完成主要内容%待完成主要内容%2010年11月初开始收集资料,工具的选择;毕业设计(论文)工作进度2011年1月初开始论文的编写,排版。图表的添加,删除等操作;2011年1月中旬完成论95加入图片,表格页面的美工,论文的批改,页眉页脚,字体文表等各方面不足之处的修改和完善论文。5文,发表总结,修改不足之处等结尾工作。存在问题工作措施指导教师(签字):日期:年月日先锋软件学院毕业论文评阅表(指导教师、评阅人用)ERP工资管理系统论文(设计)名称5指导教师或评阅人)学生姓名学号姓名序号评审项目指标满分评分论文(设计)内容完成量,难易程度符合教学基20

1论文(设计)完成量本要求根据论文(设计)任务,能独立查阅文献资料和202调查与综合从事其它有关调研。有收集、综合和正确利用各种信息的能力。3论文(设计)质量论据充分、论证严格,构思完整、层次分明、段落、论题间的衔接自然、舒展。文笔流畅、语言50104创新有独特的见解,或有一定应用价值总分评阅人:年月日摘要[摘要]:随着Internet技术的发展,人们的日常生活已经离不开网络。未络化、电子化、虚拟化。电子商务也会随着网络的发展日益贴近人们的生活。Internet目前的发展趋势以及应用状况,可以充分的相信网络技术,极大的改善我们的生活方式和工作方式。本设计尝试使用Delphi开发一个属于本公司的员工的工资管理系统,以使得整个公司上下很好的管理每一位员工每月的工资发放和统计。[关键词]:InternetRADDelphi电子商务数据库AbstractAbstract:SummaryalongwiththedevelopmentofInternettschnology,dailylifecannotalreadydowithoutthenetwork.Thelifeandworkofthesocialpeopleoffuturewilldependonthedevelopmentofdigitaltechnologymoreandmore,Digitizemoreandmore,thenetworking,electronization,virtual,E-mercepressesclosetopeople’slifedaybydayalongwiththedevelopmentofnetworktoo.DevelopmentcourseandpresentapplicationstateanddevelopmenttrendofInternet,canbelievenetworktechnologygreatchangelifeandworkingwayofusfully,evenacertainchangewilltakeplaceinthevaluesofthesociety.ThisdesigntriestouseDelphitodevelopapanyisemployeesBelongtotheSalaryManagementSystem,TomakethewholewellmanagedAcrossthepanyeveryemployeepayrollandmonthlystatistica.[Keyword]:InternetRADDelphiE-merceDatabase.目录前言11.系统概况21.1系统开发背景21.2系统开发目的21.3系统平台选用21.3.1数据库技术的现状与发展31.3.2数据库系统的选择原则41.3.3系统开发工具的选择42.需求分析72.1需求陈述72.2可行性分析72.2.1技术可行性72.2.2时间、设备可行性72.2.3经济可行性83.概要设计93.1系统功能结构设计93.2数据库设计93.2.1数据库逻辑结构103.2.2数据库E-R图123.2.3Oracle数据库的使用134.详细设计144.1主界面设计144.2基本信息管理模块154.3工资数据模块244.4当月报表模块354.5历史数据模块375.系统性能测试与分析425.2测试方法425.3测试报告42总结44致谢45参考文献46前言民生产的效率,从而为国民经济的飞速发展创造了必要的条件。步入21理信息系统(ManagementInformationSystem,MIS)在办公自动化的进程中发挥着重要的作用。市场需求也日益增加。大型企业的分工比较严格、细致,组织较为紧密,对软硬件的要求也就比较高,MIS速企业的发展,从而促进国民经济的建设。需要通过软件有效地对其实施管理,还想操作能够尽可能简单,软件易于上手。通过查阅相关资料,对市场需求进行分析,对既成工资管理软件的研究和测试,的现实意义和开发使用价值。1.系统概况1.1系统开发背景自20世纪80人之间知识、信息传递的障碍,也带来了人类经营意识、管理观念的巨大改变。21关键环节。而运用先进科技手段进行有效管理是最好的发展方向。MIS作为提高加需要开发适应不同行业不同需求的MIS系统。1.2系统开发目的理员能够有序地管理每一位职工的各项工资条款的发放以及员工个人台帐的生成,使企业运用现代化技术创造更多更高的经济效益。1.3系统平台选用1.3.1数据库技术的现状与发展数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年主要工具,是管理信息系统(MIS)的核心部分。数据库系统是当今计算机信息系统的核心,是计算机技术和应用发展的关键。传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性。IBM公司联合举办了"21世纪数据库技术发展专家研讨会"。IBMDB2的创始人DonaldHaderle先生与国内著名数据库专家,IBMDB2现状及趋势、我国数据库用户的需求等问题,进行了广泛而深入的讨论。1.3.2数据库系统的选择原则①数据库系统采用易于集成的,开放的技术。②产品质量优异,可靠性高,适于长期运行,能支持关键应用。③数据安全,保安型高。④能提供分布式数据库功能。⑤支持多种开发环境,软件开发容易。⑥扩充性和升级能力强。1.3.3系统开发工具的选择本次工资管理系统选用Delphi与Oracle11g进行开发,现在市场上有很多MISVisualbasic、Delphi、ASP等等,数据库开发工具又有很多种AccessSQLSeverOracleDelphi与Oracle有着自己的特点与优势。⑴Delphi简介Delphi,是Windows平台下著名的快速应用程序开发工具(RapidApplicationDevelopment,简称RADDOS时代盛行一时的“BorlandTurboPascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为AndersHejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。从产品名称上就可以知道,TurboPascal使用的是Pascal语言。从TurboPascal5.5版开始,Borland公司在传统Pascal的基础上加入了面向对象的功能。Delphi是一个集成开发环境(IDEPascal语言发展而来的ObjectPascal,以图形用户界面(GraphicalUserInterface,简称GUI发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面Delphi量较大,但效能上却比较快。除了使用数据库的程序之外,不需安装即可运行,在使用上相当方便。Delphi在本质上应该归类为软件开发工具,而非程序语言,但由于Delphi几乎是目前市场上唯一使用Pascal人们会把Delphi视为ObjectPascal的代名词。Borland公司因而把ObjectPascal改称为Delphi。2006年,Borland把开发工具产品线独立出来,成立了一家新的公司CodeGear,并把产品线交由此公司负责。原本的Delphi,亦曾一度因此被命名为TurboDelphiDelphiforWin32(原有的Delphi版本)之外,还有一个新产品“DelphiforPHP”。在CodeGear的发展规划中,或许“Delphi”不再是ObjectPascal的专属IDE名称,而是将之提升到通用IDE品牌的层次。2008年5月7日,EmbarcaderoTechnologies(易博龙)公司宣布以2300万美元的价格收购CodeGear公司,从而把Delphi收入囊中。2009年5月6日,MicroFocus宣布以7500万美元收购Borland。Delphi目前的最新版本是2010。Delphi具有如下特点:①直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。②支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。③提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。④具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。⑤具有强大的数据存取功能。它的数据处理工具BDE(BorlandDatabaseEngine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。Delphi既可用于开发系统软件,也适合于应用软件的开发。⑥拥有强大的网络开发能力,能够快速的开发B/S应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。⑦Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Delphi在软件开发行业处于一个绝对领先的地位。用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。⑧从Delphi8开始Delphi也支持.Net框架下程序开发。当前DELPHI已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。当前,CodeGear为广大开发者提供了DELPHIFORPHP,以高度可视化的方式全面支持面向对象的PHP网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。⑵Oracle简介Oracle的关系数据库是世界第一个支持SQL语言的数据库。1977年,LawrenceJ.Ellison领着一些同事成立了Oracle公司,他们的成功强力反击了那些说关系数据库无法成功商业化的说法。现在,Oracle公司的财产净值已经由当初的2000美元增值到了现在的年收入超过97亿美元。Oracle11g扩展了Oracle来提高用户服务水平、减少停机时间以及更加有效地利用IT资源,同时还可以增强全天候业务应用程序的性能、可伸缩性和安全性。11g降低了数据库升级以及其他硬件和操作系统更改的成本,显著简化了更DatabaseReplay,可可以全面测试系统更改(包括关键的并发特性)的影响。Oracle数据库11gOracle9i数据库开始一直到Oracle数据库10gDBA任务。Oracle数据库11g中的新功能包括:利用自学功能自动进行SQL优化系统全局区(SGA)和程序全局区(PGA)的内存缓advisor对自动数据库诊断监视器(ADDM)的增强,能够提供Oracle真正应用集群(OracleRAC)环境中的更好的性能全局视图以及改进的性能比较分析功能。Oracle数据库11g中新增的故障诊断功能使客户在发生错误后捕获OracleSupport所需的数据变得极为简单。这可以加速问题的解决,减少客户重现问题的需要。⑶Delphi和Oracle数据库的连接方法Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,是目前最流行的客户/服务器(CLIENT/SERVER)Delphi7.0开发环境的一个重要特性,很多程序员在数据库应用程序开发中都采用Delphi7.0数据库的访问和控制。Delphi数据库应用程序是通过数据库引擎来访问它们引用的数据源的。本文概括性的介绍在WindowsXP环境中Delphi7.0连接Oracle数据库的3种方式,它们分别是BDE、ADO、DbExpress。ADO(ActiveXDataObjects)是Microsoft的高级接口,基于Microsoft的数据访问OLEDB技术而实现。本系统采用ADO方式连接Oracle数据库。2.需求分析2.1需求陈述理等。现对有关要求描述如下:②开发方法,文档规范化,便于管理,可扩充。③完善的数据输入,维护,输出。④自检性能高,用户误输、错输均有提示。操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。2.2可行性分析2.2.1技术可行性统的建设提供了技术条件。通过对Delphi和Oracle术和查阅文献的能力。对工资管理系统这一类的财务系统开发也有一定的认识,因此具备技术可行性。2.2.2时间、设备可行性5周的时间足够开发一个满足中小型企业简单需求的工资管理系统,现有计算机的软硬件配置能够满足系统开发的要求,具备时间和设备的可行性。2.2.3经济可行性MIS开发本系统具有经济上的可行性。3.概要设计3.1系统功能结构设计图3.1功能模块图功能序号功能名称功能说明1部门信息管理包含对部门信息的增加、删除2员工信息管理包含对员工信息的增加、删除3基本工资数据查看和修改基本工资信息4活动工资数据填报每月活动工资数据5每月工资存档每月工资填报完毕后存储数据6当月报表查看当月各部门工资表,打印工资条7当月汇总表查询当月各部门工资汇总信息8历史部门月报查询历史年月的部门工资信息9历史月汇总表查询指定部门制定年月的历史工资汇总信息10系统信息系统与作者信息等表3.1功能说明表设计角色:财务管理人员3.2数据库设计3.2.1数据库逻辑结构字段名称类型宽度约束说明BhVARCHAR23Pk部门编号McVARCHAR210部门名称表3.2部门信息表(bm)字段名称类型宽度约束说明BmVARCHAR210部门BhVARCHAR23编号XmVARCHAR210姓名Z1NUMBER(8,2)岗位资Z2NUMBER(8,2)基本资Z3NUMBER(8,2)效益资J1NUMBER(8,2)加班J2NUMBER(8,2)金额J3NUMBER(8,2)夜班J4NUMBER(8,2)金额Z4NUMBER(8,2)独子Z5NUMBER(8,2)月效资Z6NUMBER(8,2)技师补Z7NUMBER(8,2)医务补Z8NUMBER(8,2)护10%Z9NUMBER(8,2)护龄Z10NUMBER(8,2)女工卫Z11NUMBER(8,2)厂扣Z12NUMBER(8,2)应得资K1NUMBER(8,2)房租金K2NUMBER(8,2)水电暖K3NUMBER(8,2)公积金Z13NUMBER(8,2)保险RqVARCHAR2200日期KbxNUMBER(8,2)实发工资表3.3职工工资信息表(ry)字段名称类型宽度约束说明BmVARCHAR21部门BhVARCHAR23编号XmVARCHAR210姓名Z1NUMBER(8,2)岗位资Z2NUMBER(8,2)基本资Z3NUMBER(8,2)效益资J1NUMBER(8,2)加班J2NUMBER(8,2)金额J3NUMBER(8,2)夜班J4NUMBER(8,2)金额Z4NUMBER(8,2)独子Z5NUMBER(8,2)月效资Z6NUMBER(8,2)技师补Z7NUMBER(8,2)医务补Z8NUMBER(8,2)护10%Z9NUMBER(8,2)护龄Z10NUMBER(8,2)女工卫Z11NUMBER(8,2)厂扣Z12NUMBER(8,2)应得资K1NUMBER(8,2)房租金K2NUMBER(8,2)水电暖K3NUMBER(8,2)公积金Z13NUMBER(8,2)保险RqVARCHAR2200日期KbxNUMBER(8,2)实发工资表3.4历史数据表(sj)3.2.2数据库E-R图图3.2工资管理系统实体关系图3.2.3Oracle数据库的使用在Oracle中创建用户,如图3.2所示图3.2创建用户在Oracle中建表,如图3.3所示图3.3建表4.详细设计4.1主界面设计由于本系统是针对财务管理人员角色设计开发的,故未进行权限的设定。在主界面显示每个模块的入口,点击即可进入。在状态栏显示系统日期和登录系统时间。系统主界面如图4.1所示:图4.1系统主界面该模块主要代码:procedureTgzgl_f.FormCreate(Sender:TObject);//数据库连接处理begingzgl_f.Color:=rgb(180,130,100);trydb1.Connected:=true;exceptshowmessage('连接数据库失败!');;end;end;procedure(Sender:TObject);//状态栏系统日期与时间beginStatusbar1.Panels[0].Text:='系统日期:'+datetostr(date);Statusbar1.Panels[1].Text:='系统时间:'+timetostr(time);end;procedure(Sender:TObject);//选中菜单显示相应的窗体,此处为部门管理beginIfThen//用If语句做异常处理ELSEbegin(Tbmf,bmf);;:=True;end;end;4.2基本信息管理模块删除,员工信息的添加和删除。输入要添加的数据后,点击“添加完成数据添加,点击“刷新按钮显示数据。删除数据时程序将连接后台数据库,判断是否4.2,4.3所示图4.2部门信息维护部门信息维护核心代码:procedure1Click(Sender:TObject);beginedit1.Text:=trim(edit1.text);if(length(edit1.Text)=0)or(length()=0)thenbeginshowmessage('编号与单位名称不能为空!');exit;end;withQ1dobeginClose;;('InsertIntobm(bh,mc)');('Values(:y0,:y1)');('y0').Value:=;('y1').Value:=edit1.Text;TryExecSql;exceptshowmessage('服务器连接error,程序退出!');;end;end;end;procedure2Click(Sender:TObject);beginifmessagedlg('如果系统中存在本部门数据不能删除,确要删除吗?',mtconfirmation,[mbyes,mbno],0)=mrnothenexit;q1.Close;q1.;q1.('deletefrombm');q1.('where(bhlike:bh)');q1.('bh').Value:=+'%';Tryq1.ExecSql;exceptshowmessage('服务器连接error,程序退出!');;end;q1.Close;end;procedure3Click(Sender:TObject);vari:integer;beginQ1.Close;Q1.;Q1.('Selectbh,mcFrombm');Q1.('orderbybh');TryQ1.Open;exceptshowmessage('服务器连接error,程序退出!');;End;:=Q1.RecordCount+1;:=2;ForI:=0ToDo[I].Clear;[0,0]:='编号';[1,0]:='名称';ForI:=1ToDoBegin[0,i]:=(Q1.FieldByName('bh').AsString);[1,i]:=(Q1.FieldByName('mc').AsString);Q1.Next;End;Q1.Close;end;procedure(Sender:TObject;varAction:TCloseAction);begin.checked:=false;action:=cafree;end;procedure(Sender:TObject);vari:integer;begin:=rgb(220,170,140);fori:=1to9do.Add('0'+inttostr(i));fori:=10to50do.Add(inttostr(i));:=rgb(180,130,100);end;员工信息维护:图4.3员工信息维护员工信息维护核心代码:procedure1Click(Sender:TObject);beginedit1.Text:=trim(edit1.text);if(length(edit1.Text)=0)or(length()=0)or(length()=0)thenbeginshowmessage('编号与单位名称不能为空!');exit;end;withQ1dobeginClose;;('InsertIntory(bm,bh,xm)');('Values(:y0,:y1,:y2)');('y0').Value:=;('y1').Value:=;('y2').Value:=edit1.Text;TryExecSql;exceptshowmessage('服务器连接error,程序退出!');;end;end;end;procedure2Click(Sender:TObject);beginifmessagedlg('如果系统中存在本人工资数据不能删除,确要删除吗?',mtconfirmation,[mbyes,mbno],0)=mrnothenexit;:=trim();if(length()<2)thenexit;q1.Close;q1.;q1.('deletefromry');q1.('where((bhlike:bh)and(bmlike:bm))');q1.('bh').Value:=+'%';q1.('bm').Value:=+'%';Tryq1.ExecSql;exceptshowmessage('服务器连接error,程序退出!');;end;q1.Close;end;procedure3Click(Sender:TObject);vari:integer;beginListBox1.;Q1.Close;Q1.;Q1.('Selectbh,xmFromry');q1.('where(bmlike:bm)');Q1.('orderbybh');q1.('bm').Value:=+'%';TryQ1.Open;exceptshowmessage('服务器连接error,程序退出!');;End;ListBox1.('编号姓名');ForI:=1ToQ1.RecordCountDoBeginListBox1.(''+Q1.FieldByName('bh').AsString+''+Q1.FieldByName('xm').AsString);Q1.Next;End;Q1.Close;end;procedure(Sender:TObject);vari:integer;beginListBox1.;Q1.Close;Q1.;Q1.('Selectbh,xmFromry');q1.('where(bmlike:bm)');Q1.('orderbybh');q1.('bm').Value:=+'%';TryQ1.Open;exceptshowmessage('服务器连接error,程序退出!');;End;ListBox1.('编号姓名');ForI:=1ToQ1.RecordCountDoBeginListBox1.(''+Q1.FieldByName('bh').AsString+''+Q1.FieldByName('xm').AsString);Q1.Next;End;Q1.Close;:='';edit1.Text:='';end;procedure(Sender:TObject;varAction:TCloseAction);begin.checked:=false;action:=cafree;end;procedure(Sender:TObject);vari:integer;begin:=rgb(220,170,140);Q1.Close;Q1.;Q1.('SelectmcFrombm');Q1.('orderbybh');TryQ1.Open;exceptshowmessage('服务器连接error,程序退出!');;End;ForI:=1ToQ1.RecordCountDoBegin.Add(Q1.FieldByName('mc').AsString);Q1.Next;End;Q1.Close;fori:=1to9do.Add('0'+inttostr(i));fori:=10to99do.Add(inttostr(i));end;4.3工资数据模块存档。月基本数据界面设计如图4.4所示:图4.4月基本数据核心代码:procedure1Click(Sender:TObject);vari,j,k:integer;s:string;beginifmessagedlg('确认更新数据吗?',mtconfirmation,[mbyes,mbno],0)=mrnothenexit;if=''thenexit;k:=0;fori:=1to-1doforj:=1to10dobegintry[j,i]:=floattostr(strtofloat([j,i]));exceptshowmessage('第'+inttostr(i)+'行第'+inttostr(j)+'列有非法数字');k:=k+1;end;end;ifk>0thenexit;s:='';fori:=1to-1dobegins:=[0,i];Q1.Close;Q1.;Q1.('updaterysetz1=:z1,z2=:z2,z3=:z3,z4=:z4,z5=:z5,z6=:z6,');Q1.('z7=:z7,z8=:z8,z9=:z9,z10=:z10,z11=:z11,k3=:k3,kbx=:kbx');q1.('where(bmlike:bm)and(bhlike:bh)');q1.('z1').Value:=strtofloat([1,i]);q1.('z2').Value:=strtofloat([1,i])*0.4;q1.('z3').Value:=strtofloat([1,i])*0.6;q1.('z4').Value:=strtofloat([2,i]);q1.('z5').Value:=strtofloat([3,i]);q1.('z6').Value:=strtofloat([4,i]);q1.('z7').Value:=strtofloat([5,i]);q1.('z8').Value:=strtofloat([6,i]);q1.('z9').Value:=strtofloat([7,i]);q1.('z10').Value:=strtofloat([8,i]);q1.('z11').Value:=-(strtofloat([1,i])*0.1618);//q1.ParamByName('z11').Asfloat:=0;q1.('k3').Value:=strtofloat([9,i]);q1.('bm').Value:=copy(,3,20)+'%';q1.('bh').Value:=copy(s,1,2)+'%';q1.('kbx').Value:=strtofloat([10,i]);TryQ1.ExecSql;exceptshowmessage('数据库更新error重新点击“更新”按钮!');exit;end;end;showmessage('操作OK!')end;procedure(Sender:TObject);vari:integer;beginQ1.Close;Q1.;Q1.('Selectbh,xm,z1,z4,z5,z6,z7,z8,z9,z10,k3,kbxFromry');q1.('where(bmlike:bm)');q1.('bm').Value:=copy(,3,20)+'%';Q1.('orderbybh');TryQ1.Open;exceptshowmessage('数据库连接error,程序退出!');;End;:=Q1.RecordCount+1;:=11;ForI:=0To-1Do[I].Clear;[0,0]:='编号姓名';[1,0]:='岗位资';[2,0]:='计生补';[3,0]:='月效资';[4,0]:='技师补';[5,0]:='医务补';[6,0]:='护10%';[7,0]:='教护龄';[8,0]:='女工卫';[9,0]:='公积金';[10,0]:='保险';//.Clear;//.Add('');ForI:=1ToQ1.RecordCountDoBegin//.Add((Q1.FieldByName('bh').AsString)+(Q1.FieldByName('xm').AsString));[0,i]:=Q1.FieldByName('bh').AsString+Q1.FieldByName('xm').AsString;[1,i]:=floattostr(Q1.FieldByName('z1').Asfloat);[2,i]:=floattostr(Q1.FieldByName('z4').Asfloat);[3,i]:=floattostr(Q1.FieldByName('z5').Asfloat);[4,i]:=floattostr(Q1.FieldByName('z6').Asfloat);[5,i]:=floattostr(Q1.FieldByName('z7').Asfloat);[6,i]:=floattostr(Q1.FieldByName('z8').Asfloat);[7,i]:=floattostr(Q1.FieldByName('z9').Asfloat);[8,i]:=floattostr(Q1.FieldByName('z10').Asfloat);[9,i]:=floattostr(Q1.FieldByName('k3').Asfloat);[10,i]:=floattostr(Q1.FieldByName('kbx').Asfloat);Q1.Next;End;Q1.Close;end;procedure(Sender:TObject;varAction:TCloseAction);begin.checked:=false;action:=cafree;end;procedure(Sender:TObject);vari:integer;begin:=rgb(255,255,255);.Clear;Q1.Close;Q1.;Q1.('Selectbh,mcFrombm');Q1.('orderbybh');TryQ1.Open;exceptshowmessage('服务器连接error,程序退出!');;End;ForI:=1ToQ1.RecordCountDoBegin.Add(Q1.FieldByName('bh').AsString+Q1.FieldByName('mc').AsString);Q1.Next;End;Q1.Close;end;每月活动工资填报图4.5每月数据填报该部分核心代码:procedure1Click(Sender:TObject);vari,j,k:integer;s:string;beginForI:=1ToDo[6,i]:=Label3.caption;ifmessagedlg('确认更新数据吗?',mtconfirmation,[mbyes,mbno],0)=mrnothenexit;iftrim()=''thenexit;k:=0;fori:=1to-1doforj:=2to5dobegintry[j,i]:=floattostr(strtofloat([j,i]));exceptshowmessage('第'+inttostr(i)+'行第'+inttostr(j)+'列有非法数字');k:=k+1;end;end;ifk>0thenexit;s:='';fori:=1to-1dobegins:=[0,i];Q1.Close;Q1.;Q1.('updaterysetj1=:j1,j2=:j2,j3=:j3,j4=:j4,');Q1.('k1=:k1,k2=:k2,rq=:rq');q1.('where(bmlike:bm)and(bhlike:bh)');q1.('j1').Value:=strtofloat([2,i]);q1.('j2').Value:=strtofloat([2,i])*strtofloat([1,i])/30;q1.('j3').Value:=strtofloat([3,i]);q1.('j4').Value:=strtofloat([3,i])*0.8;q1.('k1').Value:=strtofloat([4,i]);q1.('k2').Value:=strtofloat([5,i]);q1.('rq').Value:=[6,i];q1.('bm').Value:=copy(,3,20)+'%';q1.('bh').Value:=copy(s,1,2)+'%';TryQ1.ExecSql;exceptshowmessage('数据库更新error重新点击“更新”按钮!');exit;end;end;showmessage('操作OK!')end;procedure(Sender:TObject);vari:integer;beginQ1.Close;Q1.;Q1.('Selectbh,xm,z1,j1,j3,k1,k2,rqFromry');q1.('where(bmlike:bm)');q1.('bm').Value:=copy(,3,20)+'%';Q1.('orderbybh');TryQ1.Open;exceptshowmessage('数据库连接error,程序退出!');;End;ForI:=0To-1Do[I].Clear;:=Q1.RecordCount+1;:=7;[0,0]:='编号姓名';[1,0]:='岗位资';[2,0]:='加班';[3,0]:='夜班';[4,0]:='房租';[5,0]:='水电暖';[6,0]:='日期';ForI:=1ToQ1.RecordCountDoBegin[0,i]:=Q1.FieldByName('bh').AsString+Q1.FieldByName('xm').AsString;[1,i]:=floattostr(Q1.FieldByName('z1').Asfloat);[2,i]:=floattostr(Q1.FieldByName('j1').Asfloat);[3,i]:=floattostr(Q1.FieldByName('j3').Asfloat);[4,i]:=floattostr(Q1.FieldByName('k1').Asfloat);[5,i]:=floattostr(Q1.FieldByName('k2').Asfloat);[6,i]:=Q1.FieldByName('rq').Asstring;Q1.Next;End;Q1.Close;end;procedure(Sender:TObject;varAction:TCloseAction);begin.checked:=false;action:=cafree;end;procedure(Sender:TObject);vari:integer;Year,Month,Day:word;beginDecodeDate(Date,Year,Month,Day);Label3.Caption:=inttostr(year)+'-'+inttostr(Month);:=rgb(220,170,140);.Clear;Q1.Close;Q1.;Q1.('Selectbh,mcFrombm');Q1.('orderbybh');TryQ1.Open;exceptshowmessage('服务器连接error,程序退出!');;End;ForI:=1ToQ1.RecordCountDoBegin.Add(Q1.FieldByName('bh').AsString+Q1.FieldByName('mc').AsString);Q1.Next;End;Q1.Close;end;数据存档界面与代码:图4.6数据存档该部分核心代码:procedure1Click(Sender:TObject);vari,x,y:integer;s:string;beginq3.Close;q3.;q3.('deletefromsj');q3.('where(rqlike:rq)');q3.('rq').Value:=Label1.Caption+'%';Tryq3.ExecSql;exceptshowmessage('存档失败,程序退出!');exit;end;Q1.Close;Q1.;Q1.('Selectcount(*)');Q1.('Fromry');TryQ1.Open;exceptexit;End;x:=q1.fields[0].asinteger;showmessage('本单位共'+inttostr(x)+'人');Q1.Close;Q1.;Q1.('Selectcount(*)');Q1.('Fromry');Q1.('where(rqlike:y1)');Q1.('y1').Value:=Label1.Caption+'%';TryQ1.Open;exceptexit;End;y:=q1.fields[0].asinteger;showmessage('当前月数据共'+inttostr(y)+'条');ifx<>ythenbeginshowmessage('当月数据未填报完毕,不许存档!');exit;end;q1.Close;Q1.;Q1.('Select*Fromry');TryQ1.Open;exceptshowmessage('操作失败,请重来!');exit;End;forI:=1toQ1.RecordCountdoBEGINQ2.;Q2.('InsertIntosj(bm,bh,xm,z1,z2,z3,z4,z5,z6,z7,z8,z9,z10,z11,z12,z13,j1,j2,j3,j4,k1,k2,k3,rq,kbx)');q2.('Values(:y0,:y1,:y2,:y3,:y4,:y5,:y6,:y7,:y8,:y9,:y10,:y11,:y12,:y13,:y14,:y15,:y16,:y17,:y18,:y19,:y20,:y21,:y22,:y23,:y24)');Q2.('y0').Value:=Q1.FieldByName('bm').AsString;Q2.('y1').Value:=Q1.FieldByName('bh').AsString;Q2.('y2').Value:=Q1.FieldByName('xm').AsString;Q2.('y3').Value:=Q1.FieldByName('z1').AsFloat;Q2.('y4').Value:=Q1.FieldByName('z2').AsFloat;Q2.('y5').Value:=Q1.FieldByName('z3').AsFloat;Q2.('y6').Value:=Q1.FieldByName('z4').AsFloat;Q2.('y7').Value:=Q1.FieldByName('z5').AsFloat;Q2.('y8').Value:=Q1.FieldByName('z6').AsFloat;Q2.('y9').Value:=Q1.FieldByName('z7').AsFloat;Q2.('y10').Value:=Q1.FieldByName('z8').AsFloat;Q2.('y11').Value:=Q1.FieldByName('z9').AsFloat;;Q2.('y12').Value:=Q1.FieldByName('z10').AsFloat;Q2.('y13').Value:=Q1.FieldByName('z11').AsFloat;Q2.('y14').Value:=Q1.FieldByName('z12').AsFloat;Q2.('y15').Value:=Q1.FieldByName('z13').AsFloat;Q2.('y16').Value:=Q1.FieldByName('j1').AsFloat;Q2.('y17').Value:=Q1.FieldByName('j2').AsFloat;Q2.('y18').Value:=Q1.FieldByName('j3').AsFloat;Q2.('y19').Value:=Q1.FieldByName('j4').AsFloat;Q2.('y20').Value:=Q1.FieldByName('k1').AsFloat;Q2.('y21').Value:=Q1.FieldByName('k2').AsFloat;Q2.('y22').Value:=Q1.FieldByName('k3').AsFloat;Q2.('y23').Value:=Q1.FieldByName('rq').AsString;Q2.('y24').Value:=Q1.FieldByName('kbx').AsFloat;Tryq2.ExecSql;exceptq3.Close;q3.;q3.('deletefromsj');q3.('where(rqlike:rq)');q3.('rq').Value:=Label1.Caption+'%';Tryq3.ExecSql;exceptshowmessage('存档失败,程序退出!');exit;end;showmessage('存档失败,程序退出!');exit;end;q1.Next;END;showmessage('当月数据存档OK!');end;4.4当月报表模块界面设计如图4.7,图4.8所示。图4.7当月报表图4.8月汇总表核心代码:procedure1Click(Sender:TObject);vari,j:integer;yf,sf:real;beginyf:=strtofloat([i,3])+strtofloat([i,7])+strtofloat([i,9]);yf:=yf+strtofloat([i,10])+strtofloat([i,11])+strtofloat([i,12]);yf:=yf+strtofloat([i,13])+strtofloat([i,14])+strtofloat([i,15]);yf:=yf+strtofloat([i,16])+strtofloat([i,17]);//yf:=FormatFloat('0.00',yf);//[i,18]:=Floattostr(yf);[i,18]:=FormatFloat('0.00',yf);sf:=yf-(strtofloat([i,19])+strtofloat([i,20])+strtofloat([i,21]));sf:=sf-strtofloat([i,22]);[i,23]:=FormatFloat('0.00',sf);[i,7]:=FormatFloat('0.00',strtofloat([i,7]));[i,17]:=FormatFloat('0.00',strtofloat([i,17]));end;forj:=3to23dobeginyf:=0;fori:=1to-1doyf:=yf+strtofloat([i,j]);[,j]:=floattostr(yf);end;end;procedureTybf.R1Click(Sender:TObject);//选中工资表beginifr1.Checked=truethenbegin:=true;:=false;end;end;forI:=0to-1do[i].Clear;:=(-2)*2;:=23;k:=0;fori:=1to-2dobeginforj:=0to22dobegin[j,k]:=[j,0];[j,k+1]:=[j,i];end;k:=k+2;end;4.5历史数据模块部门的历史工资汇总。如图4.9,图4.10所示。图4.9历史月报表图4.10历史汇总表核心代码:procedure2Click(Sender:TObject);varExcelApp,MyWorkbook:oleVariant;i,j,h:integer;s:string;begintryExcelApp:=CreateOleObject('');MyWorkBook:=CreateOleobject('');exceptonExceptiondoraise('无法运行EXCEL!请确认已安装!')end;:=true;//增加一个工作表MyworkBook:=.Add;//单元格合并[1].range['A1:W1'].Merge(True);//单元格居中[1].range['A1:J2'].HorizontalAlignment:=$FFFFEFF4;//报表头[1].Cells[1,1].Value:=Label3.Caption;//表头i:=2;forj:=0todo[1].Cells[i,j+1].Value:=[j,0];forh:=1todoforj:=0todoiftrim([j,h])<>''then[1].Cells[h+2,j+1].Value:=[j,h];//设置列宽[1].Columns[1].ColumnWidth:=4;[1].Columns[8].ColumnWidth:=4;[1].Columns[3].ColumnWidth:=5;//字体颜色[1].Range['A1:w2'].:=clBlue;//字体[1].Range['A1:F1'].:='楷体';//'隶书';//字号[1].Range['A1:J1'].:=18;//设置数据行字体,大小s:='A3:J'+inttostr(+2);[1].Range[s].:='仿宋';[1].Range[s].:=12;fori:=0to.Count-1doif[i]thenbegin[0,j]:=copy([i],1,2);[1,j]:=copy([i],3,20);j:=j+1;end;[1,-1]:='合计';fori:=1to-2dobeginQ1.Close;Q1.;Q1.('Selectsum(z1),sum(z2),sum(z3),');Q1.('sum(j1),sum(j2),sum(j3),sum(j4),');Q1.('sum(z4),sum(z5),sum(z6),sum(z7),sum(z8),');Q1.('sum(z9),sum(z10),sum(z11),sum(z12),');Q1.('sum(k1),sum(k2),sum(k3),sum(kbx),sum(z13)');Q1.('Fromry');Q1.('where(bmlike:y1)and(rqlike:y2)');Q1.('y1').Value:=[1,i]+'%';Q1.('y2').Value:=+'-'+trim()+'%';TryQ1.Open;exceptexit;End;forj:=0to20do[j+2,i]:=floattostr(q1.fields[j].asfloat);q1.Next;End;fori:=1to-2dobeginyf:=strtofloat([2,i])+str

温馨提示

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

最新文档

评论

0/150

提交评论