2022年人力资源管理系统说明

上传人:仙*** 文档编号:179602012 上传时间:2023-01-02 格式:DOC 页数:34 大小:785KB
返回 下载 相关 举报
2022年人力资源管理系统说明_第1页
第1页 / 共34页
2022年人力资源管理系统说明_第2页
第2页 / 共34页
2022年人力资源管理系统说明_第3页
第3页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
“人力资源治理系统”工程开发实训说明一 工程开发实训进度说明2学时课要完成的任务:l 完成主界面的设计;l 数据库类DataBase的定义和使用;l 登陆界面的设计1)主界面设计如图2)数据库类Database的定义和使用说明:由于各个窗体均需要对数据库进展访咨询,能够把对数据库的一些操作通过一个类来实现,如此能够使对数据库的访咨询更加简单。类的定义请参考相应截图和代码类的定义Imports System.DataImports System.Data.OleDbImports System.ComponentModelPublic Class DataBase Implements IDisposable 实现接口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 = 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 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 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 RunSelectSQL(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 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) 本过程的功能:对数据库的操作【批量的执行删除或插入操作,用到了事物处理的作用】 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 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类截图事务是作为包执行的一组数据库命令。利用事务,您的应用程序将能够在事务进程中的任何部分出现任何错误时中止(回滚)所有已在事务中执行的更改。例如,假设某个应用程序具有两个表,其中一个表示库存清单,而另一个表示订单。当向一个表添加订单时,需要在另一个表中减少相应的库存。假如对订单表的更新成功但对库存清单表的更新失败,则将损坏数据的完好性。为了确保两个表都成功进展更新,能够将两个数据命令都打包到一个事务中。假如一个表成功更新而另一个表未成功更新,则能够回滚整个事务,处理导致失败的咨询题,然后重试该事务。3)登陆界面设计及相应代码附主界面代码以及代码截图:(要把启动对象设置为Sub Main)Public Class frmMain Public Shared Sub 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 = 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)“退出”-对应菜单的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是“机构设置及编码”模块窗体的Name属性值 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是“机构详细信息”模块窗体的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 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 GetInstanceState(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 职员信息查询ToolStripMenuItem.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属性值:工资发放历史ToolStripMenuItem 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 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 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) 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 GetInstanceState(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、 用户清单表字段名字段类型是否主键用户编号文本是部门文本否姓名文本否性别文本否密码文本否2、 组织机构编码表字段名字段类型是否主键说明内部编号自动编号否类别文本否AbsIndex数字否记录总机构中索引ItemIndex数字否记录在同级构造中的索引ItemLevel数字否记录是第几个级别ParentIndex数字否记录的上级构造中索引类别号文本否单位编号文本是单位名称文本否拼音编码文本否单位地址文本否单位号码文本否开户银行文本否帐号文本否开户全称文本否3、 职员根本信息表字段名字段类型是否主键内部编号自动编号否职员编号文本是姓名文本否姓名简码文本否性别文本否出生日期数字否年龄数字否籍贯文本否民族文本否文化程度文本否毕业学校文本否健康情况文本否婚姻情况文本否身份证号码文本否家庭文本否办公文本否文本否电子邮件地址文本否职工账号文本否单位编号文本否备注文本否4、 月工资统计表字段名字段类型是否主键日期数字否职员编号文本是根本工资数字否浮开工资数字否合同补数字否粮副补数字否房补数字否临时补数字否职务工资数字否工龄工资数字否考核工资数字否奖金数字否应发金额合计数字否房租数字否水电费数字否请假扣除数字否考勤扣除数字否罚款数字否住房公积金数字否医疗保险数字否养老保险数字否失业保险数字否生育保险数字否工伤保险数字否应扣金额合计数字否工资合计数字否个人所得税数字否实发金额数字否发放否文本否月份数字否5、 工资发放历史表字段名字段类型是否主键日期数字否职员编号文本是根本工资数字否浮开工资数字否合同补数字否粮副补数字否房补数字否临时补数字否职务工资数字否工龄工资数字否考核工资数字否奖金数字否应发金额合计数字否房租数字否水电费数字否请假扣除数字否考勤扣除数字否罚款数字否住房公积金数字否医疗保险数字否养老保险数字否失业保险数字否生育保险数字否工伤保险数字否应扣金额合计数字否工资合计数字否个人所得税数字否实发金额数字否发放否文本否月份数字否6、 职员惩处表字段名字段类型是否主键序号自动编号是职员编号文本否惩处类型文本否惩处金额数字否是否计入工资文本否惩处缘故文本否部门意见文本否惩处日期数字否7、 职员奖励表字段名字段类型是否主键序号自动编号是职员编号文本否奖励类型文本否奖励金额数字否是否计入工资文本否奖励缘故文本否部门意见文本否奖励日期数字否留意:添加代码时要留意有些代码是有联络的,比方,某过程可能调用其它过程。那么被调过程写好后,主调过程调用时才是正确的。否则说某某过程没有声明。2学时课要完成的任务“机构编制治理(X)”菜单下的二子菜单l “机构设置及编码”窗体模块frmDepManage的实现l “机构详细信息”frmDepInfo窗体模块的实现1)“机构设置及编码”窗体frmDepManage设计、代码及运转界面。其主要功能为:实现设置机构的层次关系【把数据库里的组织机构在TreeView控件里显示成层次关系】。 Public Class 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 = dvList.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(nodes(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 * 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学时课要完成的任务 “人员信息治理(Y)”菜单下的二子菜单l “职员信息维护”窗体模块frmPeopleManage的实现l “职员信息查询”窗体模块frmPeopleQuery的实现1)“职员信息维护”窗体模块frmPeopleManage的设计、运转界面及代码其主要功能是用于输入和修正职员的材料代码如下:相应文本框控件和相应字段绑定,DataGridView控件用代码绑定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.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 单位编号 from 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 = Image.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 iCurrentLine = -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 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 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.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(职员根本信息表).DefaultView.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 Try 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() Else 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.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 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)“职员信息查询”窗体模块frmPeopleQuery的设计、运转界面及代码其主要功能是查询职员的材料,但不能修正职员的信息。4学时课要完成的任务薪资福利治理(Z)菜单下的四子菜单第1次课要完成的任务:l “当月工资治理”窗体模块功能的实现l “工资发放历史”窗体模块功能的实现第2次课要完成的任务: l “职员奖励治理”窗体模块功能的实现l “职员惩处治理”窗体模块功能的实现第1次课要完成的任务2学时1)“当月工资治理”窗体frmSalaryManage的设计、运转界面和代码其主要功能是计算当月工资和工资发放其代码如下:Public Class frmSalaryManage 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.AllowEdit = False dgvSalaryInfo.DataSource = dvMaster 操纵某列的列宽 For i As Integer = 0 To 8 依照内容调整列宽 Me.dgvSalaryInfo.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells Next 操纵某列是否能够点列标题进展排序 For i As Integer = 0 To 8 不能够点列标题进展排序,只能靠编程 Me.dgvSalaryInfo.Columns(i).SortMode = DataGridViewColumnSortMode.NotSortable Next db.Dispose() Me.OleDbConnection1.ConnectionString = DataBase.sConn Me.OleDbDataAdapter1.Fill(Me.DataSet11, 月工资统计表) End Sub Private Sub frmSalaryManage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 把新职工信息插入到工资统计表中 Dim strSQL As String = insert into 月工资统计表(职员编号) select 职员编号 from 职员根本信息表 as h where h.职员编号 not in (select 职员编号 from 月工资统计表) Dim db As DataBase = New DataBase db.RunDelOrInsSQL(strSQL) db.Dispose() LoadData() End Sub Private Sub btnCalSalary_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalSalary.Click If Me.txbNowSalary.Text.Trim.Length 6 Then MessageBox.Show(请输入正确的年月数据,比方:200903,2009表示2009年,03表示3月份) Exit Sub End If Dim month As Integer = Convert.ToInt32(Me.txbNowSalary.Text.Trim) Dim db As DataBase = New DataBase Dim arr As ArrayList = New ArrayList Dim strSQL As String = select sum(奖励金额) as 奖金,i.职员编号 as 职员编号 from 职员奖励表 as i where i.是否计入工资=是 and i.奖励日期 + Convert.ToString(month * 100) + and i.奖励日期 + Convert.ToString(month + 1) * 100) + group by i.职员编号 Dim dr As OleDb.OleDbDataReader = db.getResult(strSQL) While (dr.Read() Dim jine As Double = dr.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!