⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formemployee.vb

📁 人事管理系统(VB.NET2005+SQL Server2005)
💻 VB
📖 第 1 页 / 共 4 页
字号:

    Private Sub BeginEdit()
        btnUpdate.Enabled = True
        btnCancel.Enabled = True
    End Sub

    Private Sub EndEdit()
        btnUpdate.Enabled = False
        btnCancel.Enabled = False
    End Sub

    Private Sub InitialData()
        'Initial TextBox
        txtName.Text = oEmployee.Name
        txtAddress.Text = oEmployee.Address
        txtBankAccount.Text = oEmployee.BankAccount
        txtBirthday.Text = oEmployee.Birthday
        txtFireDate.Text = oEmployee.FireDate
        txtHireDate.Text = oEmployee.HireDate
        txtHomePhone.Text = oEmployee.HomePhone
        txtIdcard.Text = oEmployee.IDCard
        txtIntro.Text = oEmployee.Intro
        txtMarry.Text = oEmployee.Marry
        txtMobile.Text = oEmployee.Mobile
        uctlNativePlace.Text = oEmployee.NativePlace
        txtNumber.Text = oEmployee.Number
        txtPersonalEmail.Text = oEmployee.PersonalEmail
        txtPostalcode.Text = oEmployee.Postalcode
        txtSex.Text = oEmployee.Sex
        txtStatus.Text = oEmployee.Status
        txtWorkAge.Text = oEmployee.WorkAge
        txtWorkEmail.Text = oEmployee.WorkEmail
        txtWorkPhone.Text = oEmployee.WorkPhone
        'PictureBox1.Image.FromFile(oEmployee.Photo)

        'Initial ComboxBox
        cmbNation.DataSource = Nothing
        cmbNation.Items.Clear()
        cmbNation.DisplayMember = "name"
        cmbNation.ValueMember = "id"
        cmbNation.DataSource = DbBase.DataInterface().Execute4DS("select id,name from nation").Tables(0).DefaultView
        cmbNation.Text = oEmployee.Nation

        cmbEducation.DataSource = Nothing
        cmbEducation.Items.Clear()
        cmbEducation.DisplayMember = "name"
        cmbEducation.ValueMember = "id"
        cmbEducation.DataSource = DbBase.DataInterface().Execute4DS("select id,name from education_level").Tables(0).DefaultView
        cmbEducation.Text = oEmployee.Education

        cmbPostTitle.DataSource = Nothing
        cmbPostTitle.Items.Clear()
        cmbPostTitle.DisplayMember = "name"
        cmbPostTitle.ValueMember = "id"
        cmbPostTitle.DataSource = DbBase.DataInterface().Execute4DS("select id,name from post_name").Tables(0).DefaultView
        cmbPostTitle.Text = oEmployee.PostTitle

        cmbBussiness.DataSource = Nothing
        cmbBussiness.Items.Clear()
        cmbBussiness.DisplayMember = "name"
        cmbBussiness.ValueMember = "id"
        cmbBussiness.DataSource = DbBase.DataInterface().Execute4DS("select id,name from bussiness").Tables(0).DefaultView
        cmbBussiness.Text = oEmployee.Bussiness

        cmbDepartment.DataSource = Nothing
        cmbDepartment.Items.Clear()
        cmbDepartment.DisplayMember = "name"
        cmbDepartment.ValueMember = "number"
        cmbDepartment.DataSource = DbBase.DataInterface().Execute4DS("select number,name from department order by number").Tables(0).DefaultView
        cmbDepartment.Text = oEmployee.Department.Name

        cmbEmployeeLevel.DataSource = Nothing
        cmbEmployeeLevel.Items.Clear()
        cmbEmployeeLevel.DisplayMember = "role"
        cmbEmployeeLevel.ValueMember = "level"
        cmbEmployeeLevel.DataSource = DbBase.DataInterface().Execute4DS("select level,role from payroll_level").Tables(0).DefaultView
        cmbEmployeeLevel.Text = oEmployee.EmployeeLevel

    End Sub

    Private Sub InitialTree(Optional ByVal bShowAll As Boolean = False)
        'Initial tvEmployee
        tvEmployee.Nodes.Clear()
        Dim dsCompany As DataSet
        dsCompany = DbBase.DataInterface().Execute4DS("select top 1 id,name from company")
        Dim tnRoot As TreeNode
        tnRoot = New TreeNode(dsCompany.Tables(0).Rows(0).Item("name"))
        tnRoot.Tag = dsCompany.Tables(0).Rows(0).Item("id")
        tnRoot.ImageIndex = 0
        tnRoot.SelectedImageIndex = 0
        Dim dsDeparts As DataSet
        dsDeparts = DbBase.DataInterface().Execute4DS("select number,name from department order by number")
        'Add Deparments to tvEmployee
        Dim iNodeIndex As Integer
        For Each drDepart As DataRow In dsDeparts.Tables(0).Rows
            Dim tnDepart As TreeNode
            tnDepart = New TreeNode(drDepart.Item("name"))
            tnDepart.Tag = drDepart.Item("number")
            tnDepart.ImageIndex = 1
            tnDepart.SelectedImageIndex = 1
            If Microsoft.VisualBasic.Right(drDepart.Item("number"), 1) = "0" Then
                tnRoot.Nodes.Add(tnDepart)
                iNodeIndex = tnDepart.Index
            Else
                Dim dsEmployee As DataSet
                Dim sSql As String
                If bShowAll Then
                    sSql = "select name,number from v_employee where department_number = '" & tnDepart.Tag & "'"
                Else
                    sSql = "select name,number from v_employee where department_number = '" & tnDepart.Tag & "' and status = '在职'"
                End If
                dsEmployee = DbBase.DataInterface().Execute4DS(sSql)
                For Each drEmployee As DataRow In dsEmployee.Tables(0).Rows
                    Dim tnEmployee As TreeNode
                    tnEmployee = New TreeNode(drEmployee.Item("name"), 2, 2)
                    tnEmployee.Tag = drEmployee.Item("number")
                    tnDepart.Nodes.Add(tnEmployee)
                Next
                tnRoot.Nodes.Item(iNodeIndex).Nodes.Add(tnDepart)
            End If
        Next
        tvEmployee.Nodes.Add(tnRoot)
        tvEmployee.ExpandAll()
    End Sub

    Private Sub GetData()
        oEmployee.Name = txtName.Text
        oEmployee.Sex = txtSex.Text
        oEmployee.Nation = cmbNation.Text
        oEmployee.IDCard = txtIdcard.Text
        oEmployee.Birthday = txtBirthday.Text
        oEmployee.NativePlace = uctlNativePlace.Text
        oEmployee.HomePhone = txtHomePhone.Text
        oEmployee.Mobile = txtMobile.Text
        oEmployee.Address = txtAddress.Text
        oEmployee.Postalcode = txtPostalcode.Text
        oEmployee.Education = cmbEducation.Text
        oEmployee.PostTitle = cmbPostTitle.Text
        oEmployee.PersonalEmail = txtPersonalEmail.Text
        oEmployee.Intro = txtIntro.Text
        oEmployee.Marry = txtMarry.Text
        oEmployee.Photo = ""
        oEmployee.Number = txtNumber.Text
        oEmployee.Department = New Department(cmbDepartment.SelectedValue)
        oEmployee.Bussiness = cmbBussiness.Text
        oEmployee.HireDate = txtHireDate.Text
        oEmployee.FireDate = txtFireDate.Text
        oEmployee.Status = txtStatus.Text
        oEmployee.WorkEmail = txtWorkEmail.Text
        oEmployee.WorkPhone = txtWorkPhone.Text
        oEmployee.WorkAge = txtWorkAge.Text
        oEmployee.EmployeeLevel = cmbEmployeeLevel.Text
    End Sub

    Private Sub FormEmployee_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        InitialTree(miShowAll.Checked)
    End Sub

    Private Sub tvEmployee_AfterSelecet(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles tvEmployee.AfterSelect
        Select Case e.Node.ImageIndex
            Case 2
                oEmployee = New Employee(CStr(e.Node.Tag))
            Case 1
                oEmployee = New Employee
                oEmployee.Department = New Department(e.Node.Tag)
        End Select
        InitialData()
        EndEdit()
    End Sub

    Private Sub tvEmployee_MouseDown(ByVal send As Object, ByVal e As MouseEventArgs) Handles tvEmployee.MouseDown
        Dim tnClicked As TreeNode
        tnClicked = tvEmployee.GetNodeAt(New Point(e.X, e.Y))
        If Not tnClicked Is Nothing And Not tnClicked Is tvEmployee.Nodes(0) Then
            tvEmployee.SelectedNode = tnClicked
            'oEmployee = New Employee(tnClicked.Tag)
        End If
    End Sub

    Private Sub cmbDepartment_SelectedIndexChanged(ByVal send As Object, ByVal e As EventArgs) Handles cmbDepartment.SelectedIndexChanged
        Dim sNumber As String = txtNumber.Text
        Dim iLen As Integer = sNumber.Length
        If iLen = 3 Then
            txtNumber.Text = cmbDepartment.SelectedValue & sNumber
        ElseIf iLen = 2 Or iLen = 5 Then
            txtNumber.Text = sNumber.Replace(Microsoft.VisualBasic.Left(sNumber, 2), cmbDepartment.SelectedValue)
        Else
            txtNumber.Text = cmbDepartment.SelectedValue
        End If
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Me.Close()
    End Sub

    Private Sub miAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miAdd.Click
        oEmployee = New Employee
        Dim tnSelected As TreeNode = tvEmployee.SelectedNode
        If tnSelected.ImageIndex = 1 Then
            oEmployee.Department = New Department(tnSelected.Tag)
        ElseIf tnSelected.ImageIndex = 2 Then
            oEmployee.Department = New Department(tnSelected.Parent.Tag)
        End If
        InitialData()
        BeginEdit()
        btnUpdate.Text = "聘  用"
    End Sub

    Private Sub miEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miEdit.Click
        BeginEdit()
        btnUpdate.Text = "修  改"
    End Sub

    Private Sub miDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miDel.Click
        BeginEdit()
        btnUpdate.Text = "解  聘"
    End Sub

    Private Sub miShowAll_Click(ByVal sender As Object, ByVal e As EventArgs) Handles miShowAll.Click
        miShowAll.Checked = Not miShowAll.Checked
        InitialTree(miShowAll.Checked)
    End Sub

    Private Sub pmEmployee_Popup(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pmEmployee.Popup
        If tvEmployee.SelectedNode Is Nothing Then
            Exit Sub
        End If
        Select Case tvEmployee.SelectedNode.ImageIndex
            Case 2
                miClear.Visible = False
                miEdit.Visible = True
                miDel.Visible = True
                miTransfer.Visible = True
                miRetire.Visible = True
                miSplitter.Visible = True
                miSplitter2.Visible = True
                miShowAll.Visible = True
            Case 1
                miClear.Visible = True
                miEdit.Visible = False
                miDel.Visible = False
                miTransfer.Visible = False
                miRetire.Visible = False
                miSplitter.Visible = False
                miSplitter2.Visible = True
                miShowAll.Visible = True
            Case Else
                For Each mi As MenuItem In pmEmployee.MenuItems
                    mi.Visible = False
                Next
        End Select
    End Sub

    Private Sub miClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miClear.Click
        If MessageBox.Show("该操作将删除该部门下的所有员工,确定吗?", "清空部门", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) Then
            For Each tnTemp As TreeNode In tvEmployee.SelectedNode.Nodes
                Dim oEmpTmp As Employee
                oEmpTmp = New Employee(CStr(tnTemp.Tag))
                oEmpTmp.Fire(CType(New Date, String))
            Next
        End If
        InitialTree(miShowAll.Checked)
    End Sub

    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        Select Case btnUpdate.Text
            Case "聘  用"
                GetData()
                oEmployee.Hire()
            Case "修  改"
                GetData()
                oEmployee.Update()
            Case "解  聘"
                If MessageBox.Show("确认要解雇该员工吗?", "解聘员工", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = Windows.Forms.DialogResult.OK Then
                    oEmployee.Fire(txtFireDate.Text)
                End If
            Case "退  休"
                oEmployee.Retire()
            Case "调  动"
                oEmployee.Transfer(New Department(cmbDepartment.SelectedValue))
        End Select
        InitialTree(miShowAll.Checked)
        InitialData()
        EndEdit()
    End Sub

    Private Sub miRetire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miRetire.Click
        btnUpdate.Text = "退  休"
        BeginEdit()
    End Sub

    Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
        EndEdit()
        InitialData()
    End Sub

    Private Sub miTransfer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miTransfer.Click
        cmbDepartment.Focus()
        btnUpdate.Text = "调  动"
        BeginEdit()
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -