專利名稱:菜單管理裝置和菜單管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體而言,涉及一種菜單管理裝置和一種菜單管理方法。
背景技術(shù):
在大型的ERP系統(tǒng)中,功能菜單包括各個子系統(tǒng)(模塊)的功能列表,功能菜單的展示效果、使用方便性和加載效率對使用者的影響很大,在ERP系統(tǒng)的功能中占有重要的地位。功能菜單一般有以下一些特點和要求一、菜單項屬于某一個子系統(tǒng),菜單項是否加載需要根據(jù)子系統(tǒng)是否安裝或者啟用來進行判斷。二、內(nèi)容功能菜單的名稱和顯示規(guī)則根據(jù)不同上下文環(huán)境需要動態(tài)改變。比如會根據(jù)使用者是否有某些功能的權(quán)限來進行過濾,沒有權(quán)限的菜單項不可見。三、可維護性,使用者可能會根據(jù)實際的需要修改名稱、或者調(diào)整顯示順序等邏輯。四、可擴展性,能夠支持二次開發(fā)人員新增插件來完成新功能或者修改現(xiàn)有的功能,并且能夠方便支持的二次開發(fā)插件的部署。目前主流的方案中,一般采取把系統(tǒng)包含子系統(tǒng)(模塊)的功能菜單項預(yù)先定義在XML文件中,系統(tǒng)啟動時動態(tài)加載菜單項,事先將子系統(tǒng)的需要的菜單全部加入主菜單。 在需要對目前菜單項的顯示內(nèi)容或者顯示規(guī)則的地方由硬代碼來進行控制。這種方案中,存在的不足有一、部署問題。如果菜單項的定義保存在文件中,如XML文件,則在支持二次開發(fā)的插件時,會帶來部署方面的問題,比如插件A增加了一個菜單項Al,需要把菜單的配置定義文件,比如“菜單定義.ml”,做到插件的安裝包里面,插件B增加了一個菜單項Bi,也需要把更改過后的菜單定義文件“菜單定義.xml ”,放到插件B的安裝包里面,如果使用者分別安裝了插件A和插件B,就存在菜單定義文件“菜單定義.xml,,相互覆蓋的問題,如果要避免這個問題,就需要開發(fā)插件的開發(fā)人員動態(tài)修改“菜單定義.xml”,這就給二次開發(fā)人員增加了難度,而且稍有疏忽,就會導(dǎo)致系統(tǒng)菜單定義文件錯亂,最終導(dǎo)致系統(tǒng)不可用。二、加載策略問題。菜單項的是否顯示或者名稱是否改變,都有可能根據(jù)子系統(tǒng)的啟用和安裝,或者系統(tǒng)參數(shù)的設(shè)置來改變或者操作員是否擁有對應(yīng)的權(quán)限來決定,目前的現(xiàn)存實現(xiàn)方案中要么沒有這個功能,要么通過硬編碼實現(xiàn)的方式實現(xiàn),這兩種方式都不夠靈活,不能適應(yīng)客戶的隨需而變,硬編碼導(dǎo)致菜單和組件對應(yīng)的關(guān)系耦合度高,不能實現(xiàn)完全的解耦,不利于后期維護。三、菜單數(shù)據(jù)維護問題。由于菜單的數(shù)據(jù)量一般都在幾千條以上,菜單數(shù)據(jù)無論在數(shù)據(jù)庫中還是文件中,如果沒有提供可視化工具來修改,都會比較繁瑣,而且容易出錯,一旦有錯,就會導(dǎo)致系統(tǒng)不可用。因此,需要一種新的技術(shù)方案,需要能夠?qū)崿F(xiàn)菜單數(shù)據(jù)的自定義,并能夠快速加載菜單數(shù)據(jù),并針對不同應(yīng)用情況加載不同數(shù)據(jù),且保證能夠便捷地對菜單數(shù)據(jù)進行維護。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種新的技術(shù)方案,需要能夠?qū)崿F(xiàn)菜單數(shù)據(jù)的自定義,并能夠快速加載菜單數(shù)據(jù),并針對不同應(yīng)用情況加載不同數(shù)據(jù),且保證能夠便捷地對菜單數(shù)據(jù)進行維護。有鑒于此,本發(fā)明提供一種菜單管理裝置,包括數(shù)據(jù)加載單元,加載用于生成菜單的菜單數(shù)據(jù);數(shù)據(jù)過濾單元,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾;菜單生成單元,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。通過該技術(shù)方案,可以制定不同的策略,以對生成菜單的數(shù)據(jù)進行過濾,保證生成的菜單符合菜單的應(yīng)用場景,以及客戶的定制需求。在上述技術(shù)方案中,優(yōu)選地,還包括策略制定單元,根據(jù)當(dāng)前操作者的權(quán)限,和/ 或當(dāng)前系統(tǒng)中運行的子系統(tǒng)信息和/或安裝信息,來制定所述策略,并記錄到預(yù)設(shè)的配置文件中;所述數(shù)據(jù)過濾單元從所述配置文件中讀取所述策略,以對所述菜單數(shù)據(jù)進行過濾。 通過該技術(shù)方案,保證了生成的菜單內(nèi)容與當(dāng)前環(huán)境相符,且不需生成不必要的菜單項,既節(jié)省了時間,又提升了用戶的操作體驗。在上述技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)加載單元還判斷預(yù)存儲在數(shù)據(jù)庫中的所述菜單數(shù)據(jù)是否已發(fā)生更改,在判斷結(jié)果為是時,從所述數(shù)據(jù)庫中讀取所述菜單數(shù)據(jù)以進行加載,并將所述菜單數(shù)據(jù)存儲到緩存文件中,在判斷結(jié)果為否時,從預(yù)存儲有所述菜單數(shù)據(jù)的緩存文件中,讀取所述菜單數(shù)據(jù)以進行加載。通過該技術(shù)方案,可以大幅加載提高菜單數(shù)據(jù)加載的效率。在上述技術(shù)方案中,優(yōu)選地,所述菜單生成單元根據(jù)預(yù)設(shè)的參數(shù),對所述菜單選項的屬性進行修改,再進行顯示。通過該技術(shù)方案,可以保證菜單選項的屬性,例如顯示名稱, 也都符合當(dāng)前環(huán)境。在上述技術(shù)方案中,優(yōu)選地,還包括數(shù)據(jù)維護單元,從預(yù)存儲有所述菜單數(shù)據(jù)的數(shù)據(jù)庫中,讀取所述菜單數(shù)據(jù),并生成顯示有所述菜單數(shù)據(jù)的可視界面,供操作者通過所述可視界面,實現(xiàn)對所述菜單數(shù)據(jù)的維護。通過該技術(shù)方案,可視界面可以保證用戶對所有數(shù)據(jù)一目了然,且不需進行數(shù)據(jù)庫操作或編程操作等復(fù)雜工作,即可高效地進行菜單數(shù)據(jù)的維護。本發(fā)明還提供一種菜單管理方法,包括步驟202,加載用于生成菜單的菜單數(shù)據(jù);步驟204,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾;步驟206,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。通過該技術(shù)方案,可以制定不同的策略,以對生成菜單的數(shù)據(jù)進行過濾,保證生成的菜單符合菜單的應(yīng)用場景,以及客戶的定制需求。在上述技術(shù)方案中,優(yōu)選地,在所述步驟204之前,還包括根據(jù)當(dāng)前操作者的權(quán)限,和/或當(dāng)前系統(tǒng)中運行的子系統(tǒng)信息和/或安裝信息,來制定所述策略,并記錄到預(yù)設(shè)的配置文件中;所述步驟204具體包括從所述配置文件中讀取所述策略,以對所述菜單數(shù)據(jù)進行過濾。通過該技術(shù)方案,保證了生成的菜單內(nèi)容與當(dāng)前環(huán)境相符,且不需生成不必要的菜單項,既節(jié)省了時間,又提升了用戶的操作體驗。在上述技術(shù)方案中,優(yōu)選地,所述步驟202還包括判斷預(yù)存儲在數(shù)據(jù)庫中的所述菜單數(shù)據(jù)是否已發(fā)生更改,在判斷結(jié)果為是時,從所述數(shù)據(jù)庫中讀取所述菜單數(shù)據(jù)以進行加載,并將所述菜單數(shù)據(jù)存儲到緩存文件中,在判斷結(jié)果為否時,從預(yù)存儲有所述菜單數(shù)據(jù)的緩存文件中,讀取所述菜單數(shù)據(jù)以進行加載。通過該技術(shù)方案,可以大幅加載提高菜單數(shù)據(jù)加載的效率。在上述技術(shù)方案中,優(yōu)選地,所述步驟206還包括根據(jù)預(yù)設(shè)的參數(shù),對所述菜單選項的屬性進行修改,再進行顯示。通過該技術(shù)方案,可以保證菜單選項的屬性,例如顯示名稱,也都符合當(dāng)前環(huán)境。在上述技術(shù)方案中,優(yōu)選地,還包括從預(yù)存儲有所述菜單數(shù)據(jù)的數(shù)據(jù)庫中,讀取所述菜單數(shù)據(jù),并生成顯示有所述菜單數(shù)據(jù)的可視界面,供操作者通過所述可視界面,實現(xiàn)對所述菜單數(shù)據(jù)的維護。通過該技術(shù)方案,可視界面可以保證用戶對所有數(shù)據(jù)一目了然,且不需進行數(shù)據(jù)庫操作或編程操作等復(fù)雜工作,即可高效地進行菜單數(shù)據(jù)的維護。通過以上技術(shù)方案,可以實現(xiàn)一種菜單管理裝置和菜單管理方法,能夠?qū)崿F(xiàn)菜單數(shù)據(jù)的自定義,并能夠快速加載菜單數(shù)據(jù),并針對不同應(yīng)用情況加載不同數(shù)據(jù),且保證能夠便捷地對菜單數(shù)據(jù)進行維護。
圖1是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的框圖;圖2是根據(jù)本發(fā)明的一個實施例的菜單管理方法的流程圖;圖3是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的示意圖;圖4是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的工作流程圖;圖5是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的工作流程圖;圖6是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖7是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的數(shù)據(jù)示意圖;圖8是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖9是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖10是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖11是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的工作流程圖;圖12是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖13是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖14是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的工作流程圖;圖15是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的數(shù)據(jù)示意圖;圖16是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖17是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的界面示意圖;圖18是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的工作流程圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式
對本發(fā)明進行進一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實施例的限制。圖1是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的框圖。如圖1所示,本發(fā)明提供一種菜單管理裝置100,包括數(shù)據(jù)加載單元102,加載用于生成菜單的菜單數(shù)據(jù);數(shù)據(jù)過濾單元104,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾; 菜單生成單元106,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。通過該技術(shù)方案,可以制定不同的策略,以對生成菜單的數(shù)據(jù)進行過濾,保證生成的菜單符合菜單的應(yīng)用場景,以及客戶的定制需求。在上述技術(shù)方案中,還包括策略制定單元108,根據(jù)當(dāng)前操作者的權(quán)限,和/或當(dāng)前系統(tǒng)中運行的子系統(tǒng)信息和/或安裝信息,來制定所述策略,并記錄到預(yù)設(shè)的配置文件中;所述數(shù)據(jù)過濾單元104從所述配置文件中讀取所述策略,以對所述菜單數(shù)據(jù)進行過濾。 通過該技術(shù)方案,保證了生成的菜單內(nèi)容與當(dāng)前環(huán)境相符,且不需生成不必要的菜單項,既節(jié)省了時間,又提升了用戶的操作體驗。在上述技術(shù)方案中,所述數(shù)據(jù)加載單元102還判斷預(yù)存儲在數(shù)據(jù)庫中的所述菜單數(shù)據(jù)是否已發(fā)生更改,在判斷結(jié)果為是時,從所述數(shù)據(jù)庫中讀取所述菜單數(shù)據(jù)以進行加載, 并將所述菜單數(shù)據(jù)存儲到緩存文件中,在判斷結(jié)果為否時,從預(yù)存儲有所述菜單數(shù)據(jù)的緩存文件中,讀取所述菜單數(shù)據(jù)以進行加載。通過該技術(shù)方案,可以大幅加載提高菜單數(shù)據(jù)加載的效率。在上述技術(shù)方案中,所述菜單生成單元106根據(jù)預(yù)設(shè)的參數(shù),對所述菜單選項的屬性進行修改,再進行顯示。通過該技術(shù)方案,可以保證菜單選項的屬性,例如顯示名稱,也都符合當(dāng)前環(huán)境。在上述技術(shù)方案中,還包括數(shù)據(jù)維護單元110,從預(yù)存儲有所述菜單數(shù)據(jù)的數(shù)據(jù)庫中,讀取所述菜單數(shù)據(jù),并生成顯示有所述菜單數(shù)據(jù)的可視界面,供操作者通過所述可視界面,實現(xiàn)對所述菜單數(shù)據(jù)的維護。通過該技術(shù)方案,可視界面可以保證用戶對所有數(shù)據(jù)一目了然,且不需進行數(shù)據(jù)庫操作或編程操作等復(fù)雜工作,即可高效地進行菜單數(shù)據(jù)的維護。圖2是根據(jù)本發(fā)明的一個實施例的菜單管理方法的流程圖。如圖2所示,本發(fā)明還提供一種菜單管理方法,包括步驟202,加載用于生成菜單的菜單數(shù)據(jù);步驟204,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾;步驟206,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。通過該技術(shù)方案,可以制定不同的策略,以對生成菜單的數(shù)據(jù)進行過濾,保證生成的菜單符合菜單的應(yīng)用場景,以及客戶的定制需求。在上述技術(shù)方案中,在所述步驟204之前,還包括根據(jù)當(dāng)前操作者的權(quán)限,和/或當(dāng)前系統(tǒng)中運行的子系統(tǒng)信息和/或安裝信息,來制定所述策略,并記錄到預(yù)設(shè)的配置文件中;所述步驟204具體包括從所述配置文件中讀取所述策略,以對所述菜單數(shù)據(jù)進行過濾。通過該技術(shù)方案,保證了生成的菜單內(nèi)容與當(dāng)前環(huán)境相符,且不需生成不必要的菜單項,既節(jié)省了時間,又提升了用戶的操作體驗。在上述技術(shù)方案中,所述步驟202還包括判斷預(yù)存儲在數(shù)據(jù)庫中的所述菜單數(shù)據(jù)是否已發(fā)生更改,在判斷結(jié)果為是時,從所述數(shù)據(jù)庫中讀取所述菜單數(shù)據(jù)以進行加載,并將所述菜單數(shù)據(jù)存儲到緩存文件中,在判斷結(jié)果為否時,從預(yù)存儲有所述菜單數(shù)據(jù)的緩存文件中,讀取所述菜單數(shù)據(jù)以進行加載。通過該技術(shù)方案,可以大幅加載提高菜單數(shù)據(jù)加載的效率。在上述技術(shù)方案中,所述步驟206還包括根據(jù)預(yù)設(shè)的參數(shù),對所述菜單選項的屬性進行修改,再進行顯示。通過該技術(shù)方案,可以保證菜單選項的屬性,例如顯示名稱,也都符合當(dāng)前環(huán)境。在上述技術(shù)方案中,還包括從預(yù)存儲有所述菜單數(shù)據(jù)的數(shù)據(jù)庫中,讀取所述菜單數(shù)據(jù),并生成顯示有所述菜單數(shù)據(jù)的可視界面,供操作者通過所述可視界面,實現(xiàn)對所述菜單數(shù)據(jù)的維護。通過該技術(shù)方案,可視界面可以保證用戶對所有數(shù)據(jù)一目了然,且不需進行數(shù)據(jù)庫操作或編程操作等復(fù)雜工作,即可高效地進行菜單數(shù)據(jù)的維護。圖3是根據(jù)本發(fā)明的一個實施例的菜單管理裝置的示意圖。如圖3所示,本實施例中的菜單管理裝置300包括菜單數(shù)據(jù)存儲單元302、菜單數(shù)據(jù)維護單元304 (對應(yīng)前述的數(shù)據(jù)維護單元)、菜單數(shù)據(jù)緩存處理單元306 (對應(yīng)前述的數(shù)據(jù)加載單元)、菜單規(guī)則管理單元308 (對應(yīng)前述的策略制定單元)、菜單對象生成單元 310 (對應(yīng)前述的菜單生成單元)。(一 )菜單數(shù)據(jù)存儲單元302。菜單項的數(shù)據(jù)模型定義菜單數(shù)據(jù)保存在數(shù)據(jù)庫表中,具體為菜單表,SysMenu,記錄菜單信息,包括菜單的ID、名稱、所屬產(chǎn)品、級次、父菜單 ID、權(quán)限ID、依賴等屬性,利用這些信息構(gòu)成一個菜單樹結(jié)構(gòu)。
權(quán)利要求
1.一種菜單管理裝置,其特征在于,包括 數(shù)據(jù)加載單元,加載用于生成菜單的菜單數(shù)據(jù);數(shù)據(jù)過濾單元,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾; 菜單生成單元,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。
2.根據(jù)權(quán)利要求1所述的菜單管理裝置,其特征在于,還包括策略制定單元,根據(jù)當(dāng)前操作者的權(quán)限,和/或當(dāng)前系統(tǒng)中運行的子系統(tǒng)信息和/或安裝信息,來制定所述策略,并記錄到預(yù)設(shè)的配置文件中;所述數(shù)據(jù)過濾單元從所述配置文件中讀取所述策略,以對所述菜單數(shù)據(jù)進行過濾。
3.根據(jù)權(quán)利要求1所述的菜單管理裝置,其特征在于,所述數(shù)據(jù)加載單元還判斷預(yù)存儲在數(shù)據(jù)庫中的所述菜單數(shù)據(jù)是否已發(fā)生更改,在判斷結(jié)果為是時,從所述數(shù)據(jù)庫中讀取所述菜單數(shù)據(jù)以進行加載,并將所述菜單數(shù)據(jù)存儲到緩存文件中,在判斷結(jié)果為否時,從預(yù)存儲有所述菜單數(shù)據(jù)的緩存文件中,讀取所述菜單數(shù)據(jù)以進行加載。
4.根據(jù)權(quán)利要求1所述的菜單管理裝置,其特征在于,所述菜單生成單元根據(jù)預(yù)設(shè)的參數(shù),對所述菜單選項的屬性進行修改,再進行顯示。
5.根據(jù)權(quán)利要求1至4中任一項所述的菜單管理裝置,其特征在于,還包括數(shù)據(jù)維護單元,從預(yù)存儲有所述菜單數(shù)據(jù)的數(shù)據(jù)庫中,讀取所述菜單數(shù)據(jù),并生成顯示有所述菜單數(shù)據(jù)的可視界面,供操作者通過所述可視界面,實現(xiàn)對所述菜單數(shù)據(jù)的維護。
6.一種菜單管理方法,其特征在于,包括 步驟202,加載用于生成菜單的菜單數(shù)據(jù);步驟204,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾;步驟206,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。
7.根據(jù)權(quán)利要求6所述的菜單管理方法,其特征在于,在所述步驟204之前,還包括 根據(jù)當(dāng)前操作者的權(quán)限,和/或當(dāng)前系統(tǒng)中運行的子系統(tǒng)信息和/或安裝信息,來制定所述策略,并記錄到預(yù)設(shè)的配置文件中; 所述步驟204具體包括從所述配置文件中讀取所述策略,以對所述菜單數(shù)據(jù)進行過濾。
8.根據(jù)權(quán)利要求6所述的菜單管理方法,其特征在于,所述步驟202還包括判斷預(yù)存儲在數(shù)據(jù)庫中的所述菜單數(shù)據(jù)是否已發(fā)生更改,在判斷結(jié)果為是時,從所述數(shù)據(jù)庫中讀取所述菜單數(shù)據(jù)以進行加載,并將所述菜單數(shù)據(jù)存儲到緩存文件中,在判斷結(jié)果為否時,從預(yù)存儲有所述菜單數(shù)據(jù)的緩存文件中,讀取所述菜單數(shù)據(jù)以進行加載。
9.根據(jù)權(quán)利要求6所述的菜單管理方法,其特征在于,所述步驟206還包括 根據(jù)預(yù)設(shè)的參數(shù),對所述菜單選項的屬性進行修改,再進行顯示。
10.根據(jù)權(quán)利要求6至9中任一項所述的菜單管理方法,其特征在于,還包括從預(yù)存儲有所述菜單數(shù)據(jù)的數(shù)據(jù)庫中,讀取所述菜單數(shù)據(jù),并生成顯示有所述菜單數(shù)據(jù)的可視界面,供操作者通過所述可視界面,實現(xiàn)對所述菜單數(shù)據(jù)的維護。
全文摘要
本發(fā)明提供一種菜單管理裝置和一種菜單管理方法,其中,菜單管理裝置包括數(shù)據(jù)加載單元,加載用于生成菜單的菜單數(shù)據(jù);數(shù)據(jù)過濾單元,根據(jù)預(yù)設(shè)的策略,對所述菜單數(shù)據(jù)進行過濾;菜單生成單元,根據(jù)過濾后的所述菜單數(shù)據(jù),生成菜單選項并進行顯示。通過本發(fā)明,可以制定不同的策略,以對生成菜單的數(shù)據(jù)進行過濾,保證生成的菜單符合菜單的應(yīng)用場景,以及客戶的定制需求。
文檔編號G06F17/30GK102436473SQ20111029555
公開日2012年5月2日 申請日期2011年9月29日 優(yōu)先權(quán)日2011年9月29日
發(fā)明者李正 申請人:用友軟件股份有限公司