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

下载本文档

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

文档简介

1、“人力资源管理系统”项目开发实训说明一 项目开发实训进度说明2学时课要完成的任务:l 完成主界面的设计;l 数据库类DataBase的定义和使用;l 登陆界面的设计1)主界面设计如图2)数据库类Database的定义和使用说明:因为各个窗体均需要对数据库进行访问,可以把对数据库的一些操作通过一个类来实现,这样可以使对数据库的访问更加简单。类的定义请参考相应截图和代码类的定义Imports System.DataImports System.Data.OleDbImports System.ComponentModelPublic Class DataBase Implements IDispo

2、sable '实现接口IDisposable,主要用来“显示释放资源” Private OledbConn As OleDbConnection '数据库连接对象 Private trans As OleDbTransaction '事务处理对象 Dim OledbComm As OleDbCommand Public Shared sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hrmbook.mdb;Persist Security Info=False" Priva

3、te disposedValue As Boolean = False ' 检测冗余的调用 Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not Me.disposedValue Then If disposing Then ' TODO: 显式调用时释放非托管资源 If OledbConn Is Nothing = False Then OledbConn.Dispose() OledbConn = Nothing End If End If ' TODO: 释放共享的非托管资源 En

4、d If Me.disposedValue = True本部分代码自动添加的 End Sub#Region " IDisposable Support " ' Visual Basic 添加此代码是为了正确实现可处置模式。 Public Sub Dispose() Implements IDisposable.Dispose ' 不要更改此代码。请将清理代码放入上面的 Dispose(ByVal disposing As Boolean) 中。 Dispose(True) GC.SuppressFinalize(Me) End Sub#End Region

5、Public Sub Open() If OledbConn Is Nothing = True Then '建立数据库连接对象 OledbConn = New OleDbConnection(sConn) 'me.sConn '打开数据库连接 OledbConn.Open() End If End Sub Public Sub Close() '如果数据库连接对象不为空则关闭数据库连接 If OledbConn Is Nothing = False Then OledbConn.Close() End If End Sub Public Function Ru

6、nSelectSQL(ByVal sSQLString As System.String) As DataView '本过程的功能:对数据库的操作【按条件选择合适的记录】 Me.Open() Dim OledbDS As DataSet = New DataSet Dim OledbDA As OleDbDataAdapter = New OleDbDataAdapter(sSQLString, Me.OledbConn) OledbDA.Fill(OledbDS) Return OledbDS.Tables(0).DefaultView End Function Public Sub

7、 RunDelOrInsSQL(ByVal sSQLString As System.String) '本过程的功能:对数据库的操作【执行删除或插入操作】 Me.Open() Dim OledbComm As OleDbCommand = New OleDbCommand(sSQLString, Me.OledbConn) OledbComm.ExecuteNonQuery() End Sub Public Sub RunMulDelOrInsSQL(ByVal arr As ArrayList) '本过程的功能:对数据库的操作【批量的执行删除或插入操作,用到了事物处理的作用】

8、 Me.Open() trans = OledbConn.BeginTransaction Dim i As Integer Try For i = 0 To arr.Count - 1 OledbComm = New OleDbCommand(arr(i), Me.OledbConn) OledbComm.Transaction = trans OledbComm.ExecuteNonQuery() Next i trans.Commit() Catch ex As Exception trans.Rollback() Throw New Exception End Try End Sub

9、Public Function getResult(ByVal strSql As String) As OleDbDataReader '本过程的功能:对数据库的操作【按条件读出合适的记录】 Me.Open() OledbComm = New OleDbCommand(strSql, Me.OledbConn) Dim dr As OleDbDataReader = OledbComm.ExecuteReader() Return dr End FunctionEnd ClassDataBase类截图DataBase类截图事务是作为包执行的一组数据库命令。利用事务,您的应用程序将能够

10、在事务进程中的任何部分出现任何错误时中止(回滚)所有已在事务中执行的更改。例如,假设某个应用程序具有两个表,其中一个表示库存清单,而另一个表示订单。当向一个表添加订单时,需要在另一个表中减少相应的库存。如果对订单表的更新成功但对库存清单表的更新失败,则将损坏数据的完整性。为了确保两个表都成功进行更新,可以将两个数据命令都打包到一个事务中。如果一个表成功更新而另一个表未成功更新,则可以回滚整个事务,解决导致失败的问题,然后重试该事务。3)登陆界面设计及相应代码附主界面代码以及代码截图:(要把启动对象设置为Sub Main)Public Class frmMain Public Shared Su

11、b Main() Dim frml As New frmLogin frml.ShowDialog() '先显示登陆界面窗体,用户编号,密码等信息正确才允许显示主界面 If frml.bResult Then Dim fm As New frmMain fm.ShowDialog() End If End Sub Private Function GetInstanceState(ByVal name As String) As Boolean '本过程功能是判断某子窗体是否已存在 Dim i As Integer = Me.MdiChildren.Length For i =

12、 0 To Me.MdiChildren.Length - 1 If Me.MdiChildren(i).Name = name Then Me.MdiChildren(i).Focus() Return True End If Next Return False End Function '“机构编制管理(&X)”菜单下的三子菜单 '1)“机构设置及编码”-对应菜单的Name属性值:机构设置及编码ToolStripMenuItem '2)“机构详细信息”-对应菜单的Name属性值:机构详细信息ToolStripMenuItem '3)“退出”-对应菜单

13、的Name属性值:退出ToolStripMenuItem Private Sub 机构设置及编码ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 机构设置及编码ToolStripMenuItem.Click If GetInstanceState("frmDepManage") Then Exit Sub End If frmDepManage.MdiParent = Me 'frmDepManage是“机构设置及编码”模块窗体的Na

14、me属性值 frmDepManage.Show() End Sub Private Sub 机构详细信息ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 机构详细信息ToolStripMenuItem.Click If GetInstanceState("frmDepInfo") Then Exit Sub End If Dim childFrm As New frmDepInfo 'frmDepInfo是“机构详细信息”模块窗体的N

15、ame属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuItem.Click Application.Exit() End Sub '“人员信息管理(&Y)”菜单下的二子菜单 '1)“职员信息维护”-对应菜单的Name属性值:职员信息维护ToolStripMenuItem 

16、9;2)“职员信息查询”-对应菜单的Name属性值:职员信息查询ToolStripMenuItem Private Sub 职员信息维护ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 职员信息维护ToolStripMenuItem.Click If GetInstanceState("frmPeopleManage") Then Exit Sub End If Dim childFrm As New frmPeopleManage '

17、;frmPeopleManage是“职员信息维护”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 职员信息查询ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 职员信息查询ToolStripMenuItem.Click If GetInstanceState("frmPeopleQuery") Then Exit Sub End If Dim c

18、hildFrm As New frmPeopleQuery 'frmPeopleQuery是“职员信息查询”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub '"薪资福利管理(&Z)"菜单下的四子菜单 '1)“当月工资管理”-对应菜单的Name属性值:当月工资管理ToolStripMenuItem '2)“工资发放历史”-对应菜单的Name属性值:工资发放历史ToolStripMenuItem '3)“职员奖励管理”-对应菜单的Name属性值:职员奖励管理

19、ToolStripMenuItem '3)“职员惩罚管理”-对应菜单的Name属性值:职员惩罚管理ToolStripMenuItem Private Sub 当月工资管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 当月工资管理ToolStripMenuItem.Click If GetInstanceState("frmSalaryManage") Then Exit Sub End If Dim childFrm As New

20、 frmSalaryManage 'frmSalaryManage是“当月工资管理”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 工资发放历史ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 工资发放历史ToolStripMenuItem.Click If GetInstanceState("frmSalaryHis") Then Ex

21、it Sub End If Dim childFrm As New frmSalaryHis 'frmSalaryHis是“工资发放历史”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 职员奖励管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 职员奖励管理ToolStripMenuItem.Click If GetInstanceState("

22、frmPrize") Then Exit Sub End If Dim childFrm As New frmPrize 'frmPrize是“职员奖励管理”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 职员惩罚管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 职员惩罚管理ToolStripMenuItem.Click If GetInsta

23、nceState("frmPunishInfo") Then Exit Sub End If Dim childFrm As New frmPunishInfo 'frmPunishInfo是“职员惩罚管理”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End SubEnd Class附数据库介绍本系统的数据库描述如下:(注意表间关系的建立,请看提供的数据库文件hrmbook.mdb,同学们可直接使用)数据库表(7张表)1、 用户清单表字段名字段类型是否主键用户编号文本是部门文本否姓名文本否性别文本否密码文

24、本否2、 组织机构编码表字段名字段类型是否主键说明内部编号自动编号否类别文本否AbsIndex数字否记录总机构中索引ItemIndex数字否记录在同级结构中的索引ItemLevel数字否记录是第几个级别ParentIndex数字否记录的上级结构中索引类别号文本否单位编号文本是单位名称文本否拼音编码文本否单位地址文本否单位电话号码文本否开户银行文本否帐号文本否开户全称文本否3、 职员基本信息表字段名字段类型是否主键内部编号自动编号否职员编号文本是姓名文本否姓名简码文本否性别文本否出生日期数字否年龄数字否籍贯文本否民族文本否文化程度文本否毕业学校文本否健康状况文本否婚姻状况文本否身份证号码文本否家

25、庭电话文本否办公电话文本否手机文本否电子邮件地址文本否职工账号文本否单位编号文本否备注文本否4、 月工资统计表字段名字段类型是否主键日期数字否职员编号文本是基本工资数字否浮动工资数字否合同补数字否粮副补数字否房补数字否临时补数字否职务工资数字否工龄工资数字否考核工资数字否奖金数字否应发金额合计数字否房租数字否水电费数字否请假扣除数字否考勤扣除数字否罚款数字否住房公积金数字否医疗保险数字否养老保险数字否失业保险数字否生育保险数字否工伤保险数字否应扣金额合计数字否工资合计数字否个人所得税数字否实发金额数字否发放否文本否月份数字否5、 工资发放历史表字段名字段类型是否主键日期数字否职员编号文本是基本

26、工资数字否浮动工资数字否合同补数字否粮副补数字否房补数字否临时补数字否职务工资数字否工龄工资数字否考核工资数字否奖金数字否应发金额合计数字否房租数字否水电费数字否请假扣除数字否考勤扣除数字否罚款数字否住房公积金数字否医疗保险数字否养老保险数字否失业保险数字否生育保险数字否工伤保险数字否应扣金额合计数字否工资合计数字否个人所得税数字否实发金额数字否发放否文本否月份数字否6、 职员惩罚表字段名字段类型是否主键序号自动编号是职员编号文本否惩罚类型文本否惩罚金额数字否是否计入工资文本否惩罚原因文本否部门意见文本否惩罚日期数字否7、 职员奖励表字段名字段类型是否主键序号自动编号是职员编号文本否奖励类型文

27、本否奖励金额数字否是否计入工资文本否奖励原因文本否部门意见文本否奖励日期数字否注意:添加代码时要注意有些代码是有联系的,比如,某过程可能调用其它过程。那么被调过程写好后,主调过程调用时才是正确的。否则说某某过程没有声明。2学时课要完成的任务“机构编制管理(&X)”菜单下的二子菜单l “机构设置及编码”窗体模块frmDepManage的实现l “机构详细信息”frmDepInfo窗体模块的实现1)“机构设置及编码”窗体frmDepManage设计、代码及运行界面。其主要功能为:实现设置机构的层次关系【把数据库里的组织机构在TreeView控件里显示成层次关系】。 Public Class

28、 frmDepManage Private dvList As DataView Private Sub InitTree(ByRef nodes As TreeNodeCollection, ByVal sParentIndex As String) Try Dim tmpNode As TreeNode Dim absIndex As String Dim dvTemp As DataView = dvList.Table.DefaultView '选出数据源中ParentIndex为sParentIndex的数据行 Dim dataRows() As DataRow = dvLi

29、st.Table.Select("ParentIndex='" & sParentIndex & "'") '循环添加TreeNode For Each dr As DataRow In dataRows '获得节点所需数据 tmpNode = New TreeNode tmpNode.Text = dr("类别") absIndex= dr("AbsIndex") '添加节点 nodes.Add(tmpNode) '递归调用 InitTree(nod

30、es(nodes.Count - 1).Nodes, absIndex) Next Catch ex As Exception MessageBox.Show("初始化TreeViews失败") End Try End Sub Private Sub frmDepManage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim db As New DataBase Dim strSQL As String strSQL = "select

31、* from 组织机构编码表 order by absIndex" dvList = db.RunSelectSQL(strSQL) db.Dispose() InitTree(trvList.Nodes, "-1") End SubEnd Class2)“机构详细信息”窗体frmDepInfo设计、相应代码及运行界面其功能主要是维护组织机构的信息【比如:修改某信息后,点保存按钮保存到数据库】DataGridView控件注意:用代码绑定DataGridView控件【dgvDepInfo.DataSource=dt.DefaultView】2学时课要完成的任务 “人

32、员信息管理(&Y)”菜单下的二子菜单l “职员信息维护”窗体模块frmPeopleManage的实现l “职员信息查询”窗体模块frmPeopleQuery的实现1)“职员信息维护”窗体模块frmPeopleManage的设计、运行界面及代码其主要功能是用于输入和修改职员的资料代码如下:相应文本框控件和相应字段绑定,DataGridView控件用代码绑定Public Class frmPeopleManage Private iCurrentLine As Integer = -1 Private Sub SetDataGridView() Me.OleDbConnection1.Co

33、nnectionString = DataBase.sConn Me.OleDbDataAdapter1.Fill(Me.DataSet11) Dim dt As DataTable dt = Me.DataSet11.Tables("职员基本信息表") 'dt.DefaultView.AllowDelete = False 'dt.DefaultView.AllowNew = False dgvPeopleInfo.DataSource = dt.DefaultView End Sub Private Sub frmPeopleManage_Load(By

34、Val sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.OleDbDataAdapter1.Fill(Me.DataSet11, "职员基本信息表") Dim db As DataBase = New DataBase Dim strSQL As String = "select 单位编号 from" strSQL += " 组织机构编码表 order by 单位编号" Dim dv As DataView = db.RunSel

35、ectSQL(strSQL) For Each drv As DataRowView In dv Me.cbbDepCode.Items.Add(drv("单位编号") Next db.Dispose() SetDataGridView() '显示图片,把绑定“Images”字段的TextBox18藏在图片框Picturebox1控件的后面 If Me.TextBox18.Text.Trim.Length <> 0 Then Me.PictureBox1.Image = Image.FromFile(Me.TextBox18.Text.Trim) Els

36、e Me.PictureBox1.Image = Nothing End If End Sub Private Sub dgvPeopleInfo_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPeopleInfo.CellClick Try BindingContext(Me.DataSet11, "职员基本信息表").ResumeBinding() If iCurrentLine = -1 Or iCurren

37、tLine <> dgvPeopleInfo.CurrentCell.RowIndex Then iCurrentLine = dgvPeopleInfo.CurrentCell.RowIndex BindingContext(Me.DataSet11, "职员基本信息表").Position = dgvPeopleInfo.CurrentCell.RowIndex End If If dgvPeopleInfo.CurrentCell.RowIndex = Me.DataSet11.Tables("职员基本信息表").Rows.Count

38、Then BindingContext(Me.DataSet11, "职员基本信息表").SuspendBinding() End If '显示图片,把绑定“Images”字段的TextBox18藏在图片框Picturebox1控件的后面 If Me.TextBox18.Text.Trim.Length <> 0 Then Me.PictureBox1.Image = Image.FromFile(Me.TextBox18.Text.Trim) Else Me.PictureBox1.Image = Nothing End If Catch ex As

39、Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked If e.ClickedItem Is Me.tbbSave Then Dim row As Integer row = dgvPeopleInfo.CurrentCell

40、.RowIndex dgvPeopleInfo.CurrentCell = dgvPeopleInfo.Rows(row + 1).Cells(0) BindingContext(Me.DataSet11, "职员基本信息表").Position = dgvPeopleInfo.CurrentCell.RowIndex Try If Me.DataSet11.HasChanges Then Me.OleDbDataAdapter1.Update(Me.DataSet11) Me.DataSet11.Tables("职员基本信息表").DefaultVie

41、w.RowFilter = "" dgvPeopleInfo.CurrentCell = dgvPeopleInfo.Rows(row).Cells(0) MessageBox.Show("数据修改成功!") Else dgvPeopleInfo.CurrentCell = dgvPeopleInfo.Rows(row).Cells(0) MessageBox.Show("无修改的数据!") End If Catch ex As Exception MessageBox.Show("修改的数据出错!") End T

42、ry ElseIf e.ClickedItem Is Me.tbbDel Then Try Dim iRow As Integer iRow = dgvPeopleInfo.CurrentCell.RowIndex If MessageBox.Show("确认要删除此条记录吗?", "Confirm", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then Me.DataSet11.Tables("职员基本信息表").Rows(iRow).Delete() Els

43、e Exit Sub End If Try If Me.DataSet11.HasChanges Then Me.DataSet11.AcceptChanges() Me.OleDbDataAdapter1.Update(Me.DataSet11, "职员基本信息表") MessageBox.Show("数据删除成功!") Else MessageBox.Show("无修改的数据!") End If Catch ex As Exception MessageBox.Show("删除数据出错1! " & ex

44、.Message) End Try Catch ex As Exception MessageBox.Show("删除数据出错2!") End Try End If End Sub Private Sub cbbDepCode_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbbDepCode.TextChanged Dim db As DataBase = New DataBase Dim strSQL As String = "select 单位名称 from&

45、quot; strSQL += " 组织机构编码表 where 单位编号='" strSQL += Me.cbbDepCode.Text.Trim + "'" Dim dv As DataView = db.RunSelectSQL(strSQL) If dv.Table.Rows.Count <> 0 Then Me.TextBox16.Text = dv.Table.Rows(0)(0) Else Me.TextBox16.Text = "" End If End SubEnd Class2)“职员信息

46、查询”窗体模块frmPeopleQuery的设计、运行界面及代码其主要功能是查询职员的资料,但不能修改职员的信息。4学时课要完成的任务"薪资福利管理(&Z)"菜单下的四子菜单第1次课要完成的任务:l “当月工资管理”窗体模块功能的实现l “工资发放历史”窗体模块功能的实现第2次课要完成的任务: l “职员奖励管理”窗体模块功能的实现l “职员惩罚管理”窗体模块功能的实现第1次课要完成的任务2学时1)“当月工资管理”窗体frmSalaryManage的设计、运行界面和代码其主要功能是计算当月工资和工资发放其代码如下:Public Class frmSalaryMana

47、ge Private dvMaster As DataView Private iCurrentLine As Integer = -1 Private Sub LoadData() Dim strSQL As String = "select 姓名,日期,应发金额合计,应扣金额合计," strSQL += "工资合计,个人所得税,实发金额,发放否,a.职员编号" strSQL += " from 职员基本信息表 as a,月工资统计表 as b" strSQL += " where a.职员编号=b.职员编号 order by 内部编号" Dim db As DataBase = New DataBase dvMaster = db.RunSelectSQL(strSQL) dvMaster.AllowDelete = False dvMaster.AllowNew = False dvMaster.

温馨提示

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

评论

0/150

提交评论