人力资源管理系统说明.docx

上传人:牧羊曲112 文档编号:1897785 上传时间:2022-12-24 格式:DOCX 页数:34 大小:615.62KB
返回 下载 相关 举报
人力资源管理系统说明.docx_第1页
第1页 / 共34页
人力资源管理系统说明.docx_第2页
第2页 / 共34页
人力资源管理系统说明.docx_第3页
第3页 / 共34页
人力资源管理系统说明.docx_第4页
第4页 / 共34页
人力资源管理系统说明.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《人力资源管理系统说明.docx》由会员分享,可在线阅读,更多相关《人力资源管理系统说明.docx(34页珍藏版)》请在三一办公上搜索。

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 Private disposedValue As Boolean

3、 = 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: 释放共享的非托管资源 End If Me.disposedValue = True本部分代码自动添加的 End Su

4、b#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 Public Sub Open() If OledbConn Is Nothing = True Then 建立数据库连接对象 OledbCo

5、nn = 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 RunSelectSQL(ByVal sSQLString As System.String) As DataView 本过程的功能:对数据库的操作【按条件选择合适的记录】 Me.Ope

6、n() 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 RunDelOrInsSQL(ByVal sSQLString As System.String) 本过程的功能:对数据库的操作【执行删除或插入操作】 Me.Open() Dim Oledb

7、Comm As OleDbCommand = New OleDbCommand(sSQLString, Me.OledbConn) OledbComm.ExecuteNonQuery() End Sub Public Sub RunMulDelOrInsSQL(ByVal arr As ArrayList) 本过程的功能:对数据库的操作【批量的执行删除或插入操作,用到了事物处理的作用】 Me.Open() trans = OledbConn.BeginTransaction Dim i As Integer Try For i = 0 To arr.Count - 1 OledbComm =

8、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 Public Function getResult(ByVal strSql As String) As OleDbDataReader 本过程的功能:对数据库的操作【按条件读出合适的记录】 Me.Open()

9、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 Sub Main() Dim frml As New frmLogin frml.ShowDialog() 先显示登陆界面窗体,用户编号,密码等信息正确才允许显示主界面 If frml.bResult Then Dim fm

11、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 = 0 To Me.MdiChildren.Length - 1 If Me.MdiChildren(i).Name = name Then Me.MdiChildren(i).Focus() Return True End If Next R

12、eturn False End Function “机构编制管理(&X)”菜单下的三子菜单 1)“机构设置及编码”-对应菜单的Name属性值:机构设置及编码ToolStripMenuItem 2)“机构详细信息”-对应菜单的Name属性值:机构详细信息ToolStripMenuItem 3)“退出”-对应菜单的Name属性值:退出ToolStripMenuItem Private Sub 机构设置及编码ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 机构设置及

13、编码ToolStripMenuItem.Click If GetInstanceState(frmDepManage) Then Exit Sub End If frmDepManage.MdiParent = Me frmDepManage是“机构设置及编码”模块窗体的Name属性值 frmDepManage.Show() End Sub Private Sub 机构详细信息ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 机构详细信息ToolStripMen

14、uItem.Click If GetInstanceState(frmDepInfo) Then Exit Sub End If Dim childFrm As New frmDepInfo frmDepInfo是“机构详细信息”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuIte

15、m.Click Application.Exit() End Sub “人员信息管理(&Y)”菜单下的二子菜单 1)“职员信息维护”-对应菜单的Name属性值:职员信息维护ToolStripMenuItem 2)“职员信息查询”-对应菜单的Name属性值:职员信息查询ToolStripMenuItem Private Sub 职员信息维护ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 职员信息维护ToolStripMenuItem.Click If GetIn

16、stanceState(frmPeopleManage) Then Exit Sub End If Dim childFrm As New frmPeopleManage frmPeopleManage是“职员信息维护”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub Private Sub 职员信息查询ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 职员信息查询ToolStripMenu

17、Item.Click If GetInstanceState(frmPeopleQuery) Then Exit Sub End If Dim childFrm As New frmPeopleQuery frmPeopleQuery是“职员信息查询”模块窗体的Name属性值 childFrm.MdiParent = Me childFrm.Show() End Sub 薪资福利管理(&Z)菜单下的四子菜单 1)“当月工资管理”-对应菜单的Name属性值:当月工资管理ToolStripMenuItem 2)“工资发放历史”-对应菜单的Name属性值:工资发放历史ToolStripMenuIte

18、m 3)“职员奖励管理”-对应菜单的Name属性值:职员奖励管理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

19、childFrm As New 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 Exit

20、 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(frmPrize) The

21、n 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 GetInstanceState(frmPunishInfo)

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

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

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

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

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

27、ate 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 = dvList.Table.Select(ParentIndex= & sParentIndex & ) 循环

28、添加TreeNode For Each dr As DataRow In dataRows 获得节点所需数据 tmpNode = New TreeNode tmpNode.Text = dr(类别) absIndex= dr(AbsIndex) 添加节点 nodes.Add(tmpNode) 递归调用 InitTree(nodes(nodes.Count - 1).Nodes, absIndex) Next Catch ex As Exception MessageBox.Show(初始化TreeViews失败) End Try End Sub Private Sub frmDepManage

29、_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 * from 组织机构编码表 order by absIndex dvList = db.RunSelectSQL(strSQL) db.Dispose() InitTree(trvList.Nodes, -1) End SubEnd Class2)“机构详细信息”窗体frmDepInfo设计、相应代码及运

30、行界面其功能主要是维护组织机构的信息【比如:修改某信息后,点保存按钮保存到数据库】DataGridView控件注意:用代码绑定DataGridView控件【dgvDepInfo.DataSource=dt.DefaultView】2学时课要完成的任务 “人员信息管理(&Y)”菜单下的二子菜单l “职员信息维护”窗体模块frmPeopleManage的实现l “职员信息查询”窗体模块frmPeopleQuery的实现1)“职员信息维护”窗体模块frmPeopleManage的设计、运行界面及代码其主要功能是用于输入和修改职员的资料代码如下:相应文本框控件和相应字段绑定,DataGridView控

31、件用代码绑定Public Class frmPeopleManage Private iCurrentLine As Integer = -1 Private Sub SetDataGridView() Me.OleDbConnection1.ConnectionString = DataBase.sConn Me.OleDbDataAdapter1.Fill(Me.DataSet11) Dim dt As DataTable dt = Me.DataSet11.Tables(职员基本信息表) dt.DefaultView.AllowDelete = False dt.DefaultView.

32、AllowNew = False dgvPeopleInfo.DataSource = dt.DefaultView End Sub Private Sub frmPeopleManage_Load(ByVal 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 单位编号 fr

33、om strSQL += 组织机构编码表 order by 单位编号 Dim dv As DataView = db.RunSelectSQL(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 = Ima

34、ge.FromFile(Me.TextBox18.Text.Trim) Else 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 i

35、CurrentLine = -1 Or iCurrentLine 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 Then B

36、indingContext(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 Exception MessageBox.Show(ex.Mes

37、sage) 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.RowIndex dgvPeopleInfo.CurrentCell = dgvPeopleInfo.Rows(row + 1).Cells(0) BindingContext

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号