管理軟件設(shè)計(jì)中,權(quán)限管理雖說是比較基本的內(nèi)容,但也十分重要,說簡(jiǎn)單也簡(jiǎn)單,說復(fù)雜也復(fù)雜,最復(fù)雜就像網(wǎng)絡(luò)操作系統(tǒng)一樣,區(qū)分很多層次,什么分組啦角色啦,不過,一般會(huì)根據(jù)實(shí)際需要采用比較實(shí)用且簡(jiǎn)捷的設(shè)置方案.本文介紹一個(gè)在實(shí)際軟件中用過和一種方法,主要是把功能、權(quán)限、菜單結(jié)合到一起來的設(shè)計(jì)方案。
一、設(shè)計(jì)方案中用設(shè)計(jì)表來保存功能或權(quán)限
可以根據(jù)需要,設(shè)置ID、功能名稱、類別、模塊及其他項(xiàng)目。
二、設(shè)計(jì)方案中用設(shè)計(jì)權(quán)限分配功能,將這些功能分配給具體操作人員
將分配到具體人員的權(quán)限保存到另一個(gè)表中。
三、在主窗口中把權(quán)限裝入成為菜單項(xiàng)
如果權(quán)限中包含非功能項(xiàng)目,要在加載過濾掉,同時(shí)將單存權(quán)限讀入保存到變量,當(dāng)然每次用到再讀也可以。顯示如圖。
部門代碼如下:
- Dim Gnsql As String = "SELECT * FROM 用戶權(quán)限 WHERE 用戶名稱='當(dāng)前用戶'"
- 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
這樣,菜單也有了,權(quán)限也有了。
四、執(zhí)行菜單功能
- 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 "銷售報(bào)價(jià)單"
- Dim ErmXSBJ As Form = New FormXSBJ
- ErmXSBJ.Show()
- ......
-
- End Select
- End Sub
>
【編輯推薦】
- 五類Web2.0網(wǎng)站在金融危機(jī)獲得發(fā)展
- 面向WEB2.0的IT服務(wù)管理平臺(tái)
- 詳解基于JSP網(wǎng)絡(luò)技術(shù)教學(xué)平臺(tái)的設(shè)計(jì)
- 面向模式的分析和設(shè)計(jì)
- 設(shè)計(jì)模式在EJB中的應(yīng)用