下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 delphi人事管理系统

delphi人事管理系统.doc

delphi人事管理系统

当记忆褪了色
2017-09-01 0人阅读 举报 0 0 暂无简介

简介:本文档为《delphi人事管理系统doc》,可适用于IT/计算机领域

delphi人事管理系统信息系统分析与设计实训报告二〇〇五年六月摘要随着计算机技术的飞速发展计算机在企业管理中应用的普及利用计算机实现企业人事工资的管理势在必行。本系统结合株洲移动公司实际的人事、财务制度经过实际的需求分析采用功能强大的DDLPHI做为开发工具、Paradox做为数据库开发出来的单机版人事管工资理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发完成人事、工资管理的全过程包括新进员工加入时人事档案的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询、统计等人事管理工作以及新进员工工资的新增、老员工工资修改、出盘、工资短信等工资管理工作。经过实际使用证明本文所设计的人事工资管理系统可以满足株洲移动公司人事、工资管理方面的需要。论文主要介绍了本课题的开发背景所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。关键词:数据库ParadoxDelph出盘工资短信、人事工资管理人事管理系统实训报告目录第一章绪论错误~未定义书签。课题来源开发工具的选择本文所作工作第二章需求分析总体需求调查组织结构图系统目标应用现状调查业务总体流程调查系统功能调查人事管理功能工资管理功能系统维护功能系统功能模块图第三章概要设计概念设计数据库设计ygzlb(员工资料表)Yhklb用户口令表Ygxjjgb员工薪金结构表Kjcsb控制参数表Jbcsb基本参数表第四章详细设计启动界面设计功能说明屏幕格式设计第页共页人事管理系统实训报告登录窗口设计功能说明屏幕格式设计源程序分析主窗口设计功能说明屏幕格式设计源程序分析人事管理模块的实现员工基本信息维护员工基本信息查看:员工基本信息条件查询人事状况曲线:企业员工花名册:工资管理模块的实现出盘员工工资结构调整工资短信系统维护模块设计基本参数维护用户管理系统其它功能的实现打开计算器打开写字板窗口的层叠、平铺、极小化操作关于窗口的实现第五章毕业设计小结第页共页人事管理系统实训报告第一章立项报告(课题项目人才的全球化竞争使企业的人事管理面临前所未有的挑战。人事资源部门必须转换其传统的行政管理角色投资更多关于人事资源的发展和规划这就需要借助信息技术来优化人事管理的业务流程提高工作效率。传统的人事管理系统主要用来解决人事部门内部的业务管理问题由于信息流无法突破本部门从而导致管理体系的封闭。zbxxwhButtonClick(Sender:TObject)删除按钮事件varsql:string询问是否删除beginifApplicationMessageBox('您确认要删除吗,','系统提示',mbIconInformationmbOKmbOKCancel)=IDCancelthenExitSql:='updateygzlbsetyxbz=whereygh='''trim(edittext)''''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQL将有效标志必为记录并不删除ApplicationMessageBox('该记录删除成功!','系统提示',mbIconInformationmbOK)end第页共页人事管理系统实训报告procedureTfrmygzbxxwhButtonClick(Sender:TObject)提交按钮事件varczdate,qsrq,rzsj:stringbeginif((Querystate=dsEdit)or(Querystate=dsInsert))thenelseexit判断Query是否在编辑状态qsrq:=FormatDatetime('YYYYMMDD',datetimepickerDatetime)rzsj:=FormatDatetime('YYYYMMDD',datetimepickerDatetime)czdate:=FormatDatetime('YYYYMMDDHH:MM:SS',Now)ifmessagedlg('是否保存员工数据,',mtinformation,mbyes,mbno,)=mryesthenelseexitQueryfieldbyname('qsrq')asstring:=qsrq出生日期赋值Queryfieldbyname('rzsj')asstring:=rzsj入职日期赋值Queryfieldbyname('czrq')asstring:=czdate操作时间Queryfieldbyname('czy')asstring:=dluser操作员赋值Querypostqueryclosequeryopenmessagedlg('数据提交成功!',mtinformation,mbok,)提交成功系统提示editsetfocuseditReadOnly:=false提交按钮置为不可用end员工基本信息查看:功能说明用于浏览员工的基本信息采用卡片式和表格式两种形式表现员工的基本信息浏览时应具有浏览前一条记录、后一条记录、最前一条、最后一条记录的功能。实现采用pagecontrol控件中间放置两个Tablesheet,其中一个放置Dbgrid按件实现表格式浏览另一个放置Dbedti控件,实现卡片式浏览。由于只涉及到查询不做源程序分析。屏幕格式说明浏览员工基本信息界面第页共页人事管理系统实训报告员工基本信息条件查询功能说明可以根据不同的条件组合查询员工的基本信息查询条件包括所属部门、职称、职务、学历、性别、政治面貌、员工号、姓名和条件可以任意组合。同时应具有查询标专为无效的员工的作用。系统同时应提供Excel输出和打印的功能。多条件查询是本模块重点考虑的内容本设计完成了对多字段、多条件的查询其实现程序如源程序分析:屏幕格式说明员工资料查询界面源程序分析procedureTfrmygzlcxBitBtnClick(Sender:TObject)查询按钮事件beginifqueryactivethen判断Query是否已经Openqueryclose关闭Queryquerysqlclear翻译用户输入动态添加SQLQuerysqladd('select*fromygzlbwhere=')ifDBLookupComboBoxtext<>''then判断是否选择了部门begin若选择添加所属部门条件querysqladd('andssbm=:ssbm')queryparambyname('ssbm')asstring:=DBLookupComboBoxkeyvalueendifDBLookupComboBoxtext<>''then判断是否选择了职务begin若选择添加职务条件querysqladd('andzw=:zw')queryparambyname('zw')asstring:=DBLookupComboBoxkeyvalueend第页共页人事管理系统实训报告ifDBLookupComboBoxtext<>''then判断是否选择了职称begin若选择添加职称条件querysqladd('andzc=:zc')queryparambyname('zc')asstring:=DBLookupComboBoxkeyvalueendifcomboboxtext<>''then判断是否选择了学历begin若选择添加学历条件querysqladd('andxl=:xl')queryParamByName('xl')asstring:=comboboxtextendifcomboboxtext<>''then判断是否选择了政治面貌begin若选择添加政治面貌条件querysqladd('andzzmm=:zzmm')queryParamByName('zzmm')asstring:=comboboxtextendifcomboboxtext<>''then判断是否选择了性别begin若选择添加性别条件querysqladd('andxb=:xb')queryParamByName('xb')asstring:=comboboxtextendifedittext<>''then判断是否输入了员工号begin若已输入添加员工号条件querysqladd('andygh=:ygh')queryparambyname('ygh')asstring:=edittextendifedittext<>''then判断是否输入了姓名begin若输入添加员工姓名条件querysqladd('andxm=:xm')queryparambyname('xm')asstring:=edittextendifcheckboxcheckedthen有效标志是否选择querysqladd('andyxbz=')若选择只选择标志有效的员工queryopen打开查询ifqueryisemptythen判断是来有记录若无弹出提示框showmessage('没有你所要的员工资料,请确认条件是否正确')procedureTfrmygzlcxBitBtnClick(Sender:TObject)打印按钮事件第页共页人事管理系统实训报告beginprintdbgrid(DataSource,dbgrid,'HX')调用自定义过程printdbgridendendprocedureTfrmygzlcxBitBtnClick(Sender:TObject)Excel输出按钮事件beginPUBINSETEXCEL(QUERY,DBGRID)调用自定义过程PUBINSETEXCELend人事状况曲线:功能说明采用饼状图分析公司的人事状况实现按性别、职称、职务、学历、部门五种情况分析公司人员的分布情况直观的分析了公司的人力资源情况用以辅助公司领导安排人力资源计划采用Dbchart控件可以方便的实现不做程序分析。企业员工花名册:功能说明为了保存企业员工信息生成公司员工花名册设计了此报表打印模块通过采用QuickReport控件可能方便实现由于无特殊之处在此不做源程序分析。(工资管理模块的实现出盘功能说明选择月份出盘打印工资清单出软盘与银行接口一般不准删除历史月份不能修改只能查询如需对本月工资信息进行维护见新员工工资新增、员工工资修改。第页共页人事管理系统实训报告屏幕格式设计出盘界面程序流程图出盘:选取出盘的月份否确认出盘退出是否选择存盘路径是失败将该月的数据作为下个月的初始数回滚据插入Ygxjjgb中成功失败在Kjcsb中插入一条记录表示该月已经出盘成功成功数据存盘出盘回滚:出盘发生错误如果Ygxjjgb已经存在下月数据删除第页共页如果Cjcsb存在该月出盘成功标志删除人事管理系统实训报告源程序分析多数据库表之间的链接操作是本模块的设计重点在生成员工工资信息的过程中为了能够显示工资数据系统要建立基本参数表、员工资料表、员工薪水帐目表之间的连接操作为了能够按银行格式输出本程序花了很多功夫。第页共页人事管理系统实训报告procedureTfrmcpButtonClick(Sender:TObject)查询按钮事件varSql:StringI,J:IntegerMark:BooleanbeginMark:=FalseJ:=forI:=toStringGridRowCountdoStringGrid清空StringGridRowsIClearSql:='selectmcfromjbcsb’从基本参数表中取出薪水帐目'wherelx='QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenQueryFirstwhilenotQueryEofdo将薪水帐目显示在stringgrid控件上做为标题beginStringGridCellsJ,:=QueryFieldByName('mc')AsStringJ:=JQueryNextendStringGridCells,:='姓名'行列显示姓名标题StringGridCells,:='工号'行列显示姓名标题Sql:='selectdistinctaygh,axmxmfromygzlba,ygxjjgbbwherebyf='''EditText'''''andaygh=bygh'多连接操作从员工资料表和薪金结构表中取出员工号和姓名QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenStringGridRowCount:=QueryRecordCountifStringGridRowCount>thenStringGridFixedRows:=QueryFirstwhilenotQueryEofdo将员工号和姓名插入StringGrid控件beginStringGridColsAdd(QueryFieldByname('ygh')AsString)第一列显示员工号StringGridColsAdd(QueryFieldByname('xm')AsString)第二列显示姓名QueryNextend第页共页人事管理系统实训报告Sql:='selectamc,bygh,csm,cygh,cxszmidfrom'从员工资料表、薪金结构表、基本参数表'jbcsba,ygzlbb,ygxjjgbcwherecyf='中取出员工号、薪水帐目、数目''''EditText'''''andaid=cxszmidandalx=''andbygh=cygh'多表之间的连接操作QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenQueryFirst向第一条记录whilenotQueryEofdo循环动态加入各员工的薪水数目beginforI:=toStringGridRowCountdobeginifQueryFieldByName('ygh')AsString=StringGridColsStringsIthen员工号相同beginforJ:=toStringGridColCountdobeginifQueryFieldByName('mc')AsString=StringGridRowsStringsJthenbegin如果薪水帐目与标题相同显示数目StringGridCellsJ,I:=FormatFloat('',QueryFieldByName('sm')AsFloat)BreakendendendendQueryNext指向下一条endforI:=toStringGridColCountdo统计在StringGrid中加入合计beginifI=thenStringGridCellsI,StringGridRowCount:='合计'在第列最后一行显示合计elsebeginifTrim(StringGridCellsI,StringGridRowCount)=''then最后一行如无空置为StringGridCellsI,StringGridRowCount:=''forJ:=toStringGridRowCountdobeginif(J<>StringGridRowCount)thenbeginifTrim(StringGridCellsI,J)=''thenStringGridCellsI,J:=''各列为空置为第页共页人事管理系统实训报告StringGridCellsI,StringGridRowCount:=FloatToStr(StrToFloat(StringGridCellsI,J)StrToFloat(StringGridCellsI,StringGridRowCount))将各列值求和StringGridCellsI,StringGridRowCount:=FormatFloat('',StrToFloat(StringGridCellsI,StringGridRowCount))设定显示格式endendendendendprocedureTfrmcpButtonClick(Sender:TObject)出盘按钮事件varFileDir:StringSql:StringbeginifApplicationMessageBox('确认出盘吗','系统提示',mbIconInformationmbOKmbOKCancel)=IDCancelthenExitifTrim(StringGridColsStrings)=''then判断是否有数据如没数据提示beginApplicationMessageBox('没有可出盘的数据~','系统提示',mbIconInformationmbOK)ExitendifSaveDialogExecutethen执行保存beginSql:='selectcsdmfromkjcsbwhereyf='查询控制参数表本月是否有记录''''Trim(EditText)'''andcsmc=''出盘标志'''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenifqueryIsEmptythen第一次使用时执行outdiskoutdiskelseifQueryFieldByName('csdm')AsString=''then有记录但未出盘执行outdiskOutDiskFileDir:=SaveDialogFileNameSaveDisk(FileDir)调用过程保存文本文件ApplicationMessageBox('出盘成功~','系统提示',mbIconInformationmbOK)提示出盘成功endelsebegin第页共页人事管理系统实训报告ApplicationMessageBox('您未选择存放路径,系统将不出盘!','系统提示',mbIconInformationmbOK)ExitendendprocedureTfrmcpOutDiskvarSql,DateStr,NextMonth:StringbeginDateStr:=FormatDateTime('YYYYMMDDHH:MM:SS',Now)Sql:='selectyf,ygh,xszmid,smfromygxjjgbwhereyf='''EditText''''取出本月工资数据QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenQueryFirstwhilenotQueryEofdo将本月记录作为下月工资初始数据beginSql:='insertintoygxjjgb(yf,ygh,xszmid,sm,czy,czsj)values('''''ReturnNextMonth(StrToInt(Trim(EditText)))''''','''''QueryFieldByName('ygh')AsString''''','QueryFieldByName('xszmid')AsString','QueryFieldByName('sm')AsString','''''dluser''''','''''DateStr''''')'QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQL插入员工薪金结构表QueryNextendSql:='updatekjcsbsetcsdm=''''whereyf='''Trim(EditText)''''更新控制参数表'andcsmc=''出盘标志'''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQLifCopy(Trim(EditText),,)=''thenNextMonth:=IntToStr(StrToInt(Copy(Trim(EditText),,)))''elseNextMonth:=IntToStr(StrToInt(Trim(EditText)))取下一个月月份Sql:='insertintokjcsb(csdm,yf,csmc)values('控制参数表插入记录但标志为第页共页人事管理系统实训报告''''','''NextMonth''',''''出盘标志'')'QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQLendprocedureTfrmcpOutDisk第一次使用时出盘操作varSql,DateStr,NextMonth:StringbeginDateStr:=FormatDateTime('YYYYMMDDHH:MM:SS',Now)Sql:='selectyf,ygh,xszmid,smfromygxjjgbwhereyf='''EditText''''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenQueryFirstwhilenotQueryEofdo将本月记录作为下月工资初始数据beginSql:='insertintoygxjjgb(yf,ygh,xszmid,sm,czy,czsj)values('''''ReturnNextMonth(StrToInt(Trim(EditText)))''''','''''QueryFieldByName('ygh')AsString''''','QueryFieldByName('xszmid')AsString','QueryFieldByName('sm')AsString','''''dluser''''','''''DateStr''''')'QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQLQueryNextendsql:='insertintokjcsb(csdm,yf,csmc)values('控制参数表插入本月出盘记录''''','''Trim(EditText)''',''''出盘标志'')'Sql:='updatekjcsbsetcsdm=''''whereyf='''Trim(EditText)'''''andcsmc=''出盘标志'''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQL第页共页人事管理系统实训报告ifCopy(Trim(EditText),,)=''thenNextMonth:=IntToStr(StrToInt(Copy(Trim(EditText),,)))''elseNextMonth:=IntToStr(StrToInt(Trim(EditText)))Sql:='insertintokjcsb(csdm,yf,csmc)values('本控制参数表插入下月记录以供更新用''''','''NextMonth''',''''出盘标志'')'QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQLendprocedureTfrmcpNClick(Sender:TObject)快捷键新增事件beginApplicationCreateForm(Tfrmyggzjgtz,frmyggzjgtz)打开员工工资结构调整窗口FrmyggzjgtzButtonCaption:='确认新增(A)'将按钮改为确认新增endprocedureTfrmcpNClick(Sender:TObject)快捷键修改事件beginApplicationCreateForm(Tfrmyggzjgtz,frmyggzjgtz)打开员工工资结构调整窗口frmyggzjgtzEditText:=StringGridCells,SelRowCountfrmyggzjgtzButtonClickfrmyggzjgtzButtonCaption:='确认修改(S)'将按钮改为确认修改endprocedureTfrmcpSaveDisk(Str:String)按银行格式生文本保存过程varI,J,Count,Amount,shifacol:IntegerTempStr:StringbeginListBoxItemsClearforJ:=toStringGridColCountdo查找实发金额的列数beginif(StringGridRowsStringsJ='实发工资')thenshifacol:=JendforI:=toStringGridRowCountdobeginifI<StringGridRowCountthen第页共页人事管理系统实训报告beginforJ:=toStringGridColCountdobeginifJ=thenTempStr:=''BankShortBit(StringGridCellsJ,I,)员工号ifJ=thenTempStr:=TempStrBankShortBit(StringGridCellsJ,I,)姓名ifJ=shifacolthenTempStr:=TempStrBankBit(FloatToStr(实发工资StrToFloat(StringGridCellsJ,I)*))endListBoxItemsAdd(TempStr)往Listbox里加数据endendListBoxItemsAdd(BankLongBit(IntToStr(StringGridRowCount),)取合计工资BankLongBit(FloatToStr(StrToFloat(StringGridCellsshifacol,StringGridRowCount)*),))ListBoxItemsSaveToFile(Str)endfunctionTfrmcpBankBit(Str:String):String按银行格式要求设计的函数beginifStr=''thenResult:=''elsebeginifLength(Str)=thenResult:=StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''Str第页共页人事管理系统实训报告endendfunctionTfrmcpBankLongBit(Str:StringFlag:Integer):String按银行格式要求设计的函数beginifFlag=thenbeginifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=StrendifFlag=thenbeginifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''Str第页共页人事管理系统实训报告ifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=StrendendfunctionTfrmcpBankShortBit(Str:StringFlag:Integer):String按银行格式要求设计的函数beginifFlag=thenbeginifLength(Str)=thenResult:=Str''ifLength(Str)=thenResult:=Str''ifLength(Str)=thenResult:=StrendifFlag=thenbeginifLength(Str)=thenResult:=StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''Str第页共页人事管理系统实训报告ifLength(Str)=thenResult:=''StrifLength(Str)=thenResult:=''StrendendprocedureTfrmcpStringGridSelectCell(Sender:TObjectACol,ARow:IntegervarCanSelect:Boolean)beginif(CanSelect)and(ARow<>StringGridRowCount)thenifARow<>thenSelRowCount:=ARowendprocedureTfrmcpPopupMenuPopup(Sender:TObject)beginifSelRowCount=thenNEnabled:=FalseelseNEnabled:=TrueendprocedureTfrmcpButtonClick(Sender:TObject)打印按钮事件beginifTrim(StringGridColsStrings)=''thenbeginApplicationMessageBox('没有可打印的数据~','系统提示',mbIconInformationmbOK)ExitendifApplicationMessageBox('确认要打印吗','系统提示',mbIconInformationmbOKmbOKCancel)=IDCancelthenExitPrintStringGrid(StringGrid,'HX')调用过程PrintStringGridendprocedureTfrmcpButtonClick(Sender:TObject)出盘回滚事件varSql,NextMonth,NowDate:StringbeginNowDate:=FormatDatetime('YYYYMMDDHHMMSS',Date)ifTrim(EditText)<>Copy(NowDate,,)then检查是否是当前月只能回滚当月工资数据beginApplicationMessageBox('只能回滚当月的数据~','系统提示',mbIconInformationmbOK)Exitend第页共页人事管理系统实训报告ifCopy(Trim(EditText),,)=''thenNextMonth:=IntToStr(StrToInt(Copy(Trim(EditText),,)))''elseNextMonth:=IntToStr(StrToInt(Trim(EditText)))ifApplicationMessageBox(PChar('确认将'EditText'月的数据回滚吗'),'系统提示',mbIconInformationmbOKmbOKCancel)=IDCancelthenExitSql:='DeleteFromygxjjgbWhereyf='''NextMonth''''从员工薪金结构表中删除数据QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQLSql:='updatekjcsbsetcsdm=''''whereyf='''Trim(EditText)'''andcsmc=''出盘标志'''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQL修改控制参数表当月记录置为Sql:='deletefromkjcsbwhereyf='''NextMonth'''andcsmc=''出盘标志'''QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryExecSQL删除控制能数表中下个月控制记录ApplicationMessageBox(PChar('回滚'EditText'月的数据成功~'),'系统提示',mbIconInformationmbOK)endfunctionTfrmcpReturnNextMonth(Curr:Integer):String取下一个月函数beginifStrToInt(Copy(IntToStr(Curr),,))>thenResult:=IntToStr(StrToInt(Copy(IntToStr(Curr),,)))''elseResult:=IntToStr(Curr)endprocedureTfrmcpEditKeyPress(Sender:TObjectvarKey:Char)月份编辑框事件beginif(edittext<>'')and(key=#)then若不为空且按下回车键触发查询事件buttonclick(sender)endend第页共页人事管理系统实训报告员工工资结构调整功能说明要求在同一窗口上实现新员工工资新增和员工工资结构调整。通过在出盘窗口上点击右键选择是新增还是修改员工工资信息动态改变提交按钮上显示的信息实现调整员工工资结构的目的。屏幕格式说明员工工资结构维护界面源程序分析输入员工工号后按回车触发查询事件从基本参数表中取出工资帐目信息(包括ID、名称、关系)再从薪水帐目表中取出数据显示在表格上。直接在网格上对工资信息进行修改系统自动计算应发工资和实发工资修改的程序差不多只不过最后执行的是更新操作。procedureTfrmyggzjgtzButtonClick(Sender:TObject)确认新增按钮事件varcurdate,sql:stringi:integerbegincurdate:=FormatDatetime('yyyymmddhh:mm:ss',now)ifbuttoncaption='确认新增(A)'thenbeginifApplicationMessageBox('确认新增吗,','系统提示',mbIconInformationmbOKmbOKCancel)=IDCancelthenExitSql:='select*fromygxjjgbwhereyf='''Trim(frmcpEditText)'''''andygh='''Trim(EditText)''''第页共页人事管理系统实训报告QueryCloseQuerySqlClearQuerySqlAdd(Sql)QueryOpenifnotqueryisemptythen查询该员工本月是否存在工资信息beginapplicationmessagebox('该月已经存在员工信息,无法完成新增!','系统提示',mbiconinformationmbok)buttonclick(sender)editsetfocusexitendfori:=tostringgridrowcountdo往薪金结构表插入工资信息beginsql:='insertintoygxjjgb(yf,ygh,xszmid,sm,czy,czsj)values('''trim(frmcpeditText)''','''''trim(edittext)''','stringgridcolsstringsi','''stringgridcolsstringsi','''dluser''','''curdate''')'queryclosequerysqlclearquerysqladd(sql)queryexecsqlendapplicationmessagebox('操作成功!','系统提示',mbiconinformationmbok)frmcpbuttonclickifApplicationMessageBox('是否继续新增,','系统提示',mbIconInformationmbOKmbOKCancel)=IDCancelthenExitbuttonclick(sender)editSetFocusendprocedureTfrmyggzjgtzStringGridSetEditText(Sender:TObjectACol,ARow:IntegerconstValue:String)当表格被修改后重新计算应发和实发工资第页共页人事管理系统实训报告varI,YingFaRow,ShiFaRow:IntegerShiFa,YingFa:RealbeginforI:=toStringGridRowCountdo级别查找应发和实发工资所在行数beginif(StringGridColsStringsI='应发工资')thenYingFaRow:=IifStringGridColsStringsI='实发工资'thenShiFaRow:=IendShiFa:=YingFa:=forI:=toStringGridRowCountdobeginif(StringGridColsStringsI='')and(StringGridColsStringsI<>'')thenbeginYingFa:=YingFaStrToFloat(StringGridColsStringsI)StringGridColsStringsYingFaRow:=FormatFloat('#####',YingFa)ShiFa:=YingFaendendforI:=toStringGridRowCountdobeginif(StringGridColsStringsI='')and(StringGridColsStringsI<>'')thenShiFa:=ShiFaStrToFloat(StringGridColsStringsI)endStringGridColsStringsShiFaRow:=FormatFloat('#####',ShiFa)end第页共页人事管理系统实训报告工资短信功能说明将当月出盘后的工资(只能发当月的)信息通过短信发给员工告知其本月实发工资和领取工资时间和银行。同时也能实现给某一特定的手机号码发送其它信息。设计思路刚开始设计的时候本想利用公司现有的短信数据库进行操作即将要发的内容插入到短信数据中去具体的发送可不管这样实现简单、方便。后来考虑到系统的通用性决定采用手机加电脑发送短信的方式即手机通过串口连接电脑短消息通过COM发送到手机上再发射出来这种做法虽然速度慢但是通用性好。适合一般的企业。但由于自己水平有限只能采用别人开发的一个发送短信的动态链加入到自己的程序中来目前此模块的稳定性不是很好影响整个系统的功能是以后必须改进的地方。屏幕格式设计工资短信界面源程序分析implementation{$R*DFM}=============DLL函数调用声明开始=========procedureConnectToMobilestdcallexternal'SMSLIBDLL'procedureDisconnectToMobilestdcallexternal'SMSLIBDLL'FunctionIsConnected:booleanstdcallexternal'SMSLIBDLL'FunctionIsBusy:booleanstdcallexternal'SMSLIBDLL'procedureInitMobilestdcallexternal'SMSLIBDLL'procedureSetSMC(SMC:PChar)stdcallexternal'SMSLIBDLL'第页共页人事管理系统实训报告FunctionSendSMS(phone,text:PChar):booleanstdcallexternal'SMSLIBDLL'FunctionReadSMS(Text,sendnum,smc,time:PChar):booleanstdcallexternal'SMSLIBDLL'=============DLL函数调用声明结束=========procedureTfrmgzdxButtonClick(Sender:TObject)beginConnectToMobile建立串口连接memoLinesAdd('已经发出连接命令。')sleep()等待秒等待手机准备好whilenotIsConnecteddo直到连接成功memoLinesAdd('已经连接到手机。')InitMobile初始设置memoLinesAdd('已经初始化。')SetSMC(PChar(SMCText))设置短信息中心号码memoLinesAdd('短信中心设置成功。')endprocedureTfrmgzdxButtonClick(Sender:TObject)信息发送按钮事件beginButtonEnabled:=FALSEifIsBusythen端口忙否beginbeepmemoLinesAdd('系统正忙请稍候再试')信息框显示ButtonEnabled:=TRUEexitendifSendSMS(PChar(PhoneText),PChar(Memotext))thenmemoLinesAdd('发送成功')elsememoLinesAdd('发送失败~')ButtonEnabled:=TRUEend第页共页人事管理系统实训报告procedureTfrmgzdxFormClose(Sender:TObjectvarAction:TCloseAction)窗口关闭事件beginifIsBusythenbeginmemoLinesAdd('系统正忙请稍后再退出')exitendDisconnectToMobileendprocedureTfrmgzdxButtonClick(Sender:TObject)工资短信事件beginifIsBusythen端口忙否beginbeepmemoLinesAdd('系统正忙请稍候再试')ButtonEnabled:=TRUEexitendifQuerygzdxactivethenQuerygzdxclose从工资短信表和员工资料表中QuerygzdxSQLClear取出手机号码、当月实发工资QuerygzdxSQLadd('selectayghygh,asjhmsjhm,bsfgzsfgzfromygzlba,gzdxbbwhereaygh=bygh')QuerygzdxopenQuerygzdxFirstwhilenotQuerygzdxeofdobeginifQuerygzdxfieldbyname('sjhm')asstring<>''then员工手机号码不为空beginifSendSMS(PChar(querygzdxFieldByName('sjhm')asstring),PChar('您本月实发工资为'QuerygzdxFieldByName('sfgz')asstringmemotext))发送内容thenmemoLinesAdd('发送成功')第页共页人事管理系统实训报告elsememoLinesAdd('发送失败~')QuerygzdxNext取下一条记录endelseQuerygzdxNext取下一条记录endendend(系统维护模块设计系统维护模块主要包括部门信息维护、职务信息维护、职称信息维护、工资账目维护、用户管理等几个方面。主要是对员工部门信息、职务信息、职称信息、工资帐目信息进行增加、删除等功能不能修改若要修改先删除再增加当然删除操作会使数据不一致系统会给以提示。用户管理主要实现新增、删除用户、修改密码等功能。基本参数维护实现流程,初始状态下输入框置为无效,点击新增按钮后在输入框中输入要新增的内容点击提交按钮将信息提交到数据库中。,选择某行后点击删除按钮系统提示删除将导致数据的不一致是否删除若点确定将此记录从数据库中删除。屏幕格式设计部门屏幕格式如下:职称、职务维护大体相同只是将部门两字做相应改动。部门参数维护界面第页共页人事管理系统实训报告用户管理功能说明为了保证系统安全系统初始化时建立一个系统用户其用户名和密码均为小字的system,只有此用户才具有用户管理的功能其它用户不能访问这个界面如果要新增用户、删除用户、修改密码只能以此用户登录当然系统用户可以修改自己的密码但不能删除自己。修改口令时要输入两次只要两次一致才能修改成功。数据来源用户口令表。屏幕格式设计用户管理界面新增用户界面密码修改界面(系统其它功能的实现打开计算器通过这条语句ShellExecute(handle,'open','calcexe',nil,nil,SWShowNormal)实现。打开写字板通过这条语句ShellExecute(handle,'open','notepadexe',nil,nil,SWShowNormal)实现窗口的层叠、平铺、极小化操作当同时打开几个子窗口时有时要将窗口平铺显示系统提供此功能。第页共页人事管理系统实训报告,平铺实现过程:TileMode:=tbVerticalTile,层叠实现过程:Cascade,极小化所有窗口过程:withfrmmaindobeginfori:=MDIchildcountdowntodoMDIChildreniWindowstate:=wsMinimizedend关于窗口的实现点击关于本系统菜单由里向外弹出关于本系统窗口当点击窗口时启动界面图像的淡入淡出果展现你人眼前给人一种赏心悦目的感觉。第五章毕业设计小结本系统通过自己的努力经过试用证明系统基本满足人事工资管理方面的需要。实现了人事管理、工资管理、出盘、代码维护、报表生成等功能给公司人事管理带来很多方便在界面上立求做到美观、在操作方面尽量做到满足用户使用习惯。但由于自己水平有限加上时间有限还存在很多不足:工资短信模块采用的是别人开发的动态链在发送短信上得借助别人的东西而且这个动态链还存在问题我没有把它放在系统上去用只是做为毕业设计提出来以后要自己开发短信发送模块。目前采用的是单机版已经不大适应发展趋势可能用不了多久又得更新为BS或CS。人事工资管理功能都不够强大只能满足暂时需要人事工资报表报表打印功能尚不够全面完善不能实现动态报表。无错误处理模块、帮助系统、用户操作权限管理。今后设想:继续完善此系统把该有的功能尽量实现使系统真正能为公司服务在工资短信上下功夫强大其功能开发自己的短信发送模块。使系统慢慢过度为BS体系统结构满足省公司人事工资管理的要求。第页共页人事管理系统实训报告致谢论文完成的前提是老师给我提供了舒适的工作、学习环境并给予我悉心的关怀与指导。在些表示衰心的感谢。老师认真负责的工作态度、严谨的治学风格使我深受启发同时也得感谢公司的领导、同事、朋友们给我的指导和帮助以及给我提供的良好的开发环境是他们的帮助下我才能独立的完成这个系统。在次感谢所有给予了我帮助的老师、朋友们~参考书目张春林《Delphi程序设计导学》清华大学出版社飞思科技《Delphi开发者手册》电子工业出版社飞思科技《Delphi数据库开发》电子工业出版社丁宝康《数据库原理》经济科学出版社何旭洪《PB数据库系统开发实例导航》人民邮电出版社第页共

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/73

delphi人事管理系统

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利