基于角色訪問控制的OA系統(tǒng)的設計與實現(xiàn)-無憂無慮畢設網_第1頁
基于角色訪問控制的OA系統(tǒng)的設計與實現(xiàn)-無憂無慮畢設網_第2頁
基于角色訪問控制的OA系統(tǒng)的設計與實現(xiàn)-無憂無慮畢設網_第3頁
基于角色訪問控制的OA系統(tǒng)的設計與實現(xiàn)-無憂無慮畢設網_第4頁
基于角色訪問控制的OA系統(tǒng)的設計與實現(xiàn)-無憂無慮畢設網_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

無憂無慮畢設網 ():畢業(yè)設計源碼下載 畢業(yè)設計源碼下載: 本文配套程序下載地址 : 無憂無慮畢設網 ()-大學生畢業(yè)設計站 ,免費畢業(yè)設計論文 ,無憂無慮畢設網 大學生畢業(yè)設計 ,出售各類畢業(yè)設計源碼 ,論文 ,程序源碼 ,網站源碼 ,免費視頻教程 ,我們將竭誠為您服務! 分類號: TP315 U D C: D10621-408-(2007)5806-0 密 級:公 開 編 號: 2003031229 成 都 信 息 工 程 學 院 學 位 論 文 基于角色訪問控制的 OA系統(tǒng)的設計與實現(xiàn) 論文作者姓名: 楊洋 申請學位專業(yè): 計算機科學與技術 申請學位類別: 工學學士 指導教師姓名(職稱): 羅代升(教授) 論文提交日期: 2007 年 06 月 09 日 基于角色訪問控制的 OA系統(tǒng)的設計與實現(xiàn) 摘 要 辦公自動化是一個新興的、復雜的、綜合性的領域,它以計算機和網絡技術為核心,同時涉及到自然科學、管理學、社會學、系統(tǒng)工程學等多種學科的內容。實現(xiàn)辦公自動化可以極大地提高辦公效率以及辦公質量。 本程序實現(xiàn)了 OA 辦公系統(tǒng)的部分主要功能,即文檔管理,電子郵件管理,發(fā)文管理等,同時使用了 角色訪問控制,增強了系統(tǒng)的安全性。其開發(fā)主要包括后臺數(shù)據(jù)庫的建立、管理和前端應用程序的開發(fā)兩個方面。 本文首先介紹了基于角色訪問控制的 OA 系統(tǒng)的整體系統(tǒng)架構及 Microsoft SQL SERVER 數(shù)據(jù)庫的建立,然后對數(shù)據(jù)庫進行了相關的設計,最后介紹了各個功能子模塊的設計思路與具體實現(xiàn)方法。 關鍵詞 : OA 系統(tǒng);角色訪問控制; SQL;數(shù)據(jù)庫 Design and Realization of OA System Based on RBAC Abstract OA is a rising, complex, all-around field. It makes computer network technology the main points, and involves science, management science, sociology, system engineering and other disciplines. To realize office automation can greatly improve office efficiency and quality office. Some functions of the OA System based on RBAC, such as file management, e-mail management and document management, are realized in the program. At the same time, the use of roles based on access control lets the system more security. It involves the establishment and management of the database and the development of the front-end application. First of all, this paper introduces the architecture of the OA system based on BRAC and the fundament of Microsoft SQL SERVER database. Secondly, it makes a design in the related database tables. At last, the design and the implementation of each module is introduced in detail. Key words: OA System; RBAC; SQL Server Database 目 錄 論文總頁數(shù): 26頁 1 引 言 . 1 1.1 課題背景 . 1 1.2 國內外研究現(xiàn)狀 . 1 1.3 本課題研究的意義 . 2 1.4 本課題的研究方法 . 2 2 數(shù)據(jù)庫概論 . 2 2.1 數(shù)據(jù)庫的發(fā)展 . 2 2.1.1 數(shù)據(jù)庫的發(fā)展 . 2 2.1.2 數(shù)據(jù)庫技術 . 3 2.2 數(shù)據(jù)庫理論基礎 . 3 2.2.1 數(shù)據(jù)庫模型 . 3 2.2.2 數(shù)據(jù)庫體系結構 . 4 2.3 SQL語言基礎 . 4 2.3.1 SQL簡介 . 4 2.3.2 SQL查詢 . 5 2.3.3 SQL更新 . 5 3 開發(fā)工具及 RBAC 知識簡介 . 6 3.1 Delphi6.0簡介 . 6 3.2 Delphi6.0控件 . 6 3.3 RBAC知識簡介 . 7 4 系統(tǒng)需求分析 . 8 4.1 功能需求 . 8 4.2 系統(tǒng)平臺選擇 . 9 5 系統(tǒng)總體設計 . 10 5.1 系統(tǒng)概要設計 . 10 5.1.1 系統(tǒng)結構設計 . 11 5.1.2 數(shù)據(jù)庫設計 . 11 5.2 系統(tǒng)詳細設計 . 14 6 系統(tǒng)應用程序設計 . 15 6.1 系統(tǒng)模塊組成 . 15 6.2 數(shù)據(jù)模塊的設置 . 15 6.3 主要功能模塊的實現(xiàn) . 16 6.3.1 登錄模塊 . 16 6.3.2 系統(tǒng)主頁面 . 17 6.3.3 內部通信模塊 . 18 6.3.4 發(fā)送通知 . 19 6.3.5 管理員操作 . 21 6.3.6 數(shù)據(jù)組模塊 . 21 7 建議和措施 . 22 結 論 . 22 參考文獻 . 23 致 謝 . 24 聲 明 . 25 第 1 頁 共 26 頁 1 引 言 1.1 課題背景 OA 辦公系統(tǒng)是信息革命的產物,也是社會信息化的重要技術保證?;仡櫧?0 年來微電子技術的進步和通信技術的突飛猛進的發(fā)展,各種先進的辦公設備如雨后春筍般出現(xiàn)。為適應瞬息萬變、競爭激烈的時代要求,各辦公機構紛紛引入自動化 系統(tǒng)。辦公自動化作為當前國際上飛速發(fā)展的一門綜合性新學科,已經越來越受到人們的重視。 現(xiàn)今,隨著各政府機構和企業(yè)內的計算機及局域網絡應用的普及與深入,企業(yè)內部、企業(yè)與外界之間、政府機構內部、政府機構與外界之間需要交換或共享更多的信息與資源。為了能更有效地、準確地、快速地共享傳遞各種生產、銷售數(shù)據(jù)及管理信息,加強政府機構和企業(yè)內部各部門間的聯(lián)系,縮短工作流程、提高工作效率、實現(xiàn)資源共享、協(xié)同有效作業(yè)、集中統(tǒng)一管理以求降低運作及管理的成本,企業(yè)非常有必要建立一個企業(yè)內部局域網,即實現(xiàn)企業(yè)辦公自動化的網絡信息平臺 OA 辦公系統(tǒng)。 1.2 國內外研究現(xiàn)狀 世界 OA系統(tǒng)的發(fā)展非常迅猛,世界各國政府極為重視本國的 OA系統(tǒng)的發(fā)展,不惜花費巨資。美國的辦公自動化在公司和企業(yè)中發(fā)展得比政府部門要早,并且水平也較高。各公司、企業(yè)不僅把 OA 視為提高效率、節(jié)約成本的手段,更是利用它來加強經營管理,作為提高企業(yè)素質和企業(yè)競爭能力的重要條件 。回顧我國OA辦公系統(tǒng)的進程,大致可以分為以下三個階段: (1)以桌面字處理工具為典型的個人辦公工具軟件階段,計算機的應用提高了個人工作效率。 (2)基于關系型數(shù)據(jù)庫技術,以 C/S 體系結構應用為特征 階段,這一階段基本實現(xiàn)了部門級的數(shù)據(jù)處理和公文處理的自動化。 (3)基于符合 Internet/Intranet 技術標準的平臺應用階段,這一階段,不僅在技術上有了很大進步,而且應用范圍以從部門內部,部門之間擴展到行業(yè)系統(tǒng)內部,乃至跨部委跨系統(tǒng)。 20世紀 90年代以后,國外的 OA辦公系統(tǒng)發(fā)展趨勢為以下四個方向: (1)OA設備向著高性能、多功能、復雜化和系統(tǒng)化發(fā)展。 (2)OA系統(tǒng)向著數(shù)字化、智能化、無紙化和綜合化發(fā)展。 (3)以計算機為核心的辦公工作站將向處理文字、數(shù)據(jù)、聲音、圖形的多媒體方向發(fā)展。 (4)通 信在 OA 系統(tǒng)的地位進一步加強,可以充分利用現(xiàn)代通信技術,建立全球的網絡體系。 第 2 頁 共 26 頁 1.3 本課題研究的意義 OA 辦公系統(tǒng) 是信息化社會最重要的標志之一,它將人、計算機和信息三者結合為一個辦公體系,構成一個服務于辦公業(yè)務的人機信息處理系統(tǒng)。通過提高辦公效率,使用先進的機器設備和技術,辦公人員可以充分利用各種辦公信息資源,從而提高辦公效率,使辦公業(yè)務從事務層次進入管理層,甚至輔助決策層,將辦公和管理提高到一個嶄新的水平。 辦公自動化的實現(xiàn),不僅僅是取代秘書的部分工作,它更是將引起辦公制度、工作方式、辦公流程、傳統(tǒng)習慣、 工作環(huán)境和決策進程等方面的深刻變革,使辦公行為科學化、規(guī)范化和標準化。各國的經驗表明:國家經濟現(xiàn)代化必須依賴各級管理水平的提高和辦公自動化。因此,辦公自動化必將對我國整個社會生活的各個方面產生深刻的影響。 1.4 本課題的研究方法 應該說沒有人懷疑計算機的出現(xiàn)給辦公室職員帶來的便利,但是對現(xiàn)代的辦公自動化而言,其目的己經不局限于減輕員工的工作量,而是要將員工從繁瑣的事務性工作中解放出來,用更多的精力去關注最重要的事情,從而提高企業(yè)的效率,增強企業(yè)的綜合競爭能力。在這種辦公模式下,企業(yè)的組織結構能夠得到簡化, 各個部門在信息共享的基礎上進行協(xié)作,便于明確各個部門甚至每個員工的責任,而決策層可以迅速綜合來自各個方面的信息,并以此為依據(jù)制定企業(yè)的戰(zhàn)略決策。從這個意義上講,在市場競爭日趨白熱化的今天,辦公自動化己經不再是一種手段、一種工具,而成為決定企業(yè)生存發(fā)展的命脈。應此,我們通過 OA系統(tǒng)所實施的交換式網絡應用,使信息的傳遞更加快捷和方便,從而極大地擴展了辦公手段,實現(xiàn)了辦公的高效率。 2 數(shù)據(jù)庫概論 2.1 數(shù)據(jù)庫的發(fā)展 2.1.1 數(shù)據(jù)庫的發(fā)展 數(shù)據(jù)管理技術的發(fā)展,與硬件(主要是外存)、軟件、計算機應用的范圍有密 切的聯(lián)系。數(shù)據(jù)管理技術的發(fā)展經過三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫階段。 人工管理階段和文件系統(tǒng)階段都有著相當多的缺陷,諸如數(shù)據(jù)冗余性 ,數(shù)據(jù)不一致性以及數(shù)據(jù)聯(lián)系弱等等。也正是由于這些原因,促使人們研究新的數(shù)據(jù)管理技術,從而產生了數(shù)據(jù)庫技術。 當進入數(shù)據(jù)庫階段后,隨著數(shù)據(jù)管理規(guī)模一再擴大,數(shù)據(jù)量急劇增加,為了提高效率,開始時,人們只是對文件系統(tǒng)加以擴充,在應用文件中建立了許多輔助索引,形成倒排文件系統(tǒng)。但這并不能最終解決問題。在 20世紀 60年代末,磁盤技術取得重要進展,具有數(shù)百兆容量和快速存取的磁 盤陸續(xù)進入市場,成本 第 3 頁 共 26 頁 也不高,為數(shù)據(jù)庫技術的產生提供了良好的物質條件。 2.1.2 數(shù)據(jù)庫技術 從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫系統(tǒng)是信息處理領域的一個重大變化。在文件系統(tǒng)階段,人們關注的中心問題是系統(tǒng)功能的設計,因而程序設計處于主導地位,數(shù)據(jù)只起著服從程序需要的作用。在數(shù)據(jù)庫方式下,信息處理觀念已為新體系所取代,數(shù)據(jù)占據(jù)了中心位置。數(shù)據(jù)結構的設計成為信息系統(tǒng)首先關心的問題,而利用這些數(shù)據(jù)的應用程序設計則退居到以既定的數(shù)據(jù)結構為基礎的外圍地位。 在數(shù)據(jù)庫技術中有四個名詞,其概念應該分清。 ( 1)數(shù)據(jù)庫( database, DB): DB 是統(tǒng)一管理的相關數(shù)據(jù)的集合。 DB 能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨立性。 ( 2)數(shù)據(jù)庫管理系統(tǒng)( Database Management System, DBMS): DBMS 是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問 DB 的方法,包括 DB的建立、查詢、更新及各種數(shù)據(jù)控制。 DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網狀型、關系型和面向對象型 DBMS。 ( 3)數(shù)據(jù)庫系統(tǒng)( Database System, DBS): DBS是實現(xiàn)有組織地、動態(tài)地存儲大量關聯(lián)數(shù)據(jù),方便多用戶訪問的計算機軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術的計算機系統(tǒng)。 ( 4)數(shù)據(jù)庫技術:這是一門研究數(shù)據(jù)庫的結構、存儲、管理和使用的軟件學科。數(shù)據(jù)庫技術是操作系統(tǒng)的文件系統(tǒng)基礎上發(fā)展起來的。而 DBMS 本身要在操作系統(tǒng)的支持下才能工作。數(shù)據(jù)庫不僅用到數(shù)據(jù)結構的知識,而且豐富了數(shù)據(jù)結構的內容。在關系數(shù)據(jù)庫中要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫技術是一門綜合性較強的學科。 2.2 數(shù)據(jù)庫理論基礎 2.2.1 數(shù)據(jù)庫模型 模型是對現(xiàn)實世界的抽象。在數(shù)據(jù)庫技術中,我們用模型的 概念描述數(shù)據(jù)庫的結構與語義,對現(xiàn)實世界進行抽象,表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。 目前廣泛作用的數(shù)據(jù)模型可分為兩種類型。 一種是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為“概念數(shù)據(jù)模型” 。要領模型用于建立信息世界的數(shù)據(jù)模型,強調其語義表達功能,應該概念簡單、清晰,易于用戶理解,它是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設計人員之間進行交流的工具。這一其中著名的模型是“實體關系模型”。 另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結構, 它是現(xiàn)實世界的第二層抽 第 4 頁 共 26 頁 象。這類模型涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),又稱為“結構數(shù)據(jù)模型”。例如,層次、網狀、關系、面向對象等模型。這類模型有嚴格的形式化定義,以便于在計算機系統(tǒng)中實現(xiàn)。 面向對象模型能完整地描述現(xiàn)實世界的數(shù)據(jù)結構,具有豐富的表達能力,但模型相對較復雜,涉及的知識面也廣,因此面向對象數(shù)據(jù)庫尚未達到關系數(shù)據(jù)庫那樣的普及程度。 2.2.2 數(shù)據(jù)庫體系結構 數(shù)據(jù)庫的體系結構分三級:內部級( internal) ,概念級( conceptual)和外部級( external)。這個三級結構有時也稱為“三級模 式結構”,或“數(shù)據(jù)抽象的三個級別”,最早是在 1971年通過的 DBTG 報告中提出,后來收入在 1975年的美國 ANSI/SPARC報告中。雖然現(xiàn)在 DBMS的產品多種多樣,在不同的操作系統(tǒng)支持下工作,但是大多數(shù)系統(tǒng)在總的體系結構上都具有三級模式的結構特征。 從某個角度看到的數(shù)據(jù)特性稱為“數(shù)據(jù)視圖”( data view)。 外部級最接近用戶,是單個用戶所能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。 概念級涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局數(shù)據(jù)視圖的描述稱為“概念模式”。 內部級最接近 于物理存儲設備,涉及到實際數(shù)據(jù)存儲的結構。物理存儲數(shù)據(jù)視圖的描述稱為“內模式”。 數(shù)據(jù)庫的三級模式結構是數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給DBMS 去做,用戶只要抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的表示和存儲,這樣就減輕了用戶使用系統(tǒng)的負擔。 三級結構之間往往差別很大,為了實現(xiàn)這三個抽象級別的聯(lián)系和轉換, DBMS在三級結構之間提供兩個層次的映像( mappings):外模式 /模式映像,模式 /內模式映像。此處模式是概念模式的簡稱。 2.3 SQL語言基礎 2.3.1 SQL 簡介 用戶對數(shù)據(jù)庫的使用, 是通過數(shù)據(jù)庫管理系統(tǒng)提供的語言來實現(xiàn)的。不同的數(shù)據(jù)庫管理系統(tǒng)提供不同的數(shù)據(jù)庫語言。關系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關系數(shù)據(jù)庫標準語言 SQL。 SQL 的全稱是 Structured Query Language,即結構化查詢語言。 SQL 語句可以從關系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、增加數(shù)據(jù)、修改數(shù)據(jù)。 1986年 ANSI 采用 SQL 語言作為關系數(shù)據(jù)庫系統(tǒng)的標準語言,后被國際化標準組織( ISO)采納為國際標準。 SQL 語言使用方便、功能豐富、簡潔易學,是操作數(shù) 第 5 頁 共 26 頁 據(jù)庫的工業(yè)標準語言,得到廣泛地應用。例如關系數(shù)據(jù)庫產品 DB2、 ORACLE等都實現(xiàn)了 SQL語言。同時,其它數(shù)據(jù)庫產品廠家也紛紛推出各自的支持 SQL的軟件或者與 SQL的接口軟件。這樣 SQL語言很快被整個計算機界認可。 SQL語言是一種非過程化語言,它一次處理一個記錄集合,對數(shù)據(jù)提供自動導航。 SQL語言允許用戶在高層的數(shù)據(jù)結構上工作,而不對單個記錄進行操作。SQL語言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)據(jù)存取的最快速手段。當設計者在關系表上定義了索引時,系統(tǒng)會自動利用索引進行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等 細節(jié)。 2.3.2 SQL 查詢 數(shù)據(jù)查詢是關系運算理論在 SQL 語言中的主要體現(xiàn), SELECT 語句是 SQL 查詢的基本語句,當我們在對一個數(shù)據(jù)庫進各種各樣的操作時,使用的最多的就是數(shù)據(jù)查詢,在以 SQL 為基礎的關系數(shù)據(jù)庫中,使用的最多的就是 SELECT 查詢語句。 SELECT語句的完整句法如下: SELECT 目標表的列名或列表達式序列 FROM 基本表和(或)視圖序列 WHERE 行條件表達式 GROUP BY 列名序列 HAVING 組條件表達式 ORDER BY列名 ASC DEAC 2.3.3 SQL 更新 使用數(shù)據(jù)庫的目的是為了有效地管理數(shù)據(jù),而數(shù)據(jù)的插入、刪除和修改則是必不可少的一個功能。在本系統(tǒng)中就大量地使用了數(shù)據(jù)插入、刪除和修改這三種操作,現(xiàn)做一個簡單地介紹。 數(shù)據(jù)插入 往數(shù)據(jù)庫的基本表中插入數(shù)據(jù)使用的是 INSERT 語句,其方式有兩種:一種是元組值的插入,另一種是查詢結果的插入。在本系統(tǒng)中使用的是前一種方式,其句法如下: INSERT INTO基本表名(列表名) VALUES(元組值) 數(shù)據(jù)刪除 往數(shù)據(jù)庫的基本表中刪除數(shù)據(jù)使用的是 DELETE語句,其句法如下: DELETE FROM基本表名 WHERE 條件表達式 在作一點說明,刪除語句實際上是“ SELECT * FROM 基本表名 WHERE 條件 第 6 頁 共 26 頁 表達式 ”和 DELETE 操作的結合,每找到一個元組,就把它刪除。此外, DELETE語句只能從一個基本表中刪除元組, WHERE 子句中條件可以嵌套,也可以是來自幾個基本表的復合條件。 數(shù)據(jù)修改 當需要修改基本表中元組的某些列值時,可以用 UPDATE 語句實現(xiàn),其句法如下: UPDATE基本表名 SET列名 =值表達式 ,列名 =值表達式 WHERE條件表達式 在 Delphi中使用 SQL語句是很方便的,一般來說,都是通過 TQuery 組件來使用 SQL 語言的。有一點要進行說明,雖然通過 TQuery 組件來使用 SQL 語言很方便,但考慮到自己對不同組件的理解程度、個人習慣以及其它各個方面,在本系統(tǒng)中我采用的是 ADO 組件來對數(shù)據(jù)庫進行操作。最簡單的方法比如在TADOQuery組件的 SQL屬性中就可以鍵入 SQL 語句,至于詳細的使用方法在后面進行介紹。 3 開發(fā)工具及 RBAC 知識簡介 3.1 Delphi6.0 簡介 Delphi 類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出 現(xiàn)在組件面板上,當用戶從組件面板上點取一個類的圖標后,在程序中就自動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在 Delphi中,每一個類的祖先都是 Tobject類 ,整個類的層次結構就像一棵倒掛的樹,在最頂層的樹根即為 Tobject類。這樣,按照面向對象編程的基本思想,就使得用戶可用 Tobject 類這個類型代替任何其它類的數(shù)據(jù)類型。實際上在 Delphi 的類庫中, Tobject 類派生出了為數(shù)相當眾多的子類 ,它們形成了一個龐大的體系,通常情況下,如果不自行開發(fā)組件,就不必了解整個類的體系結構,只用到類層次樹的葉結點就足夠了。 凡是做過程序開發(fā)的人都知道從來沒有單純的數(shù)據(jù)應用程序,也就是說,數(shù)據(jù)庫應用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結合,只講界面或只講數(shù)據(jù)庫本身都構不成數(shù)據(jù)庫應用程序,因而用 Delphi 6.0開發(fā)數(shù)據(jù)庫應用程序就隱含著界面開發(fā)。 3.2 Delphi6.0 控件 用 Delphi6開發(fā)數(shù)據(jù)庫應用,重點是和各種數(shù)據(jù)庫組件打交道,當然也要使用其它的一些組件,現(xiàn)在就我在系統(tǒng)設 計中所使用的重要組件給予簡單介紹。 第 7 頁 共 26 頁 ADO 數(shù)據(jù)對象 (Active Data Objects)實際是一種提供訪問各種數(shù)據(jù)類型的鏈接機制。 ADO 設計為一種極簡單的格式,通過 ODBC 的方法同數(shù)據(jù)庫接口中,可以使用任何一種 ODBC數(shù)據(jù)源,即不止適合于 SQL Server、 Oracle、 Access等數(shù)據(jù)庫應用程序,也適合于 Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。 ADO 是基于 OLE-DB 之上的技術,因此 ADO 通過其內部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。 ADO 使您的客戶端應用程序能夠通過 OLE DB 提供訪問和操作在數(shù)據(jù)庫服務器中的數(shù)據(jù)。 ADO支持用于建立 C/S和 Web的應用程序的主要功能。其主要優(yōu)點是易于使用、高速度、低內存支出和占用磁盤空間較少。 ADO同時具有遠程數(shù)據(jù)服務 (RDS)功能,通過 RDS 可以在一次往返過程中實現(xiàn)將數(shù)據(jù)從服務器移動到客戶端應用程序和 Web頁、在客戶端對數(shù)據(jù)進行處然后將更新結果返回服務器的操作。 3.3 RBAC知識簡介 訪問控制策略是大多數(shù)應用系統(tǒng)必須考慮的問題。本文提出的基于角色的訪問控制是一種新型訪問控制模型,它不僅能夠實現(xiàn)傳統(tǒng)訪問控制的功能,同時還可以方便權限的管理,能 夠靈活地進行配置以適應系統(tǒng)的不同需求,提高系統(tǒng)的可擴展性 。 基于角色的訪問控制是一種新型訪問控制模型,它的基本思想是將權限與角色聯(lián)系起來,在系統(tǒng)中根據(jù)應用的需要為不同的工作崗位創(chuàng)建相應的角色,同時根據(jù)用戶職務和責任指派合適的角色,用戶通過所指派的角色獲得相應的權限,實現(xiàn)對文件的訪問。它支持最小特權、責任分離以及數(shù)據(jù)抽象三個基本的安全原則。 這里的角色用一般業(yè)務系統(tǒng)中的術語來說,就是業(yè)務系統(tǒng)中的崗位、職位或者分工。它和用戶組的最主要的區(qū)別在于,用戶組是作為用戶的一個集合來對待的,并不涉及它的授權許可;而角色則 既是一個用戶的集合,又是一個授權許可的集合。角色是指具有一定技能,可以執(zhí)行某些工作的人員(或資源)集合。通過給成員賦予不同的角色,對成員的多職能進行表達,提供約束成員不同權限范圍變化的依據(jù)。為了滿足企業(yè)內既存在信息共享又存在信息獨立的實際情況,在角色體系中采用雙枝生成模式,即整個角色體系的來源有兩枝,其中一枝來自于相對固定的組織機構,是相對穩(wěn)定的角色集合描述;另一枝在動態(tài)組合過程中動態(tài)創(chuàng)建,是更加依賴于動態(tài)項目和擴展需要而生成的,具有極大的時效性,隨著項目或者企業(yè)擴展組合的變化會在活動態(tài)、凍結態(tài)和無效態(tài)之間 變更。這樣既保證了成員企業(yè)的相對獨立性,又保證了與其他成員合作過程中的及時性和有效性。 基于角色的訪問控制設計需要一套既行之有效,又方便靈活的設計方案,要 第 8 頁 共 26 頁 采用各種控制機制和保護技術。安全策略是設計安全可靠系統(tǒng)的準則,通常涉及下列幾個方面: 安全保護策略 : 安全策略是信息安全性的高級指導,策略出自對用戶要求、設備環(huán)境、機構規(guī)則、法律約束等方面的詳細研究。策略重要性在于指導作用。而機構是實現(xiàn)和執(zhí)行各種策略的功能的集合。 安全策略 : 安全管理人員根據(jù)需要定義各種角色,并設置合適的訪問權限,而用戶根據(jù)其責任和資歷再被指 派為不同的角色。如圖所示,角色可以看成是一個表達訪問控制策略的語義結構,它可以表示承擔特定工作的資格。 安全管理的職責 : 安全管理有集中管理與分散管理兩種。前者意指一切權利都由負責系統(tǒng)安全工作的專職人員或小組掌握,他 (們 )決定用戶的訪問權利,控制系統(tǒng)安全的一切方面。后者是指不同的管理員控制著系統(tǒng)安全的不同方面,管理系統(tǒng)的不同部分,決定不同用戶的訪問權利。 安全保護機構 : 系統(tǒng)的安全保護機構基本上是與上面的安全策略相互適應的,保護機構應負責阻止一切物理破壞和用戶可能的操作破壞,后者歸結為主體可用何種方式訪問哪些 對象。 訪問控制策略 : 它提供決定用戶訪問權利的依據(jù)。其中最重要的一個普遍的原則是 “ 需者方知策略 ” 。按照這一原則授予用戶的權利,是用戶能完成工作的最小權利集合,故也稱之為 “ 最少特權策略 ” 。 信息流動控制 : 只限制用戶的訪問權利而不考慮數(shù)據(jù)流動是極其危險的,控制數(shù)據(jù)流動以防止無權用戶在數(shù)據(jù)流動后獲得訪問權利。 軟硬結合保護 : 這是安全保護的基本策略,許多硬 件 保護功能是軟件難以實現(xiàn)的,有些即使能實現(xiàn),效率也不高 。 安全管理控制核心是系統(tǒng)安全管理的核心控制部分,它在系統(tǒng)中控制整個系統(tǒng)的安全控制工作,由它決定系統(tǒng)是否啟動 安全管理,在什么情況下調用訪問控制機構,根據(jù)情況編寫訪問規(guī)則,如何將已有的訪問規(guī)則應用于控制存貯訪問規(guī)則。 4 系統(tǒng)需求分析 4.1 功能需求 近年來,微機的普遍應用,在一定程度上提高了各部門的辦公效率。但有限的技術能力,使這些面向各部門內部事務處理的辦公自動化系統(tǒng)相互之間標準不統(tǒng)一,各自為政,難以集成。隨著公司內部網絡的建立,各部門的信息可以發(fā)布到 Web上,使信息發(fā)布的效率和范圍得到較大程度的改善,然而,由于公司內部網絡仍缺少重要的信息傳遞和工作流程環(huán)節(jié),部門之間仍無法實現(xiàn)信息共享和集成,從而難以實現(xiàn)各部 門之間的高效率協(xié)作。為了提高了公司整體辦公效率,需 第 9 頁 共 26 頁 要具有先進水平的辦公與管理機制提供強有力的支持。隨著計算機技術、網絡技術的迅速發(fā)展以及系統(tǒng)科學、管理科學的引進,在現(xiàn)有的公司內部網絡上建立高效、協(xié)調、集成的數(shù)字化辦公系統(tǒng)己成為可能,這也是能夠從根本上變革辦公及管理體制的有效途徑。 OA辦公系統(tǒng)呼之欲出。 本論文的研究正是基于這一實際課題 基于角色訪問控制的 OA 辦公系統(tǒng)項目。該系統(tǒng)提出的系統(tǒng)目標如下: OA 辦公系統(tǒng)需要滿足來自 2 個方面的要求,一是系統(tǒng)管理員,另外一個是一般用戶。系統(tǒng)管理員可以修改,刪除用戶,工作 計劃安排,工作日程安排,文檔管理,還可以修改普通用戶密碼,并且可以使用發(fā)送通知功能,并能通過遠程控制普通用戶電腦,一般用戶只能使用郵件管理,修改密碼,查看工作計劃等功能。 在設計與開發(fā)中,重點如何解決各個不同用戶使用本系統(tǒng)的權限問題既 角色訪問控制,通過對登錄的用戶的權限的驗證,獲取對應角色的權限,在數(shù)據(jù)庫中設置了 3個字段,分別對應不同的權限,當用戶以管理員身份進入系統(tǒng)以后,可以對普通用戶權限進行修改,而以普通用戶身份進入系統(tǒng)的時候則不可以,這樣就保障系統(tǒng)的安全性;在軟件開發(fā)與設計中能實現(xiàn)文檔管理,電子郵 件管理,工作任務管理,工作日程管理,發(fā)文管理等 OA軟件的主要功能。 4.2 系統(tǒng)平臺選擇 辦公自動化不能簡單地理解為文字處理、電子表格、個人資源管理 (如記事日程 )、資料入檔等文檔處理系統(tǒng),辦公自動化也不僅僅是秘書、檔案員和辦事員的事情。事實上,辦公室業(yè)務也即管理業(yè)務,負責協(xié)調各項工作程序,辦公自動化也即管理自動化。在自動化中,僅有三分之一的工作是個人完成,其它三分之二的工作都與交往有關。 OA 系統(tǒng)的實施,需要單位內部的領導人員、行政管理人員、文秘人員、專業(yè)人員的共同參與;辦公自動化系統(tǒng)支持各類辦公人員工作的自 動化。一個好的辦公自動化系統(tǒng)應該為工作人員提供一個集成化的、多功能的辦公桌面環(huán)境,解決辦公人員因處理不同事務而需要使用不同工作環(huán)境的問題。 結合對某公司辦公自動化系統(tǒng)的應用需求的分析,認為對 OA 系統(tǒng)作需求分析,辦公應用平臺以及事務處理平臺中滿足以下的要求: 首先,必須具有工作流性質的處理過程和監(jiān)督功能,從而解決多部門協(xié)作問題,推動部門間的高效率協(xié)作;其次,提供集成處理與發(fā)布信息的工作平臺,解決以往信息收集、處理和發(fā)布過程相分割的問題,減少不必要的交接環(huán)節(jié),提高工作便利性; 再次,必須提供與其它管理信息系統(tǒng) (MIS)的信息交流,解決以往數(shù)據(jù)標準 第 10 頁 共 26 頁 不一致而造成的信息收集困難的問題,減少額外的工作量和大量重復勞動。 最后,還必須提供安全保障體系,不僅使系統(tǒng)的各層次人員被嚴格限制在自己的權限內,同時必須保證整個 OA系統(tǒng)的安全、穩(wěn)定和可靠的運行。 所以,建立一流的辦公自動化系統(tǒng),需要先進、功能強大的應用開發(fā)平臺,也就是說,所采用的應用開發(fā)平臺應該能夠適應計算機網絡的發(fā)展趨勢,有利于提高管理和辦公的效率,有利于促進各部門之間的協(xié)同工作,有利于創(chuàng)建現(xiàn)代管理制度和工作方式。 利用 Delphi 建立的企業(yè)信息集成系統(tǒng),完全符合系統(tǒng) 對郵件與群件平臺的要求。具有以下鮮明的特點: (1) 開發(fā)快捷、實施容易。應用系統(tǒng)的推出與使用是投資得以回報的關鍵。系統(tǒng)的應用或者辦公管理應用則可以利用 Delphi 的快速開發(fā)、實施能力在較短的時間內實現(xiàn)。這非常適應辦公管理需求多變、繁雜的特點。 (2) 集成性。最終用戶使用的郵件與群件應用系統(tǒng)是一套統(tǒng)一的應用系統(tǒng),使用同一套應用軟件。在相同的、唯一的界面下,用戶可以獲得郵件信息、辦公信息、專業(yè)應用信息、關系數(shù)據(jù)庫信息、 Internet 信息等各個方面的信息。這種集成能力是在軟件平臺一級獲得的,而不是通過二次開 發(fā)“強加”上去的。這大大減少開發(fā)的工作量,提高了應用系統(tǒng)的可靠性。而且對最終用戶來說,不需要在幾個客戶端軟件或是應用程序之間、幾個服務器系統(tǒng)或數(shù)據(jù)源之間來回切換。 (3) 管理容易、機制完整。由于采用單一的軟件系統(tǒng),所有的應用開發(fā)都建立在統(tǒng)一的平臺之上,主要的維護工作集中在應用管理一級,管理工作的難度與工作量大大降低。 基于這些優(yōu)勢功能,基于角色訪問控制的辦公自動化系統(tǒng)則應該設計成以基于網絡對象連接技術、多媒體文檔結構以及跨越多種操作系統(tǒng)和多種數(shù)據(jù)庫平臺的應用系統(tǒng),所以,可以把 Delphi 作為辦公自動化系統(tǒng) 的應用開發(fā)平臺的主要選擇。 5 系統(tǒng)總體設計 系統(tǒng)的總體設計大約要經歷可行性分析和項目開發(fā)計劃,需求分析,概要設計,詳細設計,編碼,測試以及維護等七個階段??尚行苑治龊晚椖块_發(fā)計劃在前面已經敘述,下面所要做的是進行軟件需求分析,概要設計和詳細設計。編碼過程將在下一節(jié)論述,而測試和維護過程不在本文敘及。 5.1 系統(tǒng)概要設計 在軟件需求分析階段,搞清楚了軟件“做什么”的問題,形成了目標系統(tǒng)的邏輯模型?,F(xiàn)在所要做的就是要把軟件“做什么”的邏輯模型變換為“怎么做” 第 11 頁 共 26 頁 的物理模型,即著手實現(xiàn)軟件的需求。首先,需要描述的 是系統(tǒng)的總的體系結構 。 5.1.1 系統(tǒng)結構設計 系統(tǒng)的概要設計中最重要的就是系統(tǒng)的模塊化。模塊化是指解決一個復雜問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,所有的模塊按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。 將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復雜性,提高可讀性、可維護性,但模塊的劃分不能是任意的,應盡量保持其獨立性。也就是說,每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內聚低耦合,提高模塊的獨立性,為設 計高質量的軟件結構奠定基礎。 首先將整個系統(tǒng)化分為幾個小問題,小模塊,在系統(tǒng)中,設計了用戶管理,通信管理,文檔管理,發(fā)文管理等幾個小模塊。然后,進一步細分模塊,添加細節(jié)。比如,對用戶管理又將其分為操作員員管理、密碼修改等小模塊,工作日程管理又分為工作日志,工作日程,工作計劃等模塊。 5.1.2 數(shù)據(jù)庫設計 在信息世界中,信息從客觀事物出發(fā)流經數(shù)據(jù)庫,通過決策機構最后又回到客觀世界,信息的這一循環(huán)經歷了三個領域:信息世界,數(shù)據(jù)世界,現(xiàn)實世界?,F(xiàn)實世界的事物反映到人的頭腦中,人的大腦對它有個認識過程,經過分析( 選擇、命名、分類等)進入信息世界。這些信息再進一步加工、編碼,然后進數(shù)據(jù)世界,而軟件系統(tǒng)的開發(fā)工作需要考慮這兩個方面的問題,也就是要考慮系統(tǒng)開發(fā)所需要的數(shù)據(jù),以及如何對這些數(shù)據(jù)進行操作。這兩個問題貫穿了整個軟件系統(tǒng)的開發(fā)過程,這也就是數(shù)據(jù)庫的設計問題,軟件設計的一個核心 。 數(shù)據(jù)庫結構設計中,需要具備 MIS系統(tǒng)中的常規(guī)模塊,比如用戶管理、權限管理等等;同時,數(shù)據(jù)庫設計還要明確表現(xiàn)出 RBAC 的理論,所以本部分是整個設計方案的一個重要環(huán)節(jié)。 出于方案的通用性和易于普及性要求,數(shù)據(jù)庫設計必須經過結構優(yōu)化,既要給功能 實現(xiàn)提供良好的內在機制支持和功能擴展?jié)摿Γ忠啽阋子诶斫?。良好的?shù)據(jù)庫結構設計本身就可以表述 RBAC 的要求。在很大程度上,基干角色訪問控制功能的實現(xiàn)方案的標準化是由數(shù)據(jù)庫結構決定的。 RBAC 對數(shù)據(jù)庫結構的要求有以下三點: 便于擴展應用規(guī)模和附加業(yè)務功能。 1) 清晰無誤,合理簡潔的表述出角色分類,角色分配等 RBAC 邏輯內涵。 2) 便于管理變動,減小管理工具設計難度。當遇到需增減用戶,用戶職位調變動,機構改革,管理方式改革等情況時,僅僅需要通過管理工具變動數(shù) 第 12 頁 共 26 頁 據(jù)庫中的用戶信息,用戶 /角色信息,角色信息,角色 /權限關系,權限定義等等就可以實現(xiàn),而無需變動應用方案的業(yè)務邏輯。 一個系統(tǒng) RBAC,所需要涉及的數(shù)據(jù)庫主要有:用戶數(shù)據(jù)庫,角色信息庫,用戶 /角色信息庫,權限信息庫,角色 /權限信息庫。 a) 用戶表 這里我們所說的用戶,是指程序的使用用戶。用戶表保存用戶基本信息,如姓名,電話等。 UserID 為標志用戶的 Primary Key。用戶信息表格式如表 1所示。 表 1 用戶表 列名 數(shù)據(jù)類型 長度 允許空 UserID varchar 20 UserName varchar 20 否 Department varchar 20 Password varchar 20 否 b) 角色信息庫 /角色表 角色信息庫 /角色表 Rolesk保存的是各個等級的規(guī)則角色、管理角色的定義信息。角色信息庫 /角色表格式如表 2所示。 表 2 角色表 列名 數(shù)據(jù)類型 長度 允許空 Role_Name varchar 20 Pre_role varchar 20 Description varchar 200 Role_Name:角色名稱,為 Primary key:主鍵 Pre_role 指定該角色的先決 角色,一個角色的先決角色就是一個要被賦予該角色之前首先要先具有的角色。 Pre_role 參考了表中的 Role_Name 主鍵,即:Pre_role 要么取值為 Role_Name 主鍵列中的一個值,要么為空值 null。定義Pre_role數(shù)據(jù)項,為實現(xiàn)先決角色約束提供了基礎。 Description:變長度字符串,用于對角色的功能做語言描述以便于查看。 b) 權限關系表 權限信息庫 Permissionsk 是一個應用中規(guī)定的所有權限的描述信息存儲場所。對于一個特定的應用來說是最基層的信息,為了使權限信息庫的信息與角色/權限信 息庫中的權限含義保持一致,權限信息庫定義要盡可能詳細完備,在定義完畢之后要盡量減少改動,但可以根據(jù)業(yè)務功能擴展的需要隨意添加。權限信息表形式如表 3所示。 第 13 頁 共 26 頁 表 3 權限信息表 列名 數(shù)據(jù)類型 長度 允許空 PermissionID int 20 ObjectName varchar 20 否 由于權限信息庫中對權限的描述的 ObjectName 項是字符串類型變量,因此所描述的權限即可以是針對具體的系統(tǒng)資源,可以根據(jù)業(yè)務邏輯需要而靈活定義。 d) 角色 /權限信息庫 角色 /權限信息庫保存各個角色 對應擁有哪些權限。實際上該表中保存的是一個角色定義的所有的權限。角色 /權限信息表格式如表 4所示。 表 4 角色 /權限信息表 列名 數(shù)據(jù)類型 長度 允許空 Role_Name varchar 20 PermissionID int 20 外鍵 Role_Name和 PermissionID參考 Rolesk表和 Permissionsk表中的同名列,使這三個表的數(shù)據(jù)項保持一致性、完整性。對參照完整性定義為級聯(lián)刪除,級聯(lián)更改,即當被參照的主碼被刪除或更改時,參照該主鍵的所有外碼與被參照關系表中要刪 除或更改的主碼相對應的原組一起被刪除或更改為新值。例如:當某個角色被刪除時,角色 /權限關系表中與該角色相對應的角色 /權限元組全部被刪除。 如表中所示一個 Role_Name 可以對應多個權限 PermissionID,一個權限PermissionID也可以對應多個 Role_Name,當要查詢一個角色所擁有的所有權限時,可以用語句 select * from Role_Permissionsk where Role_Name “被查詢的角色名 ” e) 用戶 /角色信息庫 用戶 /角色信息庫保存各個用戶所擁有的角色信息。 用戶 /角色信息表格式如表 5所示。: 第 14 頁 共 26 頁 表 5 用戶 /角色信息表 列名 數(shù)據(jù)類型 長度 允許空 UserID varchar 20 否 PermissionID int 20 否 表 User_Rolesk 中的 UserID 和 Role_Name 定義為不可取空值的外碼,分別參照 Userk表和 Rolesk 表中的同名主碼,且為級聯(lián)的刪除、更改。 f) 考勤記錄表 考勤記錄表主要用于記錄個人考勤情況。如表 6所示。 表 6 考勤記錄表 列名 數(shù)據(jù)類型 長度 允許空 Name int 20 否 Date datetime 8 否 Record varchar 200 d) 通知表 通知表是用來記錄發(fā)送的通知,以備查詢。如表 7所示。 表 7 公文表 列名 數(shù)據(jù)類型 長度 允許空 Name int 20 否 Date datetime 8 否 Coment varchar 200 5.2 系統(tǒng)詳細設計 在前面的概要設計中,已將系統(tǒng)劃分為多個模塊,并將它們按照一定的原則組裝起來,同時確定了每個功能及模塊之間的外部接口。現(xiàn)在所要做的就是確定每個模塊具體執(zhí)行過程,也可以說是“過程設計”。此詳細設計的 結果基本決定了最終程序的質量。為軟件的質量,延長軟件的生存期,軟件的可測試性、可維護性提供重要的保障。詳細設計的目標不僅是邏輯上正確地實現(xiàn)每個模塊的功能,還應使設計出的處理過程清晰易讀。由前一階段產生系統(tǒng)功能模塊圖,為系統(tǒng)的主要部分設計了如下的模塊關系圖: 第 15 頁 共 26 頁 圖 1 系統(tǒng) 模塊關系圖 通過以上步驟,基本上完成了對整個系統(tǒng)的總體設計,接下來所要做的就是軟件的編碼工作。系統(tǒng)總體設計的好壞直接影響著下一步工作,只有在這一階段設計出好的模塊圖和程序流程圖,才能更有利于編碼,產生好的軟件系統(tǒng)。 6 系統(tǒng)應用程序設計 6.1 系統(tǒng)模塊組成 OA 辦公系統(tǒng)模塊由系統(tǒng)管理、 文檔管理 、電子郵件管理、工作任務管理、工作日程管理、發(fā)文管理等模塊構成。系統(tǒng)管理又有操作員管理和修改密碼模塊。 6.2 數(shù)據(jù)模塊的設置 在編寫數(shù)據(jù)庫應用程序時,經常要遇到這樣的情況,即好多組件、窗體同時訪問相同的數(shù)據(jù)源。如果為每一個組件或者窗體都設置一個數(shù)據(jù)源將是十分耗時的工件,而且要保證這些數(shù)據(jù)源的確是相同的也需花一番功夫。那么,能不能將這些數(shù)據(jù)源集中管理,最好是做成一個統(tǒng)一的模塊,需要時就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊( DataModule)是解決這個問題最好的答案。簡單說來,數(shù)據(jù)模塊是用來集中管理數(shù)據(jù)源的一個窗體,該窗體可被需要的地方隨時引入。 在圖 1中,除報表窗體外所有的數(shù)據(jù)存取組件和數(shù)據(jù)源組件都在此數(shù)據(jù)模塊中進行了定義。值得一提的是,設置了數(shù)據(jù)庫 Database 組件,該組件引入了系統(tǒng)所需的唯一的數(shù)據(jù)庫 tsxs, Database組件的 DatabaseName屬性設置為 tsckgl。tsxs數(shù)據(jù)庫已在 ODBC 配置程序中進行了設置。其他的數(shù)據(jù)存取組件都是基于此數(shù)據(jù)庫組件創(chuàng)建的,這樣做的好處是,當數(shù)據(jù)庫的別名或者其他信息改變之后,只需修改 Tdatabase 組件的 AliasName屬性即可。 另外,在本系統(tǒng)的數(shù)據(jù)模塊窗體圖中,大多采用的 AODQuery 組件而沒有采用 BDE 組件,這主要是基于對 ADO 組件的了解。在 Delphi 的學習過程中增加了 第 16 頁 共 26 頁 對 ADO組件了解,使用也較 BDE更為熟練,而且 ADO組件的功能也較 BDE更為強大,所以在這里大多采用 ADO組件來進行數(shù)據(jù)庫聯(lián)接。同時也使用了 BDE組件中的 Table,因為在某些時候 BDE有著其自身特有的優(yōu)越性。 6.3 主要功能模塊的實現(xiàn) 6.3.1 登錄模塊 登錄模塊的主要功能是驗證用戶名及密碼正確性,以及判定 用戶的權限既區(qū)別管理員與一般用戶。登錄頁面主要代碼如下: strUserID:=edit1.Text; /取用戶輸入的用戶名 strpassword:=edit2.Text; /取用戶輸入的密碼 if (strUserID)and(strpassword) then begin with dm.cx do begin sql.clear; sql.add(select * from Usersk where UserID=+strUserID+ and Password=+strpassword+); open; if isempty then /查詢結果記錄集為空 showmessage(姓名或密碼錯。 ) else begin /讀取權限,并判斷權限的值 form2.Show; /密碼。帳號驗證成功的話,就進入主采單 self.Hide; edit1.Text:=; /清空編輯框 edit2.Text:=; end; close; /關閉數(shù)據(jù)集 ADODataSet1 end; end else showmessage(姓名、密碼不能為空。 ); end; procedure TForm1.Button2Click(Sender: TObject); begin close; /點出按紐推出。 登錄界面主要功能是判斷用戶名及密碼是否正確,以及判定用戶權限。 第 17 頁 共 26 頁 登錄效果圖: 圖 2 系統(tǒng)登錄圖 6.3.2 系統(tǒng)主頁面 系統(tǒng)主界面是整個 OA 系統(tǒng)的核心,通過前面的登錄驗證,他將向不同的用戶開放不同的功能,系統(tǒng)主頁面代碼如下: procedur cdk:= ; ADOQuery1.SQL.clear; ADOQuery1.SQL.add(select PermissionID from Role_Permissionsk where Role_Name=(select Role_Name from User_Rolesk where UserID=+ + strUserID+ + ); ADOQuery1.Open; adoquery1.First; while not adoquery1.eof do begin cdk:= cdk + ADOQuery1.Fields.FieldByName(PermissionID).asInteger; adoquery1.next; end; If 1 in cdk then N2.Visible:= true else N2.Visible:= false; 第 18 頁 共 26 頁 圖 3 系統(tǒng)主界面 6.3.3 內部通信模塊 內部通信是為內部通信的模塊。在這一模塊,用戶可以通過輸入 IP 地址的方式與任何用戶進行交流,其主要代碼如下: if(key=#13)and(edit1.Text)then begin NMUDP1.ReportLevel:=Status_Basic; NMUDP1.RemotePort:=8888; if listbox1.ItemslistBOX1.itemINdex=computerName then edit1.text:=ComputerName+自言自語到: +edit1.Text else edit1.Text:=ComputerName+ 對 +listbox1.Itemslistbox1.itemindex+ 說:+edit1.Text; TmpStr:=Edit1.Text; MyStream:=TMemoryStream.Create; try MyStream.Write(TmpStr1,length(edit1.text); if listbox1.ItemIndex=0 then begin for i:=1 to listbox1.Items.Count-1 do begin NMudp1.RemoteHost:=listbox1.Itemsi; 第 19 頁 共 26 頁 NMudp1.SendStream(MyStream); begin NMudp1.RemoteHost:=listbox1.Itemslistbox1.itemindex; NMudp1.SendStream(Mystream); end; finally mystream.Free; end; edit1.Text:=; edit1.SetFocus; end else edit1.SetFocus; end; 圖 4 內部通信 6.3.4 發(fā)送 通知 發(fā)送通知模塊為管理員使用的模塊,通過這一模塊,可以將信息迅速傳遞個沒一個人。發(fā)送通知模塊代碼: 第 20 頁 共 26 頁 begin with ClientSocket1 do begin if Active then begin Active:=False; ConnectFlag:=False; end; if Length(EDit2.Text) 0 then begin Host:= edit2.Text; Active:=True; end; end; end; procedure TForm8.Button2Click(Sender: TObject); begin if ConnectFlag then ClientSocket1.Socket.SendText(edit1.text) else showmessage(連接失敗 ); form9.Show; self.Hide; end 圖 5 發(fā)送通知 第 21 頁 共 26 頁 圖 6 收到的通知 6.3.5 管理員操作 管理員操作模塊是系統(tǒng)重要的模塊,管理員可以通過這一模塊刪除,修改,增加,用戶。對普通用戶進行時時控制。其主要代碼如下: procedure TForm19.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn); begin if Button=nbDelete then if Application.MessageBox(確實要刪除這行數(shù)據(jù)么? ,確認 ,MB_YESNO)=IDNO THEN aBORT; if Button=nbinsert then if Application.MessageBox(確實要增加數(shù)據(jù)? ,確認 ,MB_YESNO)=IDNO THEN aBORT; if Button

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論