黎瑞芝 发表于 2025-5-29 20:22:40

功能、权限、菜单相结合的设计方案

功能、权限、菜单相结合的设计方案

 
      管理软件设计中,权限管理虽说是比较基本的内容,但也十分重要,说简单也简单,说复杂也复杂,最复杂就像网络操作系统一样,区分很多层次,什么分组啦角色啦,不过,一般会根据实际需要采用比较实用且简捷的设置方案.本文介绍一个在实际软件中用过和一种方法,主要是把功能、权限、菜单结合到一起来,要求当前操作人员有什么权限就出现什么菜单项。
一、设计表来保存功能或权限

 

 
 
    可以根据需要,设置ID、功能名称、类别、模块及其他项目。
二、设计权限分配功能,将这些功能分配给具体操作人员

    将分配到具体人员的权限保存到另一个表中。
三、在主窗口中把权限装入成为菜单项

    如果权限中包含非功能项目,要在加载过滤掉,同时将单存权限读入保存到变量,当然每次用到再读也可以。显示如图。

 
 
    部门代码如下:
      Dim Gnsql As String = "SELECT * FROM 用户权限 WHERE 用户名称='当前用户'"
      Dim dtQX As DataTable = hyDB.DBselect(Gnsql) '
      Dim dqMK As String = ""
      Dim gnNODE As TreeNode = Nothing
      Dim dqNODE As TreeNode = Nothing

      With dtQX
            Dim qxROWS() As DataRow = .Select()
            For i = 0 To qxROWS.GetUpperBound(0)
                If dqMK <> qxROWS(i).Item("模块名称").ToString Then
                  dqNODE = TreeView1.Nodes.Add(qxROWS(i).Item("模块名称").ToString)
                Else
                  gnNODE = dqNODE.Nodes.Add("", qxROWS(i).Item("功能名称").ToString)
                End If
                dqMK = qxROWS(i).Item("模块名称").ToString
            Next
      End With    这样,菜单也有了,权限也有了。

四、执行菜单功能

Public Sub ErmGn(ByVal Gn As String)
      Select Gn
            Case "销售订单"
                Dim ErmXSDD As Form = New FormXSDD
                ErmXSDD.Show()
                Exit Select
            Case "销售出库单"
                Dim ErmXSCK As Form = New FormXSCK
                ErmXSCK.Show()

            Case "销售报价单"
                Dim ErmXSBJ As Form = New FormXSBJ
                ErmXSBJ.Show()
                ......

      End Select
    End Sub    仅供参考.

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 功能、权限、菜单相结合的设计方案