WinForm開發框架【細化權限至操作按鈕】


  有不少園友經常問我程序有沒有更新,真的很抱歉,最近因為工作原因一直很忙,導致程序有很長時間都沒有更新了,首先在這里感謝關心俺的朋友們。

  這幾天好好看了一下原來的程序,還有很多地方需要改進,比如操作數據庫的方式、權限、報表等等,數據庫與報表下一步逐步進行更新,先將權限再細化一點兒,精確到操作按鈕上面,本來想在菜單下面跟着添加按鈕權限的,這樣的話看上去直觀一些,如下圖所示:

但是在開發過程中遇到了幾個比較棘手的問題,如果要整理出來的話改動的地方會很多,所以暫時我將按鈕權限提出來了,當然這個功能是一模一樣的,數據也都是從數據庫提取出來的,只是在視覺上面感覺有點遺憾。
下圖所示:當前用戶對“菜單信息設置”只有查看的權限,沒有其它操作權限,

現在給它分配操作的權限,如下圖:

然后在頁面的Load里面增加了以下代碼:

/// <summary>
        /// 根據權限列表里面的信息,來決定用戶具體有哪些操作權限。
        /// </summary>
        void SetButton()
        {
            DataTable dt_SetButton = new DataTable();
            dt_SetButton = new sys_RoleManager().GetUserRoleByUserID("1", allenSingleton.UserID);
            if (dt_SetButton.Rows.Count > 0)
            {
                DataTable dt_New = new DataTable();
                dt_New = dt_SetButton.Clone();
                //這一步其實可以直接從數據庫查詢出來,如果放在存儲里面完成的話也需要另外添加一個FunctionName的參數
                //所以就在程序里面從Table里面Select一下。
                DataRow[] dr = dt_SetButton.Select("FunctionName='菜單資料設置'");
                for (int i = 0; i < dr.Length; i++)
                {
                    dt_New.ImportRow((DataRow)dr[i]);
                }

                if (dt_New.Rows[0]["AddID"].ToString() != "")
                {
                    this.tsCreate.Enabled = true;
                }
                if (dt_New.Rows[0]["DeleteID"].ToString() != "")
                {
                    this.tsDelete.Enabled = true;
                }
                if (dt_New.Rows[0]["UpdateID"].ToString() != "")
                {
                    this.tsChange.Enabled = true;
                }
                if (dt_New.Rows[0]["PrintID"].ToString() != "")
                {
                    this.tsPrint.Enabled = true;
                }
            }
        }

從下圖可以看到當前用戶已經可以對“菜單信息設置”進行刪除和打印了

對應的操作ID都是保存在數據庫,操作類型也是動態從數據庫讀取的。

最近事情太多了,等沒這么忙了之后好好整理一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM