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

📄 frmmanage.vb

📁 VB.NET开发的进销存系统,数据库SQLSERVER
💻 VB
字号:
Imports System.Data
Imports System.Data.SqlClient
Public Class frmManage
    Inherits System.Windows.Forms.Form
    Private iCurrentLine As Integer = 0
    Private dvUser As DataView
    Private dvRight As DataView
#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        '在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    '窗体重写 dispose 以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意: 以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Friend WithEvents dgdMember As System.Windows.Forms.DataGrid
    Friend WithEvents clbRight As System.Windows.Forms.CheckedListBox
    Friend WithEvents lblUser As System.Windows.Forms.Label
    Friend WithEvents lblRight As System.Windows.Forms.Label
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.dgdMember = New System.Windows.Forms.DataGrid
        Me.clbRight = New System.Windows.Forms.CheckedListBox
        Me.lblUser = New System.Windows.Forms.Label
        Me.lblRight = New System.Windows.Forms.Label
        CType(Me.dgdMember, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'dgdMember
        '
        Me.dgdMember.CaptionVisible = False
        Me.dgdMember.DataMember = ""
        Me.dgdMember.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.dgdMember.Location = New System.Drawing.Point(0, 56)
        Me.dgdMember.Name = "dgdMember"
        Me.dgdMember.Size = New System.Drawing.Size(264, 164)
        Me.dgdMember.TabIndex = 0
        '
        'clbRight
        '
        Me.clbRight.AllowDrop = True
        Me.clbRight.CheckOnClick = True
        Me.clbRight.Items.AddRange(New Object() {"商品资料维护", "供货商资料维护", "客户资料维护", "进货单", "销售单", "库存查询", "权限管理"})
        Me.clbRight.Location = New System.Drawing.Point(320, 56)
        Me.clbRight.Name = "clbRight"
        Me.clbRight.Size = New System.Drawing.Size(144, 164)
        Me.clbRight.TabIndex = 1
        '
        'lblUser
        '
        Me.lblUser.Location = New System.Drawing.Point(0, 24)
        Me.lblUser.Name = "lblUser"
        Me.lblUser.TabIndex = 2
        Me.lblUser.Text = "用户"
        '
        'lblRight
        '
        Me.lblRight.Location = New System.Drawing.Point(320, 24)
        Me.lblRight.Name = "lblRight"
        Me.lblRight.TabIndex = 3
        Me.lblRight.Text = "权限"
        '
        'frmManage
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(488, 277)
        Me.Controls.Add(Me.lblRight)
        Me.Controls.Add(Me.lblUser)
        Me.Controls.Add(Me.clbRight)
        Me.Controls.Add(Me.dgdMember)
        Me.Name = "frmManage"
        Me.Text = "权限管理"
        CType(Me.dgdMember, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region
    Private Sub frmManage_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        Dim db As DataBase = New DataBase
        dvUser = _
        db.RunSelectSQL("SELECT 姓名, 部门, 用户编号 FROM 用户清单")
        dvRight = _
        db.RunSelectSQL("SELECT 用户编号, 权限名称 FROM 权限清单")
        dvUser.AllowEdit = False
        dvUser.AllowNew = False
        Dim ts As New DataGridTableStyle
        Dim aColumnTextColumn As DataGridNoActiveCellColumn
        Dim numCols As Integer = dvUser.Table.Columns.Count
        Dim i As Integer
        For i = 0 To numCols - 1
            aColumnTextColumn = New DataGridNoActiveCellColumn
            With aColumnTextColumn
                .MappingName = dvUser.Table.Columns(i).ColumnName
                .HeaderText = dvUser.Table.Columns(i).ColumnName
                .NullText = ""
            End With
            ts.GridColumnStyles.Add(aColumnTextColumn)
        Next
        ts.MappingName = dvRight.Table.TableName
        Me.dgdMember.TableStyles.Add(ts)
        '进行数据绑定
        Me.dgdMember.DataSource = dvUser
        If Me.dvUser.Count <> 0 Then
            SetCheckBoxList(dvUser.Item(0)("用户编号"))
        End If
        db.Dispose()
    End Sub

    Private Sub dgdMember_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles dgdMember.Click
        Try
            '判断两次Click事件是否是发生在同一行
            If iCurrentLine <> dgdMember.CurrentRowIndex Then
                '不是发生在同一行,用iCurrentLine记住当前行
                iCurrentLine = dgdMember.CurrentRowIndex
                '设置CheckBoxList的显示
                SetCheckBoxList( _
                dvUser.Item(dgdMember.CurrentRowIndex)("用户编号"))
            End If
        Catch ex As Exception
            MessageBox.Show("错误")
        End Try
    End Sub
    Private Sub SetCheckBoxList(ByVal UserId As String)
        '清空数据表
        dvRight.Table.Clear()
        Dim db As DataBase = New DataBase
        dvRight = _
        db.RunSelectSQL("SELECT 用户编号, 权限名称 FROM 权限清单")
        db.Dispose()
        Try
            dvRight.RowFilter = "用户编号='" + UserId.Trim() + "'"
            Dim iCount As Integer
            For iCount = 0 To clbRight.Items.Count - 1
                clbRight.SetItemCheckState(iCount, _
                CheckState.Unchecked)
            Next
            Dim i, j As Integer
            Dim s, d As String
            '根据用户权限设置相应的选项
            If clbRight.Items.Count <> 0 Then
                For i = 0 To dvRight.Count - 1
                    For j = 0 To clbRight.Items.Count - 1
                        s = dvRight.Item(i)("权限名称")
                        d = clbRight.Items(j)
                        If s.Trim() = d.Trim() Then
                            clbRight.SetItemCheckState(j, _
                            CheckState.Checked)
                            Exit For
                        End If
                    Next
                Next
            End If
        Catch ex As Exception
            MessageBox.Show("错误")
        End Try
    End Sub
    Private Sub UpdateDB()
        '清空用户的权限
        Dim db As DataBase = New DataBase
        db.RunDelOrInsSQL("delete from 权限清单 where 用户编号 ='" _
        + dvUser.Item(Me.iCurrentLine)("用户编号") + "'")
        Dim iCount As Integer
        '添加用户权限
        If Me.clbRight.CheckedItems.Count <> 0 Then
            Dim strInsSQL As String = ""
            For iCount = 0 To Me.clbRight.CheckedItems.Count - 1
                strInsSQL += "insert into 权限清单(用户编号,部门,"
                strInsSQL += "权限名称) values('"
                strInsSQL += dvUser.Item(iCurrentLine)("用户编号").ToString().Trim
                strInsSQL += "','"
                strInsSQL += dvUser.Item(iCurrentLine)("部门").ToString().Trim
                strInsSQL += "','" + Me.clbRight.CheckedItems(iCount).ToString()
                strInsSQL += "'); "
            Next
            db.RunDelOrInsSQL(strInsSQL)
        End If
        db.Dispose()
    End Sub
    Private Sub clbRight_SelectedIndexChanged(ByVal sender _
    As Object, ByVal e As System.EventArgs) _
    Handles clbRight.SelectedIndexChanged
        UpdateDB()
    End Sub
End Class

⌨️ 快捷键说明

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