人力资源管理系统说明_第1页
人力资源管理系统说明_第2页
人力资源管理系统说明_第3页
人力资源管理系统说明_第4页
人力资源管理系统说明_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

年6月23日人力资源管理系统说明资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。”人力资源管理系统”项目开发实训说明一项目开发实训进度说明2学时课要完成的任务:完成主界面的设计;数据库类DataBase的定义和使用;登陆界面的设计1)主界面设计如图2)数据库类Database的定义和使用说明:因为各个窗体均需要对数据库进行访问,能够把对数据库的一些操作经过一个类来实现,这样能够使对数据库的访问更加简单。类的定义请参考相应截图和代码‘类的定义ImportsSystem.DataImportsSystem.Data.OleDbImportsSystem.ComponentModelPublicClassDataBaseImplementsIDisposable'实现接口IDisposable,主要用来”显示释放资源”PrivateOledbConnAsOleDbConnection'数据库连接对象PrivatetransAsOleDbTransaction'事务处理对象DimOledbCommAsOleDbCommandPublicSharedsConnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=hrmbook.mdb;PersistSecurityInfo=False"PrivatedisposedValueAsBoolean=False'检测冗余的调用ProtectedOverridableSubDispose(ByValdisposingAsBoolean)IfNotMe.disposedValueThenIfdisposingThen'TODO:显式调用时释放非托管资源IfOledbConnIsNothing=FalseThenOledbConn.Dispose()OledbConn=NothingEndIfEndIf'TODO:释放共享的非托管资源EndIfMe.disposedValue=True本部分代码自动添加的EndSub本部分代码自动添加的#Region"IDisposableSupport"'VisualBasic添加此代码是为了正确实现可处理模式。PublicSubDispose()ImplementsIDisposable.Dispose'不要更改此代码。请将清理代码放入上面的Dispose(ByValdisposingAsBoolean)中。Dispose(True)GC.SuppressFinalize(Me)EndSub#EndRegionPublicSubOpen()IfOledbConnIsNothing=TrueThen'建立数据库连接对象OledbConn=NewOleDbConnection(sConn)'me.sConn'打开数据库连接OledbConn.Open()EndIfEndSubPublicSubClose()'如果数据库连接对象不为空则关闭数据库连接IfOledbConnIsNothing=FalseThenOledbConn.Close()EndIfEndSubPublicFunctionRunSelectSQL(ByValsSQLStringAsSystem.String)AsDataView'本过程的功能:对数据库的操作【按条件选择合适的记录】Me.Open()DimOledbDSAsDataSet=NewDataSetDimOledbDAAsOleDbDataAdapter=NewOleDbDataAdapter(sSQLString,Me.OledbConn)OledbDA.Fill(OledbDS)ReturnOledbDS.Tables(0).DefaultViewEndFunctionPublicSubRunDelOrInsSQL(ByValsSQLStringAsSystem.String)'本过程的功能:对数据库的操作【执行删除或插入操作】Me.Open()DimOledbCommAsOleDbCommand=NewOleDbCommand(sSQLString,Me.OledbConn)OledbComm.ExecuteNonQuery()EndSubPublicSubRunMulDelOrInsSQL(ByValarrAsArrayList)'本过程的功能:对数据库的操作【批量的执行删除或插入操作,用到了事物处理的作用】Me.Open()trans=OledbConn.BeginTransactionDimiAsIntegerTryFori=0Toarr.Count-1OledbComm=NewOleDbCommand(arr(i),Me.OledbConn)OledbComm.Transaction=transOledbComm.ExecuteNonQuery()Nextitrans.Commit()CatchexAsExceptiontrans.Rollback()ThrowNewExceptionEndTryEndSubPublicFunctiongetResult(ByValstrSqlAsString)AsOleDbDataReader'本过程的功能:对数据库的操作【按条件读出合适的记录】Me.Open()OledbComm=NewOleDbCommand(strSql,Me.OledbConn)DimdrAsOleDbDataReader=OledbComm.ExecuteReader()ReturndrEndFunctionEndClassDataBase类截图DataBase类截图DataBase类截图DataBase类截图事务是作为包执行的一组数据库命令。利用事务,您的应用程序将能够在事务进程中的任何部分出现任何错误时中止(回滚)所有已在事务中执行的更改。例如,假设某个应用程序具有两个表,其中一个表示库存清单,而另一个表示订单。当向一个表添加订单时,需要在另一个表中减少相应的库存。如果对订单表的更新成功但对库存清单表的更新失败,则将损坏数据的完整性。为了确保两个表都成功进行更新,能够将两个数据命令都打包到一个事务中。如果一个表成功更新而另一个表未成功更新,则能够回滚整个事务,解决导致失败的问题,然后重试该事务。3)登陆界面设计及相应代码附主界面代码以及代码截图:(要把启动对象设置为SubMain)PublicClassfrmMainPublicSharedSubMain()DimfrmlAsNewfrmLoginfrml.ShowDialog()'先显示登陆界面窗体,用户编号,密码等信息正确才允许显示主界面Iffrml.bResultThenDimfmAsNewfrmMainfm.ShowDialog()EndIfEndSubPrivateFunctionGetInstanceState(ByValnameAsString)AsBoolean'本过程功能是判断某子窗体是否已存在DimiAsInteger=Me.MdiChildren.LengthFori=0ToMe.MdiChildren.Length-1IfMe.MdiChildren(i).Name=nameThenMe.MdiChildren(i).Focus()ReturnTrueEndIfNextReturnFalseEndFunction'”机构编制管理(&X)”菜单下的三子菜单'1)”机构设置及编码”对应菜单的Name属性值:机构设置及编码ToolStripMenuItem'2)”机构详细信息”对应菜单的Name属性值:机构详细信息ToolStripMenuItem'3)”退出”对应菜单的Name属性值:退出ToolStripMenuItemPrivateSub机构设置及编码ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles机构设置及编码ToolStripMenuItem.ClickIfGetInstanceState("frmDepManage")ThenExitSubEndIffrmDepManage.MdiParent=Me'frmDepManage是”机构设置及编码”模块窗体的Name属性值frmDepManage.Show()EndSubPrivateSub机构详细信息ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles机构详细信息ToolStripMenuItem.ClickIfGetInstanceState("frmDepInfo")ThenExitSubEndIfDimchildFrmAsNewfrmDepInfo'frmDepInfo是”机构详细信息”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSubPrivateSub退出ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles退出ToolStripMenuItem.ClickApplication.Exit()EndSub'”人员信息管理(&Y)”菜单下的二子菜单'1)”职员信息维护”对应菜单的Name属性值:职员信息维护ToolStripMenuItem'2)”职员信息查询”对应菜单的Name属性值:职员信息查询ToolStripMenuItemPrivateSub职员信息维护ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles职员信息维护ToolStripMenuItem.ClickIfGetInstanceState("frmPeopleManage")ThenExitSubEndIfDimchildFrmAsNewfrmPeopleManage'frmPeopleManage是”职员信息维护”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSubPrivateSub职员信息查询ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles职员信息查询ToolStripMenuItem.ClickIfGetInstanceState("frmPeopleQuery")ThenExitSubEndIfDimchildFrmAsNewfrmPeopleQuery'frmPeopleQuery是”职员信息查询”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSub'"薪资福利管理(&Z)"菜单下的四子菜单'1)”当月工资管理”对应菜单的Name属性值:当月工资管理ToolStripMenuItem'2)”工资发放历史”对应菜单的Name属性值:工资发放历史ToolStripMenuItem'3)”职员奖励管理”对应菜单的Name属性值:职员奖励管理ToolStripMenuItem'3)”职员惩罚管理”对应菜单的Name属性值:职员惩罚管理ToolStripMenuItemPrivateSub当月工资管理ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles当月工资管理ToolStripMenuItem.ClickIfGetInstanceState("frmSalaryManage")ThenExitSubEndIfDimchildFrmAsNewfrmSalaryManage'frmSalaryManage是”当月工资管理”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSubPrivateSub工资发放历史ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles工资发放历史ToolStripMenuItem.ClickIfGetInstanceState("frmSalaryHis")ThenExitSubEndIfDimchildFrmAsNewfrmSalaryHis'frmSalaryHis是”工资发放历史”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSubPrivateSub职员奖励管理ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles职员奖励管理ToolStripMenuItem.ClickIfGetInstanceState("frmPrize")ThenExitSubEndIfDimchildFrmAsNewfrmPrize'frmPrize是”职员奖励管理”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSubPrivateSub职员惩罚管理ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles职员惩罚管理ToolStripMenuItem.ClickIfGetInstanceState("frmPunishInfo")ThenExitSubEndIfDimchildFrmAsNewfrmPunishInfo'frmPunishInfo是”职员惩罚管理”模块窗体的Name属性值childFrm.MdiParent=MechildFrm.Show()EndSubEndClass附数据库介绍本系统的数据库描述如下:(注意表间关系的建立,请看提供的数据库文件hrmbook.mdb,同学们可直接使用)数据库表(7张表)用户清单表字段名字段类型是否主键用户编号文本是部门文本否姓名文本否性别文本否密码文本否组织机构编码表字段名字段类型是否主键说明内部编号自动编号否类别文本否AbsIndex数字否记录总机构中索引ItemIndex数字否记录在同级结构中的索引ItemLevel数字否记录是第几个级别ParentIndex数字否记录的上级结构中索引类别号文本否单位编号文本是单位名称文本否拼音编码文本否单位地址文本否单位电话号码文本否开户银行文本否帐号文本否开户全称文本否职员基本信息表字段名字段类型是否主键内部编号自动编号否职员编号文本是姓名文本否姓名简码文本否性别文本否出生日期数字否年龄数字否籍贯文本否民族文本否文化程度文本否毕业学校文本否健康状况文本否婚姻状况文本否身份证号码文本否家庭电话文本否办公电话文本否手机文本否电子邮件地址文本否职工账号文本否单位编号文本否备注文本否月工资统计表字段名字段类型是否主键日期数字否职员编号文本是基本工资数字否浮动工资数字否合同补数字否粮副补数字否房补数字否临时补数字否职务工资数字否工龄工资数字否考核工资数字否奖金数字否应发金额合计数字否房租数字否水电费数字否请假扣除数字否考勤扣除数字否罚款数字否住房公积金数字否医疗保险数字否养老保险数字否失业保险数字否生育保险数字否工伤保险数字否应扣金额合计数字否工资合计数字否个人所得税数字否实发金额数字否发放否文本否月份数字否工资发放历史表字段名字段类型是否主键日期数字否职员编号文本是基本工资数字否浮动工资数字否合同补数字否粮副补数字否房补数字否临时补数字否职务工资数字否工龄工资数字否考核工资数字否奖金数字否应发金额合计数字否房租数字否水电费数字否请假扣除数字否考勤扣除数字否罚款数字否住房公积金数字否医疗保险数字否养老保险数字否失业保险数字否生育保险数字否工伤保险数字否应扣金额合计数字否工资合计数字否个人所得税数字否实发金额数字否发放否文本否月份数字否职员惩罚表字段名字段类型是否主键序号自动编号是职员编号文本否惩罚类型文本否惩罚金额数字否是否计入工资文本否惩罚原因文本否部门意见文本否惩罚日期数字否职员奖励表字段名字段类型是否主键序号自动编号是职员编号文本否奖励类型文本否奖励金额数字否是否计入工资文本否奖励原因文本否部门意见文本否奖励日期数字否注意:添加代码时要注意有些代码是有联系的,比如,某过程可能调用其它过程。那么被调过程写好后,主调过程调用时才是正确的。否则说某某过程没有声明。2学时课要完成的任务”机构编制管理(&X)”菜单下的二子菜单”机构设置及编码”窗体模块frmDepManage的实现”机构详细信息”frmDepInfo窗体模块的实现1)”机构设置及编码”窗体frmDepManage设计、代码及运行界面。其主要功能为:实现设置机构的层次关系【把数据库里的组织机构在TreeView控件里显示成层次关系】。PublicClassfrmDepManagePrivatedvListAsDataViewPrivateSubInitTree(ByRefnodesAsTreeNodeCollection,ByValsParentIndexAsString)TryDimtmpNodeAsTreeNodeDimabsIndexAsStringDimdvTempAsDataView=dvList.Table.DefaultView'选出数据源中ParentIndex为sParentIndex的数据行DimdataRows()AsDataRow=dvList.Table.Select("ParentIndex='"&sParentIndex&"'")'循环添加TreeNodeForEachdrAsDataRowIndataRows'获得节点所需数据tmpNode=NewTreeNodetmpNode.Text=dr("类别")absIndex=dr("AbsIndex")'添加节点nodes.Add(tmpNode)'递归调用InitTree(nodes(nodes.Count-1).Nodes,absIndex)NextCatchexAsExceptionMessageBox.Show("初始化TreeViews失败")EndTryEndSubPrivateSubfrmDepManage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimdbAsNewDataBaseDimstrSQLAsStringstrSQL="select*from组织机构编码表orderbyabsIndex"dvList=db.RunSelectSQL(strSQL)db.Dispose()InitTree(trvList.Nodes,"-1")EndSubEndClass2)”机构详细信息”窗体frmDepInfo设计、相应代码及运行界面其功能主要是维护组织机构的信息【比如:修改某信息后,点保存按钮保存到数据库】DataGridView控件DataGridView控件注意:用代码绑定DataGridView控件【dgvDepInfo.DataSource=dt.DefaultView】2学时课要完成的任务”人员信息管理(&Y)”菜单下的二子菜单”职员信息维护”窗体模块frmPeopleManage的实现”职员信息查询”窗体模块frmPeopleQuery的实现1)”职员信息维护”窗体模块frmPeopleManage的设计、运行界面及代码其主要功能是用于输入和修改职员的资料代码如下:相应文本框控件和相应字段绑定,DataGridView控件用代码绑定PublicClassfrmPeopleManagePrivateiCurrentLineAsInteger=-1PrivateSubSetDataGridView()Me.OleDbConnection1.ConnectionString=DataBase.sConnMe.OleDbDataAdapter1.Fill(Me.DataSet11)DimdtAsDataTabledt=Me.DataSet11.Tables("职员基本信息表")'dt.DefaultView.AllowDelete=False'dt.DefaultView.AllowNew=FalsedgvPeopleInfo.DataSource=dt.DefaultViewEndSubPrivateSubfrmPeopleManage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMe.OleDbDataAdapter1.Fill(Me.DataSet11,"职员基本信息表")DimdbAsDataBase=NewDataBaseDimstrSQLAsString="select单位编号from"strSQL+="组织机构编码表orderby单位编号"DimdvAsDataView=db.RunSelectSQL(strSQL)ForEachdrvAsDataRowViewIndvMe.cbbDepCode.Items.Add(drv("单位编号"))Nextdb.Dispose()SetDataGridView()'显示图片,把绑定”Images”字段的TextBox18藏在图片框Picturebox1控件的后面IfMe.TextBox18.Text.Trim.Length<>0ThenMe.PictureBox1.Image=Image.FromFile(Me.TextBox18.Text.Trim)ElseMe.PictureBox1.Image=NothingEndIfEndSubPrivateSubdgvPeopleInfo_CellClick(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesdgvPeopleInfo.CellClickTryBindingContext(Me.DataSet11,"职员基本信息表").ResumeBinding()IfiCurrentLine=-1OriCurrentLine<>dgvPeopleInfo.CurrentCell.RowIndexTheniCurrentLine=dgvPeopleInfo.CurrentCell.RowIndexBindingContext(Me.DataSet11,"职员基本信息表").Position=dgvPeopleInfo.CurrentCell.RowIndexEndIfIfdgvPeopleInfo.CurrentCell.RowIndex=Me.DataSet11.Tables("职员基本信息表").Rows.CountThenBindingContext(Me.DataSet11,"职员基本信息表").SuspendBinding()EndIf'显示图片,把绑定”Images”字段的TextBox18藏在图片框Picturebox1控件的后面IfMe.TextBox18.Text.Trim.Length<>0ThenMe.PictureBox1.Image=Image.FromFile(Me.TextBox18.Text.Trim)ElseMe.PictureBox1.Image=NothingEndIfCatchexAsExceptionMessageBox.Show(ex.Message)EndTryEndSubPrivateSubToolStrip1_ItemClicked(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.ToolStripItemClickedEventArgs)HandlesToolStrip1.ItemClickedIfe.ClickedItemIsMe.tbbSaveThenDimrowAsIntegerrow=dgvPeopleInfo.CurrentCell.RowIndexdgvPeopleInfo.CurrentCell=dgvPeopleInfo.Rows(row+1).Cells(0)BindingContext(Me.DataSet11,"职员基本信息表").Position=dgvPeopleInfo.CurrentCell.RowIndexTryIfMe.DataSet11.HasChangesThenMe.OleDbDataAdapter1.Update(Me.DataSet11)Me.DataSet11.Tables("职员基本信息表").DefaultView.RowFilter=""dgvPeopleInfo.CurrentCell=dgvPeopleInfo.Rows(row).Cells(0)MessageBox.Show("数据修改成功!")ElsedgvPeopleInfo.CurrentCell=dgvPeopleInfo.Rows(row).Cells(0)MessageBox.Show("无修改的数据!")EndIfCatchexAsExceptionMessageBox.Show("修改的数据出错!")EndTryElseIfe.ClickedItemIsMe.tbbDelThenTryDimiRowAsIntegeriRow=dgvPeopleInfo.CurrentCell.RowIndexIfMessageBox.Show("确认要删除此条记录吗?","Confirm",MessageBoxButtons.YesNo)=Windows.Forms.DialogResult.YesThenMe.DataSet11.Tables("职员基本信息表").Rows(iRow).Delete()ElseExitSubEndIfTryIfMe.DataSet11.HasChangesThenMe.DataSet11.AcceptChanges()Me.OleDbDataAdapter1.Update(Me.DataSet11,"职员基本信息表")MessageBox.Show("数据删除成功!")ElseMessageBox.Show("无修改的数据!")EndIfCatchexAsExceptionMessageBox.Show("删除数据出错1!"&ex.Message)EndTryCatchexAsExceptionMessageBox.Show("删除数据出错2!")EndTryEndIfEndSubPrivateSubcbbDepCode_TextChanged(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlescbbDepCode.TextChangedDimdbAsDataBase=NewDataBaseDimstrSQLAsString="select单位名称from"strSQL+="组织机构编码表where单位编号='"strSQL+=Me.cbbDepCode.Text.Trim+"'"DimdvAsDataView=db.RunSelectSQL(strSQL)Ifdv.Table.Rows.Count<>0ThenMe.TextBox16.Text=dv.Table.Rows(0)(0)ElseMe.TextBox16.Text=""EndIfEndSubEndClass2)”职员信息查询”窗体模块frmPeopleQuery的设计、运行界面及代码其主要功能是查询职员的资料,但不能修改职员的信息。4学时课要完成的任务"薪资福利管理(&Z)"菜单下的四子菜单第1次课要完成的任务:”当月工资管理”窗体模块功能的实现”工资发放历史”窗体模块功能的实现第2次课要完成的任务:”职员奖励管理”窗体模块功能的实现”职员惩罚管理”窗体模块功能的实现第1次课要完成的任务2学时1)”当月工资管理”窗体frmSalaryManage的设计、运行界面和代码其主要功能是计算当月工资和工资发放其代码如下:PublicClassfrmSalaryManagePrivatedvMasterAsDataViewPrivateiCurrentLineAsInteger=-1PrivateSubLoadData()DimstrSQLAsString="select姓名,日期,应发金额合计,应扣金额合计,"strSQL+="工资合计,个人所得税,实发金额,发放否,a.职员编号"strSQL+="from职员基本信息表asa,月工资统计表asb"strSQL+="wherea.职员编号=b.职员编号orderby内部编号"DimdbAsDataBase=NewDataBasedvMaster=db.RunSelectSQL(strSQL)dvMaster.AllowDelete=FalsedvMaster.AllowNew=FalsedvMaster.AllowEdit=FalsedgvSalaryInfo.DataSource=dvMaster'控制某列的列宽ForiAsInteger=0To8'根据内容调整列宽Me.dgvSalaryInfo.Columns(i).AutoSizeMode=DataGridViewAutoSizeColumnMode.AllCellsNext'控制某列是否能够点列标题进行排序ForiAsInteger=0To8'不能够点列标题进行排序,只能靠编程Me.dgvSalaryInfo.Columns(i).SortMode=DataGridViewColumnSortMode.NotSortableNextdb.Dispose()Me.OleDbConnection1.ConnectionString=DataBase.sConnMe.OleDbDataAdapter1.Fill(Me.DataSet11,"月工资统计表")EndSubPrivateSubfrmSalaryManage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load'把新职工信息插入到工资统计表中DimstrSQLAsString="insertinto月工资统计表(职员编号)select职员编号from职员基本信息表ashwhereh.职员编号notin(select职员编号from月工资统计表)"DimdbAsDataBase=NewDataBasedb.RunDelOrInsSQL(strSQL)db.Dispose()LoadData()EndSubPrivateSubbtnCalSalary_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnCalSalary.ClickIfMe.txbNowSalary.Text.Trim.Length<>6ThenMessageBox.Show("请输入正确的年月数据,比如:03,表示,03表示3月份")ExitSubEndIfDimmonthAsInteger=Convert.ToInt32(Me.txbNowSalary.Text.Trim)DimdbAsDataBase=NewDataBaseDimarrAsArrayList=NewArrayListDimstrSQLAsString="selectsum(奖励金额)as奖金,i.职员编号as职员编号from职员奖励表asiwherei.是否计入工资='是'andi.奖励日期>"+Convert.ToString(month*100)+"andi.奖励日期<"+Convert.ToString((month+1)*100)+"groupbyi.职员编号"DimdrAsOleDb.OleDbDataReader=db.getResult(strSQL)While(dr.Read())DimjineAsDouble=dr.GetDouble(0)DimidAsString=dr.GetString(1)strSQL="Update月工资统计表set奖金="+jine.ToString()+"where职员编号='"&id&"'and日期="&montharr.Add(strSQL)EndWhiledr.Close()strSQL="update月工资统计表set奖金=0where奖金isnull"arr.Add(strSQL)strSQL="selectsum(惩罚金额)as罚金,i.职员编号as职员编号from职员惩罚表asiwherei.是否计入工资='是'andi.惩罚日期>"+Convert.ToString(month*100)+"andi.惩罚日期<"+Convert.ToString((month+1)*100)+"groupbyi.职员编号"dr=db.getResult(strSQL)While(dr.Read())DimjineAsString=dr.GetDouble(0)DimidAsString=dr.GetString(1)strSQL="update月工资统计表set罚款="+jine.ToString()+"where职员编号='"&id&"'and日期="&montharr.Add(strSQL)EndWhiledr.Close()strSQL="update月工资统计表set罚款=0where罚款isnull"&""arr.Add(strSQL)strSQL="update月工资统计表set应扣金额合计=房租+水电费+请假扣除+罚款+考勤扣除+住房公积金+医疗保险+养老保险+失业保险"arr.Add(strSQL)strSQL="update月工资统计表set应发金额合计=基本工资+浮动工资+合同补+粮副补+房补+临时补+职务工资+工龄工资+考核工资+奖金"arr.Add(strSQL)strSQL="update月工资统计表set工资合计=应发金额合计-应扣金额合计"arr.Add(strSQL)strSQL="update月工资统计表set实发金额=工资合计"arr.Add(strSQL)db.RunMulDelOrInsSQL(arr)db.Dispose()'重新加载数据LoadData()MsgBox("当月工资计算完毕,能够发放了!")EndSubPrivateSubdgvSalaryInfo_CellClick(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesdgvSalaryInfo.CellClickIfiCurrentLine=-1OriCurrentLine<>dgvSalaryInfo.CurrentCell.RowIndexTheniCurrentLine=dgvSalaryInfo.CurrentCell.RowIndexBindingContext(Me.DataSet11,"月工资统计表").Position=dgvSalaryInfo.CurrentCell.RowIndexEndIfEndSubPrivateSubToolStripButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButton1.ClickDimrowAsIntegerTryrow=Me.dgvSalaryInfo.CurrentCell.RowIndexMe.dgvSalaryInfo.CurrentCell=dgvSalaryInfo.Rows((row+1)ModdvMaster.Table.Rows.Count).Cells(0)'保证要修改或录入的记录完毕(位置改变,意味该记录录入完毕)BindingContext(Me.DataSet11,"月工资统计表").Position=dgvSalaryInfo.CurrentCell.RowIndexIfMe.DataSet11.HasChanges(DataRowState.Modified)Then'MsgBox("修改记录")Me.OleDbDataAdapter1.Update(Me.DataSet11)Me.DataSet11.Tables("月工资统计表").DefaultView.RowFilter=""Me.dgvSalaryInfo.CurrentCell=Me.dgvSalaryInfo.Rows(row).Cells(0)LoadData()MessageBox.Show("修改成功")ElseMessageBox.Show("无修改的数据!")EndIfCatchexAsExceptionMe.dgvSalaryInfo.CurrentCell=Me.dgvSalaryInfo.Rows(row).Cells(0)MessageBox.Show("修改的数据出错"&ex.Message)EndTryEndSubPrivateSubbtnGiveSalary_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnGiveSalary.ClickIfMessageBox.Show("是否发放?","Confirm",_MessageBoxButtons.YesNo)=Windows.Forms.DialogResult.YesThenDimdbAsDataBase=NewDataBaseDimidAsString=dvMaster.Table.Rows(dgvSalaryInfo.CurrentCell.RowIndex)("职员编号")DimarrAsArrayList=NewArrayListDimstrSQLAsString="update月工资统计表set发放否='是'where职员编号='"&id&"'"arr.Add(strSQL)strSQL="insertinto工资发放历史表select*from月工资统计表where职员编号='"&id&"'"arr.Add(strSQL)db.RunMulDelOrInsSQL(arr)LoadData()ElseExitSubEndIfEndSubEndClass2)”工资发放历史”窗体frmSlaryHis的设计、运行界面和代码其主要功能用于查询职员历史月份的工资其代码如下:第2次课要完成的任务2学时1)”职员奖励管理”窗体frmPrize的设计、运行界面和相应代码其主要功能用于设置职员的奖励信息其代码如下:PublicClassfrmPrizePrivateSubSetDataGridView()Me.OleDbConnection1.ConnectionString=DataBase.sConnMe.OleDbDataAdapter1.Fill(Me.DataSet11)dgvPrizeInfo.DataSource=Me.DataSet11.Tables("职员奖励表").DefaultViewEndSubPrivateSubfrmPrize_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadSetDataGridView()EndSubPrivateSubtsbSave_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlestsbSave.ClickDimrowAsIntegerrow=Me.dgvPrizeInfo.CurrentCell.RowIndexMe.dgvPrizeInfo.CurrentCell=Me.dgvPrizeInfo.Rows(row+1).Cells(0)TryIfMe.DataSet11.HasChangesThenMe.OleDbDataAdapter1.Update(Me.DataSet11)Me.DataSet11.Tables("职员奖励表").DefaultView.RowFilter=""MessageBox.Show("数据修改成功!")ElseMessageBox.Show("无修改的数据!")EndIfCatchexAsExceptionMessageBox.Show("修改的数据出错!"&ex.Message)EndTryEndSubPrivateSubtsbDel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlestsbDel.ClickTryDimrowAsIntegerrow=Me.dgvPrizeInfo.CurrentCell.RowIndexIfMessageBox.Show("你确认要删除此条记录吗?","确认",MessageBoxButtons.YesNo)=Windows.Forms.DialogResult.YesThenMe.DataSet11.Tables("职员奖励表").Rows(row).Delete()ElseExitSubEndIfTryIfMe.DataSet11.HasChangesThenMe.DataSet11.AcceptChanges()Me.OleDbDataAdapter1.Update(Me.DataSet11)

温馨提示

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

评论

0/150

提交评论