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

📄 frmdepmanage.vb

📁 使用的人力资源管理系统
💻 VB
📖 第 1 页 / 共 2 页
字号:
    End Sub
    'InitTree是用递归方法初始化TreeView控件的节点
    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("类别")
                '用TreeNode的Tag属性保存与此节点相关的数据
                tmpNode.Tag = CType(New TreeNodeData(dr("AbsIndex"), _
                dr("ItemIndex"), dr("ItemLevel"), _
                dr("ParentIndex"), dr("类别号"), dr("单位编号")), Object)
                absIndex = dr("AbsIndex")
                '添加节点
                nodes.Add(tmpNode)
                '递归调用
                InitTree(nodes(nodes.Count - 1).Nodes, absIndex)
            Next
        Catch ex As Exception
            MessageBox.Show("初始化TreeView失败")
        End Try
    End Sub
    Private Sub trvList_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles trvList.AfterSelect
        txbName.Text = trvList.SelectedNode.Text
        txbLKindCode.Text = CType(trvList.SelectedNode.Tag, TreeNodeData).KindCode
        txbDepCode.Text = CType(trvList.SelectedNode.Tag, TreeNodeData).DepCode
    End Sub

    Private Sub btnModify_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnModify.Click
        '判断修改条件
        If txbLKindCode.Text.Trim().Length = 0  _
        Or txbDepCode.Text.Trim.Length = 0 Then
            Exit Sub
        End If
        '获得当前选中的节点
        Dim tmpNode As TreeNode = trvList.SelectedNode
        '对编码进行验证
        Dim sTmp As String = txbLKindCode.Text.Trim
        tmpNode = tmpNode.Parent
        While tmpNode Is Nothing = False
            sTmp = CType(tmpNode.Tag, TreeNodeData).KindCode.Trim + sTmp
            tmpNode = tmpNode.Parent
        End While
        If sTmp.Trim.Length > iBits Then
            '编码超长删除节点
            trvList.SelectedNode.Remove()
            MessageBox.Show("编码超长,已被删除!")
        Else
            '编码符合要求,修改相应节点
            trvList.SelectedNode.Text = txbName.Text.Trim
            CType(trvList.SelectedNode.Tag, TreeNodeData).KindCode = _
            txbLKindCode.Text.Trim()
            CType(trvList.SelectedNode.Tag, TreeNodeData).DepCode = _
            sTmp
            Me.txbDepCode.Text = sTmp
        End If
    End Sub

    Private Sub btnAddBas_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnAddBas.Click
        If txbLKindCode.Text.Trim().Length = 0 _
        Or txbDepCode.Text.Trim.Length = 0 Then
            Exit Sub
        End If
        Dim tmpNode As TreeNode
        If txbLKindCode.Text.Trim.Length > iBits Then
            MessageBox.Show("编码超长,已被删除!")
        Else
            tmpNode = New TreeNode(Me.txbName.Text.Trim)
            trvList.Nodes.Add(tmpNode)
            '设置新增节点的相关数据
            tmpNode.Tag = _
            CType(New TreeNodeData("", tmpNode.Index.ToString, "0", _
             "-1", Me.txbLKindCode.Text.Trim, _
             Me.txbLKindCode.Text.Trim), Object)
        End If
    End Sub

    Private Sub btnAddEql_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnAddEql.Click
        If txbLKindCode.Text.Trim().Length = 0 _
        Or txbDepCode.Text.Trim.Length = 0 Then
            Exit Sub
        End If
        Dim tmpNode As TreeNode = trvList.SelectedNode
        Dim sTmp As String = txbLKindCode.Text.Trim
        tmpNode = tmpNode.Parent
        While tmpNode Is Nothing = False
            sTmp = CType(tmpNode.Tag, TreeNodeData).KindCode.Trim + sTmp
            tmpNode = tmpNode.Parent
        End While
        If sTmp.Trim.Length > iBits Then
            MessageBox.Show("编码超长,已被删除!")
        Else
            tmpNode = New TreeNode(Me.txbName.Text.Trim)
            trvList.SelectedNode.Parent.Nodes.Add(tmpNode)
            tmpNode.Tag = _
            CType(New TreeNodeData("", tmpNode.Index.ToString, "", _
            "", Me.txbLKindCode.Text.Trim, sTmp), Object)
        End If
    End Sub

    Private Sub btnAddSub_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnAddSub.Click
        If txbLKindCode.Text.Trim().Length = 0 _
        Or txbDepCode.Text.Trim.Length = 0 Then
            Exit Sub
        End If
        Dim tmpNode As TreeNode = trvList.SelectedNode
        Dim sTmp As String
        sTmp = CType(tmpNode.Tag, TreeNodeData).KindCode.Trim
        sTmp += txbLKindCode.Text.Trim
        tmpNode = tmpNode.Parent
        While tmpNode Is Nothing = False
            sTmp = CType(tmpNode.Tag, TreeNodeData).KindCode.Trim + sTmp
            tmpNode = tmpNode.Parent
        End While
        If sTmp.Trim.Length > iBits Then
            MessageBox.Show("编码超长,已被删除!")
        Else
            tmpNode = New TreeNode(Me.txbName.Text.Trim)
            trvList.SelectedNode.Nodes.Add(tmpNode)
            tmpNode.Tag = _
            CType(New TreeNodeData("", tmpNode.Index.ToString, "", _
            "", Me.txbLKindCode.Text.Trim, sTmp), Object)
        End If
    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnSave.Click
        Dim result As String = ""
        Dim absIndex As Integer = -1
        Dim db As DataBase = New DataBase
        '执行保存TreeView的SQL语句
        Dim strSQL As String = " begin tran "
        Try
            strSQL += " select * into zzjgtemp from 组织机构编码表 "
            strSQL += " go "
            strSQL += " delete from 组织机构编码表 "
            db.RunDelOrInsSQL(strSQL)
            SaveTreeView(Me.trvList.Nodes, result, absIndex)
            db.RunDelOrInsSQL(result)
            strSQL = " update 组织机构编码表 set 拼音编码=b.拼音编码,"
            strSQL += " 单位地址=b.单位地址,单位电话号码=b.单位电话号码,"
            strSQL += " 开户银行=b.开户银行, 帐号=b.帐号,开户全称=b.开户全称"
            strSQL += " from 组织机构编码表 as a, zzjgtemp as b"
            strSQL += " where a.单位编号=b.单位编号"
            strSQL += " drop table zzjgtemp "
            strSQL += " commit "
            db.RunDelOrInsSQL(strSQL)
        Catch ex As Exception
            MessageBox.Show("保存失败,编码重复或位数超长!")
            db.RunDelOrInsSQL(" rollback ")
        End Try
        db.Dispose()
    End Sub

    Private Sub btnDel_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnDel.Click
        Me.trvList.SelectedNode.Remove()
    End Sub
    'SaveTreeView是用递归方法保存TreeView控件的节点
    '要注意nodes,result,absIndex三个参数都是Byref而不是ByVal
    Private Sub SaveTreeView(ByRef nodes As TreeNodeCollection, _
        ByRef result As String, ByRef absIndex As Integer)
        '判断节点的Nodes集合是否为空
        If nodes.Count = 0 Then
            Return
        End If
        For Each tmpNode As TreeNode In nodes
            '以下是要组合SQL语句
            result += " insert into 组织机构编码表(类别,单位名称,"
            result += " AbsIndex, ItemIndex, ItemLevel,"
            result += " ParentIndex, 类别号,"
            result += " 单位编号) values('" + tmpNode.Text + "','"
            result += tmpNode.Text + "',"
            'AbsIndex
            absIndex += 1
            '给treenode赋absIndex
            CType(tmpNode.Tag, TreeNodeData).AbsIndex = _
            absIndex.ToString.Trim()
            result += absIndex.ToString.Trim + ","
            'ItemIndex
            result += tmpNode.Index.ToString.Trim + ","
            'ItemLevel
            If tmpNode.Parent Is Nothing Then
                CType(tmpNode.Tag, TreeNodeData).ItemLevel = "0"
                result += "0"
            Else
                result += (CInt(CType(tmpNode.Parent.Tag, _
                TreeNodeData).ItemLevel) + 1).ToString.Trim
                '给treenode赋ItemLevel
                CType(tmpNode.Tag, TreeNodeData).ItemLevel = _
                CInt(CType(tmpNode.Parent.Tag, _
                TreeNodeData).ItemLevel) + 1
            End If
            'ParentIndex
            result += ","
            If tmpNode.Parent Is Nothing Then
                CType(tmpNode.Tag, TreeNodeData).ParentIndex = "-1"
                result += "-1"
            Else
                result += CType(tmpNode.Parent.Tag, _
                TreeNodeData).AbsIndex.Trim
                '给treenode赋ParentIndex
                CType(tmpNode.Tag, TreeNodeData).ParentIndex = _
                CType(tmpNode.Parent.Tag, TreeNodeData).AbsIndex
            End If
            result += ",'"
            result += CType(tmpNode.Tag, _
            TreeNodeData).KindCode.Trim + "','"
            result += CType(tmpNode.Tag, _
            TreeNodeData).DepCode.Trim + "') "
            '递归调用
            SaveTreeView(tmpNode.Nodes, result, absIndex)
        Next
    End Sub
End Class

⌨️ 快捷键说明

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