業務系統設計之一 系統選單設計

2021-09-22 04:12:25 字數 2464 閱讀 1978

本文主要介紹業務系統設計裡的選單設計,關注我部落格的朋友或許以前見過一篇我寫的關於選單的文章,文章連線:

使用radcontrols的radmenu控制項開發系統選單

,這篇文章主要是介紹了radcontrols的radmenu控制項的基本使用,沒有詳細介紹到選單如何設計,為什麼要那麼設計。本文就以這片文章為基礎,同樣通過此文章的示例程式和示例資料庫,結合業務系統設計的相關術語介紹業務系統的選單設計。

首先看看上面的資料庫設計結構,其中id為自動編號的主鍵字段,code為選單編碼(也稱業務編碼),name為選單名稱, url為單擊選單所導航的路徑,imageurl為選單上顯示的位址,shortcut為快捷鍵,order為選單項顯示順序,grade為選單級限,endgrade為是否為末級選單(既最後一選單項),supmenucode為當前選單項的父級選單編碼(對應於code欄位),完整的還應該包括是否受許可權控制等字段,這裡不一一列出。

上面的資料庫設計其實很簡單,需要主要的字段有code選單編碼(也稱業務編碼),在業務系統裡通常設計為每一選單項都可以認為是乙個業務操作,這裡的code非常重要,業務系統的後續工作都是從這裡開始,通常與許可權設計結合使用得最多。

系統選單應該是多層次結構的,比如常見的windows選單,業務系統裡的選單設計同樣如此,通過supmenucode欄位來標記該選單項屬於那一項選單的子選單,如果沒有父級選單(系統頂層選單)則標記為0。

既然選單有層次結構,那就一定有層次標識,通過grade來標記;endgrade則表示當前選單項在該層次級別上的選單項上是否為末級。

分析清楚了需求和選單設計方案,下面我們著手**開發,下圖為專案解決方案截圖:

首先需要配置資料庫連串,如下: 1

private

static

string

connectionstring ="

provider=microsoft.jet.oledb.4.0;data source="2

+@"");

接著我們需要乙個執行sql的方法,如下**塊: 1

private

datatable executequery(

string

cmdtext)211

}12}

最後我們還需要寫兩個方法,乙個是查詢頂層選單的方法,乙個則是實現查詢選單下的子選單方法(做法有很多種,我個人建議把所有的資料查詢出然後在操作記憶體資料,這裡為了方便理解我故採用多次查詢資料庫的方式來實現)。 1

public

datatable getmenu()26

7public

datatable getmenubysupcode(

string

supmenucode)8

ok,準備工作做好後,現在就是需要到ui層上去做選單的展現工作了。選單的展現我通過radcontrls的radmenu控制項來實現,此控制項相對asp.net的標準menu控制項功能強大。要使用radmenu則需要註冊控制項的引用,如果你是通過radcontrls控制項庫安裝包安裝的則會自動註冊到vs工具箱,和標準控制項使用方法一樣。 1

@ register assembly="

radmenu.net2

"namespace="

telerik.webcontrols

"tagprefix="

rad"

%>

1選單開始

--%>

2<

rad:radmenu id="

systemmenu

"runat="

server

"skin="

vista

">

3rad:radmenu

>

4選單結束

--%>

上面準備好了頂層選單的查詢方法,直接通過該方法查詢出頂層選單項對選單進行初始化: 1

protected

void

page_load(

object

sender, eventargs e)27

}89menu menu 

=new

menu();

10private

void

initmenu()

1130}

我們設計為多層次選單結構,那麼在初始化頂層選單的時候就應該判斷該選單項是否有子選單,如果有則也初始化子選單,如果是多級層次的結構,通過遞迴演算法來完成多層次的初始化。如下**塊: 1

2private

void

initsubmenu(radmenuitem item, 

string

supmenucode)324

}25}26

}

業務系統設計之一 系統選單設計

很久沒寫文章了,前幾天有幾個朋友問了我很多關於業務系統 erp,drp,crm等 設計裡很多概念性東西,花了很長時間給他解釋,最後他門還是知其然不知其所以然,這對於剛跨出學校大門的朋友來說,理解起確實有點枯燥。這裡我以以前參與的用友erp,drp產品專案裡的部分設計為參考,通過幾篇文章來和大家分享業...

業務系統設計之一 系統選單設計

很久沒寫文章了,前幾天有幾個朋友問了我很多關於業務系統 erp,drp,crm等 設計裡很多概念性東西,花了很長時間給他解釋,最後他門還是知其然不知其所以然,這對於剛跨出學校大門的朋友來說,理解起確實有點枯燥。這裡我以以前參與的用友erp,drp產品專案裡的部分設計為參考,通過幾篇文章來和大家分享業...

十一 系統設計

1.在短時間內構建乙個簡單可實現的演算法,執行資料並通過交叉檢驗來驗證資料 2.完成第一步後,便可以繪製學習曲線,通過曲線觀察演算法是否有高偏差或者高方差的問題,以此作為下一步決策的依據,是新增更多訓練集還是增減特徵等等 3.人工檢查交叉驗證集中 失敗的資料 誤差分析 來發覺演算法的缺陷去修復 類偏...