轉(zhuǎn)帖|使用教程|編輯:龔雪|2021-10-15 09:57:16.063|閱讀 265 次
概述:本文主要介紹Winform框架中窗體基類的用戶身份信息的緩存和提取,有界面開發(fā)需求的開發(fā)人員可下載文中工具體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在WinForm開發(fā)中,有時候為了方便,需要把窗體的一些常規(guī)性的數(shù)據(jù)和操作函數(shù)進行封裝,通過自定義基類窗體的方式,可以實現(xiàn)這些封裝管理,讓我們的框架統(tǒng)一化、簡單化的處理一些常規(guī)性的操作,如這里介紹的用戶身份信息的緩存和提取。通過基類的封裝,可以大大減少常規(guī)性的代碼,這個也是基類封裝的目的所在。
用戶登錄界面,通過獲得用戶的賬號密碼進行登錄驗證,如下界面所示。
登錄過程如下所示,成功后獲得用戶的身份信息并緩存起來待用,畢竟系統(tǒng)界面,大多數(shù)都需要獲得用戶的信息的。
獲得用戶的身份信息后,調(diào)用SetLoginInfo設(shè)置緩存數(shù)據(jù),以備后用。
通過上面的處理,用戶身份信息,權(quán)限信息,角色信息,都可以一次性獲得,供各個界面上使用了。
這里的LoginUserInfo是窗體基類的一個屬性,這個屬性通過兩種方式獲得,一個是通過用戶在調(diào)用窗體顯示前進行指定,一種是通過基類自動把緩存里面的用戶對象賦值。
如下面的代碼就是界面基類BaseForm的部分代碼。
namespace WHC.Framework.BaseUI { /// <summary> /// 常規(guī)界面基類 /// </summary> public partial class BaseForm : DevExpress.XtraEditors.XtraForm, IFunction { public event EventHandler OnDataSaved;//子窗體數(shù)據(jù)保存的觸發(fā) public BaseForm() { InitializeComponent(); //為了保證一些界面控件的權(quán)限控制和身份確認,以及簡化操作,在界面初始化的時候,從緩存里面內(nèi)容(如果存在的話) //繼承的子模塊,也可以通過InitFunction()進行指定用戶相關(guān)信息 this.LoginUserInfo = Cache.Instance["LoginUserInfo"] as LoginUserInfo; this.FunctionDict = Cache.Instance["FunctionDict"] as Dictionary<string, string>; }
這樣界面基類實例化的時候,就會自動獲取用戶信息了,這個操作類似于Web領(lǐng)域里面的Session操作,只要存儲/獲取的鍵值保存一致即可。
用戶組件,也可以通過這樣類似的方式定義一個基類,以后所有自定義用戶組件,就很方便獲得用戶的身份信息了,如下代碼所示。
在窗體界面上,可以放置很多模塊,模塊通過窗體獲得用戶身份信息、角色信息等進行初始化的判斷。
最終在主體界面中整合的是一個個模塊,每個模塊里面又有不同的窗體界面可供使用,但是都能通過緩存獲得用戶身份信息,數(shù)據(jù)處理起來就非常方便了。
對于業(yè)務(wù)報銷信息,我們可以根據(jù)用戶身份信息,迅速獲得對應(yīng)的記錄列表,以及在修改的時候,記錄用戶的身份信息。
如新增一條主表記錄的時候,那么可以彈出一個新的界面進行數(shù)據(jù)的維護處理,界面如下所示。
或者類似下面的界面處理。
DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創(chuàng)建具有影響力的業(yè)務(wù)解決方案。DevExpress WinForms能完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序,無論是Office風格的界面,還是分析處理大批量的業(yè)務(wù)數(shù)據(jù),它都能輕松勝任!
本文轉(zhuǎn)載自:
DevExpress技術(shù)交流群4:715863792 歡迎一起進群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: