天天看點

之通用權限(五):項目描述表組(轉)

繼續,這是第五章了。我發現了,寫文章比寫程式還要有難度。另外,大家期待的高人——吉日嘎拉,已經露頭了,他在第四章裡面留言了,而且留了很多,回複的比較晚,可能有些Tx沒有看到,如果您感興趣可以去看看,如果不感興趣就算了。

通用權限想要寫的文章目錄:(這是第五章)

1、 ​​簡介、資料庫的總體結構​​

2、 ​​介紹人員表組​​

3、 ​​介紹組織結構表組​​

4、 ​​介紹角色表組​​

5、 ​​介紹“項目自我描述表組”​​

6、 權限到節點

7、 權限到按鈕

8、 權限到清單(表單、查詢)

9、 權限的驗證

10、 資源方面的權限

11、 角色管理的程式(給客戶用的)

12、 權限下放

13、 個性化設定

項目描述表組

      這裡的表比較多,主要分為兩個部分,一個是“字典資訊”,這裡就不介紹了,感興趣的話,請下載下傳資料庫說明文檔;另一個就是裝載配置資訊的表。

      項目描述,顧名思義就是想要用資料(記錄)的形式來描述一個項目,當然不能所有的事情都能用資料的形式描述出來,隻有和資料相關的地方才行。最初的目的是給我的幾個自定義控件指派用的,比如表格控件、表單控件、查詢控件等,他們都需要很多的資訊給他們的屬性指派,如果直接在代碼裡面寫的話,那還不如直接拖拽控件簡單呢,是以我就把需要的屬性都放在了“表”裡面。一開始并沒有想到權限,後來才發現,隻要修改一下SQL語句,就可以達到“權限”的目的,包括資源權限。同理,也可以達到“個性化設定”的效果。是以我感覺權限、個性化設定隻是自然架構的一個副産品。當然你也可以說,通用權限和我的自定義控件綁定的太緊了,這個也沒有辦法,總之,先實作了需求再說,然後再想辦法解決侵入性的問題。

      為了便于大家的了解,在說明這些表的時候舉一個舉一個具體的例子吧。SQL Server 2000裡面有一個 sysobjects 表,表裡面有一個xtype字段,這個字段是說明類型的,比如xtype=’U ’,表示使用者表,xtype=’V ’,表示視圖。在網上查了一下,發現這個xtype字段至少有16種值,我做了一個表“Manage_Base_TableType”來記錄這個資訊。是以我這裡就以這個表為例,說一下項目描述表組裡的幾個表的作用。

【Manage_Base_TableType的字段和資料】

之通用權限(五):項目描述表組(轉)
【頁面效果】
之通用權限(五):項目描述表組(轉)

項目描述表的說明

      1、Manage_Function,功能節點表。這裡記錄了一個項目的所有的功能節點。通過這個表就可以看到這個項目可以做什麼。很有項目描述的味道吧。

【字段】

字段名 中文名  字段類型 大小  預設值 是否空  說明
FunctionID 節點ID int 4 1 主鍵
ParentID 父節點ID 員工姓名
ParentIDPath 父節點ID的路徑 nvarchar 30 _
NoteTitle 節點名稱 100
PowerMark 權限辨別 50 一般情況下等于FunctionID
NoteLevel 級數 第幾級節點
IsShowNote 節點是否顯示 bit 功能節點裡面是否顯示
IsShowPower 角色是否顯示 角色選擇是否顯示
Sort 排序
WebURL 網址 打開網頁的網址
Target 目标 10

【示例】

之通用權限(五):項目描述表組(轉)

      這個表是權限到節點的關鍵表。下一章會詳細說明,其實大家應該也知道了。

      2、Manage_Table,記錄資料庫裡的表的資訊。他主要是區分一個字段是屬于哪個表的。

TableID
TableName 表名 60
IDColumn 主鍵名
Type 類型 char 2
Content 表說明
ExcelTableName 工作表名稱 用于修改Excel裡面的資訊
之通用權限(五):項目描述表組(轉)

      3、Manage_Columns,記錄資料庫裡的表的字段的資訊。在原有的基礎上(字段名、字段類型、大小等),又增加了一些UI需要的資訊,比如控件類型、驗證方式等,就是說這個字段在表單裡面表現為什麼控件,這些是表單控件需要的資訊。

ColumnID 字段辨別
表ID 外鍵
ColSysName 字段名稱 資料庫裡的名稱
ColName 對外名稱 顯示給使用者看的名稱
ColType 字段類型 20
ColSize 字段大小
ControlKindID 控件類型
CheckKindID 驗證類型
CheckUserDefined 自定義驗證 自行定義驗證的方式,通過正規表達式實作。
ControlInfo 控件描述 500 描述控件
ControlID 控件ID 在頁面裡的控件ID
之通用權限(五):項目描述表組(轉)

      4、Manage_Function_Info,這裡記錄了分頁控件需要的屬性,還有節點的添加、修改、删除時需要的表。

FunctionTitle 清單标題
TableNameList 清單用的表名
TableNameExcel 導出Excel用的表名
ForeignColumn 外鍵名 如果是從表的話,可以填寫外鍵表,用于顯示資料時候的過濾條件
SQLKindID 分頁算法
PKColumn
ShowColumns 顯示的字段 *
OrderColumns 排序字段
PageSize 一頁記錄數
QueryAlways 固定的查詢條件 300
Query 第一次的查詢條件
NaviCount 頁号數量
TableNameAdd 添加資料用表
TableNameUpdate 修改資料用表
TableNameView 檢視資料用表
TableNameDel 删除資料用表

      5、Manage_FunFindCol,記錄一個節點裡面的查詢控件需要的字段,又增加了查詢類型的字段。

FindColID 序号
外鍵,關聯節點
字段ID 外鍵,關聯字段
同一節點下的排序
FindKindID 查詢方式 外鍵,查詢方式
DefaultValue 預設值 第一次顯示查詢的時候的字段的預設查詢關鍵字
clearTDStart 去掉開頭的TD 合并到上一個TD,設定空格
clearTDEnd 去掉結尾的TD 接收下一個TD
TDColspan TD數 一個字段占用多少TD
之通用權限(五):項目描述表組(轉)

      6、Manage_FunFormCol,記錄一個節點裡面的表單控件需要的字段,增加了提示資訊、控件狀态等字段。可以繪制表單

FormColID
ColHelp 提示資訊 出現在控件旁的提示資訊,比如“使用者名必須4-20個字元”
HelpStation 提示資訊的位置 1:不顯示;2:左面;3:右面
控件的預設值
ControlState 控件狀态 1:正常;2:隻讀;3:不可用
IsShow 是否顯示 1:顯示;0:不顯示
ClearTDStart
ClearTDEnd
之通用權限(五):項目描述表組(轉)

      7、Manage_FunListCol,記錄一個節點的資料清單需要的字段。可以用這個資訊繪制表格的表頭。

ListColID
ColWidth 列寬度 TD的寬度
ColAlign 列對齊方式 left TD的對齊方式
Format 格式化 對資訊進行格式化
MaxLength 最大字元數 TD裡面最多顯示多少字元
之通用權限(五):項目描述表組(轉)

      8、Manage_ButtonBar,記錄了一個節點有哪些功能按鈕,比如添加、修改、删除、查詢等。可以添加任意功能的按鈕。可以繪制清單頁面裡的按鈕。

ButtonID
BtnTitle 按鈕标題 按鈕上面顯示的文字
BtnID 按鈕ID 按鈕的ID
BtnTypeID 按鈕類型
URL 打開的網址 240 單擊按鈕後打開的網頁
WebWidth 打開視窗寬度
WebHeight 打開視窗高度
IsNeedSelect 是否需要選中資料 0:不需要;1:需要
之通用權限(五):項目描述表組(轉)

繼續閱讀