




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。ERP通用信息管理系統開發平臺范文ERP通用信息管理系統開發平臺班級:專業:教學系:指導老師:完成時間2010年2月16日至2010年5月25日摘要隨著以計算機技術、通信技術、網絡技術為代表的現代信息技術的飛速發展,人類社會正在從工業時代闊步邁向信息時代,人們越來越重視信息技術對傳統產業的改造以及對信息資源的開發和利用,一個國家、一個地區信息化水平的高低已成為衡量其現代化水平和綜合國力的重要標志。在過去40年里,MIS對于企業完善管理、提高生產率和工作效率起到了一定的作用,隨著信息時代的到來,MIS將對
2、我國的經濟發揮起著越來越重要的作用企業的信息化建設在當今時代已經是非常的重要了,企業的管理者也注意到了這個問題,那么給我們軟件開發者的要求就是如何才能提供一套更加快速開發的ERP軟件開發平臺,封裝常用的數據庫底層的操作,避免代碼的重復編寫,對于一個程序員來說是十分重要的,程序員應該想的是如何才能更少的寫代碼,增加代碼利用率,讓我們的企業軟件的開發者,維護者能夠更加快速的開發查詢報表,操作界面,提高工作效率!本課題利用Delphi7開發前臺界面程序,數據庫的連接采用XML技術配置文件,采用SQLSERVER2008為后臺數據庫,進行數據的存儲。對于企業個性化的管理信息化業務要求,融合企業的獨特管
3、理模式和個性化要求,得到可裁減的系統,不但能夠符合企業當前的需求,而且在企業的發展應用過程中,還能夠對軟件系統進行適當的改變和調整以適應變化了的環境。關鍵詞:通用開發平臺、基礎功能類庫、通用配置、C/S目錄TOCohzuHYPERLINKl_Toc262905396第一章引言PAGEREF_Toc262905396h1HYPERLINKl_Toc262905397第二章系統需求分析PAGEREF_Toc262905397h2HYPERLINKl_Toc2629053982.1系統功能需求分析PAGEREF_Toc262905398h2HYPERLINKl_Toc2629053992.1.1功能
4、劃分PAGEREF_Toc262905399h2HYPERLINKl_Toc2629054002.1.2功能描述PAGEREF_Toc262905400h2HYPERLINKl_Toc2629054012.2業務流程分析PAGEREF_Toc262905401h3HYPERLINKl_Toc2629054022.3數據流分析PAGEREF_Toc262905402h4HYPERLINKl_Toc262905403第三章系統總體設計PAGEREF_Toc262905403h6HYPERLINKl_Toc2629054043.1系統總體功能結構設計PAGEREF_Toc262905404h6HYP
5、ERLINKl_Toc2629054053.1.1系統結構PAGEREF_Toc262905405h6HYPERLINKl_Toc2629054063.1.2三層架構簡介PAGEREF_Toc262905406h7HYPERLINKl_Toc2629054073.1.3基礎功能類PAGEREF_Toc262905407h8HYPERLINKl_Toc2629054083.2系統后臺數據庫設計PAGEREF_Toc262905408h11HYPERLINKl_Toc2629054093.2.1系統主要功能數據表及其關系PAGEREF_Toc262905409h11HYPERLINKl_Toc26
6、29054103.2.2數據庫表設計PAGEREF_Toc262905410h12HYPERLINKl_Toc2629054113.3系統開發工具PAGEREF_Toc262905411h15HYPERLINKl_Toc2629054123.3.1系統開發環境PAGEREF_Toc262905412h15HYPERLINKl_Toc2629054133.3.2系統調試運行環境PAGEREF_Toc262905413h16HYPERLINKl_Toc262905414第四章用戶信息維護模塊PAGEREF_Toc262905414h17HYPERLINKl_Toc2629054154.1用戶信息維
7、護模塊簡介PAGEREF_Toc262905415h17HYPERLINKl_Toc2629054164.1.1用戶信息維護模塊PAGEREF_Toc262905416h17HYPERLINKl_Toc2629054174.1.2模塊功能結構圖PAGEREF_Toc262905417h17HYPERLINKl_Toc2629054184.2模塊詳細設計PAGEREF_Toc262905418h18HYPERLINKl_Toc2629054194.2.1用戶注冊界面PAGEREF_Toc262905419h18HYPERLINKl_Toc2629054204.2.3用戶登錄界面PAGEREF_T
8、oc262905420h19HYPERLINKl_Toc2629054214.2.4用戶信息修改PAGEREF_Toc262905421h20HYPERLINKl_Toc2629054224.3主要代碼分析PAGEREF_Toc262905422h21HYPERLINKl_Toc2629054234.3.1用戶帳號開通界面主要代碼分析PAGEREF_Toc262905423h21HYPERLINKl_Toc2629054244.3.2加密處理模塊代碼PAGEREF_Toc262905424h21HYPERLINKl_Toc2629054254.3.3郵件發送處理單元PAGEREF_Toc262
9、905425h23HYPERLINKl_Toc2629054264.3.4程序自動升級核心代碼PAGEREF_Toc262905426h24HYPERLINKl_Toc262905427第五章系統基礎功能管理模塊PAGEREF_Toc262905427h26HYPERLINKl_Toc2629054285.1系統管理功能設計PAGEREF_Toc262905428h26HYPERLINKl_Toc2629054295.1.1系統管理模塊簡介PAGEREF_Toc262905429h26HYPERLINKl_Toc2629054305.1.2模塊功能結構圖PAGEREF_Toc262905430
10、h26HYPERLINKl_Toc2629054315.2模塊詳細設計PAGEREF_Toc262905431h26HYPERLINKl_Toc2629054325.2.1模塊程序流程圖PAGEREF_Toc262905432h26HYPERLINKl_Toc2629054335.2.2用戶登錄界面PAGEREF_Toc262905433h27HYPERLINKl_Toc2629054345.2.3用戶管理PAGEREF_Toc262905434h27HYPERLINKl_Toc2629054355.2.4單表操作管理PAGEREF_Toc262905435h28HYPERLINKl_Toc2
11、629054365.2.5通用查詢配置PAGEREF_Toc262905436h29HYPERLINKl_Toc2629054375.2.6權限管理模塊PAGEREF_Toc262905437h29HYPERLINKl_Toc2629054385.2.7公司信息維護管理PAGEREF_Toc262905438h30HYPERLINKl_Toc2629054395.2.8部門信息管理PAGEREF_Toc262905439h30HYPERLINKl_Toc2629054405.2.9功能包管理PAGEREF_Toc262905440h30HYPERLINKl_Toc262905441第六章用戶手
12、冊PAGEREF_Toc262905441h32HYPERLINKl_Toc2629054426.1系統運行環境簡介及功能介紹PAGEREF_Toc262905442h32HYPERLINKl_Toc2629054436.2系統配置與操作指南PAGEREF_Toc262905443h32HYPERLINKl_Toc2629054446.3系統性能要求PAGEREF_Toc262905444h32HYPERLINKl_Toc262905445第七章系統評價PAGEREF_Toc262905445h34HYPERLINKl_Toc2629054467.1系統特色PAGEREF_Toc2629054
13、46h34HYPERLINKl_Toc2629054477.2系統存在的不足PAGEREF_Toc262905447h34HYPERLINKl_Toc2629054487.3心得與體會PAGEREF_Toc262905448h35HYPERLINKl_Toc262905449結論PAGEREF_Toc262905449h36HYPERLINKl_Toc262905450致謝PAGEREF_Toc262905450h37HYPERLINKl_Toc262905451參考文獻PAGEREF_Toc262905451h38第一章引言面對目前生產型企業ERP信息化建設還不成熟,各大小型系統開發結構不理
14、解,規范性不強,后期維護工作量大,代碼可閱讀性差,給IT部門程序員提供一個統一的開發平臺就顯示相當重要,也特別有必要,界面的統一規范,是一個現代信息化型企事業所必須的,從優化程序的角度看框架,功能設計,減少共性代碼的開發是非常有必要的,現各大軟件公司都提出開發平臺的概念,其最核心的目標就是為了統一管理,便于維護,二次開發,一個大型的ERP系統是不可能不需要修改的,隨著業務規則的變化,程序必定會跟隨業務的變化及時做出調整,如果有了平臺的概念,變更基礎功能代碼將變的更加簡單。問題的提出在軟件開發過程中往往是有很多可以通用的代碼的,沒有平臺的概念,不將這些共性的代號,收集整理,分類封裝,浪費軟件開發
15、人員的時間,不能提高軟件開發的效率,在沒有一共通用的開發平臺,往往一個中小型的項目可能需要十個人左右來共同開發,但如果有一個比較方便的基礎平臺,那就可以快速的實現開發,從而從很大程序上節省了開發的成本。可行性分析開發此平臺無論從技術上還是實際需求兩個層面都是可行的,經過長達一年的學習和公司研發部門的技術實力來分析,已經具備開發的能力,更為重要的一點是現在的行業內的主流所向,都漸漸有了選用開發平臺來實施生產信息系統的意識,基于平臺開發業務系統,開發速度快,簡便。基于平臺開發業務系統,只需要編寫少量的代碼,或實現零編碼,編碼的減少,可以有效減少系統中bug的存在,提高系統的穩定性。基于平臺開發的業
16、務系統,具備統一的界面風格,統一的業務邏輯實現方式,這樣除了具備統一的操作界面,使用戶更容易操作外,更體現在后期維護方面,即使維護人員沒有參與開發,只要掌握了平臺的使用及業務規則,維護工作的難度將會大大降低因為同類的業務模塊的實現模式是一樣的。這點不同于傳統的編碼方式,讀別人的代碼,特別是不規范的代碼,那是很痛苦的一件事,基于平臺開發業務系統,維護方便,對于引擎類的開發平臺更突出。通過開發平臺,你可以在不停止應用服務的情況下,通過平臺定制、修改、發布業務模塊,包括查詢統計,所見即所得,完全不像傳統的方式,需要進行編碼,打包重新發布,這樣不但能快速響應新的需求,而且可以降低業務系統的維護費用。第
17、二章系統需求分析為了開發出真正滿足用戶需求的軟件產品,首先必須知道用戶的需求。需求分析是軟件定義的最后一個階段,它的基本任務是準確地回答“系統必須做什么?”這個問題。根據第一章中可行性研究、分析階段所定義的課題研究方向及目標,本章將對系統功能進行具體的需求分析,以下將從系統的性能需求、功能需求、可靠性和可用性需求等方面對系統的功能做了闡述。2.1系統功能需求分析本課題屬于C/S結構信息管理開發平臺,只有注冊用戶才能使用本系統。管理員可以對系統權限開通,及界面的配置權限等,增加對數據庫的單表操作配置功能,配置成功后可直接引用,并實現操作,對于SQL語句,存儲過程,水晶報表,可實現界面配置動態生成
18、功能,減少編寫重復代碼。2.1.1功能劃分系統平臺基礎信息的管理功能本系統平臺主要應用于生產型集團公司,平臺支持分區(可用于區分不同地理區域,公司,部門),按照此三大類進行用戶管理,由于本平臺采用目錄樹結構,平臺支持動態目錄樹的配置功能,由此展開來,權限的管理在本平臺中也是按照菜單為單位進行管理。通用配置功能此模塊主要功能提供單表的操作的可配置功能,從實際應用出來,對于字典表的維護,不再需要代碼就可實現對單表的增刪改功能。為業務層后期開發提供基礎類庫整理前期開發的經驗對常用的功能類庫進行匯總,歸類,封裝,寫在一個單元文件中,實現函數或過程的調用,提高后期程序的開發效率。2.1.2功能描述通用配
19、置功能實現通用的單表操作與通用查詢的配置功能,動態創建界面,實現動態的數據查詢。配置單表操作(增刪改)通過在配置界面中指定數據庫服務器的IP地址,數據庫名,所要操作的表名,即可實現通用字典表的配置界面,省去了編寫代碼的麻煩。通用查詢配置功能目前此功能支持對水晶報表,存儲過程,SQL語句的配置調用功用,只需指定相關參數信息,即可實現通用的查詢功能,相當于報表中心。基礎資料管理對基礎信息的數據庫表進行增刪改功能,實現對平臺基礎信息功能的維護功能。菜單管理菜單中的目錄結構,可實現增刪改。功能包管理能以包為單位設定包在這常情況下的自動發送至對應的管理員的郵箱,實現靈活動態,符合生產實際的需要,在實際需
20、求中,一個大型的信息化系統維護人員會有多人來共同完成,此功能可以實現動態指定自動發送的郵箱地址。數據連接管理統內所有需要使用的數據庫連接,此功能主要目的在于統一管理數據權限以便移植,更方便程序員在代碼中調用,不再需要在代碼中定義,動態靈活。分區管理維護分區字典表公司管理維護公司字典表。用戶管理可開通用戶帳號功能。權限管理可對不同用戶開通使用權限。權限編輯現用戶權限的復制操作。2.2業務流程分析在對系統的組織結構和功能進行分析時,需從一個實際業務流程的角度將系統調查中有關該業務流程的資料都串起來作進一步的分析。業務流程分析可以幫助我們了解該業務的具體處理過程,發現和處理系統的調查工作中的錯誤和疏
21、漏,修改和刪除原系統的不合理部分,在新系統基礎上優化業務處理流程。通過對系統的需求分析,系統的基本功能已確定,系統的業務流程及各個模塊清楚的描述了彼此間的關系如圖2.1所示。圖2.1業務流程圖2.3數據流分析數據流分析主要以數據流圖來體現,數據流圖由數據存儲、接口、進程、數據流四個基本部分(圖標如圖2.2)組成。圖2.2圖例說明系統平臺以圖形的方式描述數據在系統中流動和處理的過程,由于它只反映系統必須完成的邏輯功能如圖2.3所示。圖2.3系統平臺數據流圖第三章系統總體設計經過需求分析階段的工作,系統必須“做什么”已經清楚了,而在系統設計階段的主要任務是設計程序的體系結構,劃分組成系統的物理元素
22、程序、文件、數據庫、人工過程和文檔等等。在這個階段將具體描繪出程序的組成模塊,以及各模塊之間的關系。3.1系統總體功能結構設計3.1.1系統結構系統的用戶界面配置信息以*.ini文件存在本地程序目錄中。在界面顯示時,由UIConfigmanager(用戶界面配置管理器)類讀取并初始化界面。系統的數據庫連結信息以*.xml文件存在本地程序目錄。在程序啟動時,由DBConnectionManager(數據庫連結管理器)類讀取數據庫連結字符串,并檢測其合法性(注:平臺中不使用靜態的數據庫連結控件)。系統的結構圖如圖3.1所示。圖3.1系統平臺結構圖3.1.2三層架構簡介軟件集成平臺采用目前較為流行的
23、邏輯三層系統架構,按照由高到低為用戶界面層,業務功能層,數據訪問層,SQLHelper架構圖(如圖3.2所示)。圖3.2系統架構圖上述結構使用戶界面,業務邏輯,與數據庫訪問相分離,實現程序模塊解耦,從而達到可以并行開發的目的。各層的訪問關系如圖3-3所示。圖3.3各層關系圖數據訪問層處理所有與數據庫訪問相關的操作,完成數據的增添、刪除、修改、更新、查找等功能。業務功能層主要實現業務功能,比如:新建生產單,添加用戶等。用戶界面層主要負責將數據展現給用戶。平臺提供獨立的SQLHelper封裝所有通用的數據庫訪問操作,供數據訪問層使用。即將每個系統模塊看成為一個小的三層結構的系統。平臺也將按此架構實
24、現。用戶界面包與平臺本身目錄分級管理,不屬于平臺系統目錄也不屬于平臺系統包,在編譯生成后的文件輸出至OUTPUT文件夾中,可由開發人員自由選擇所生成的目錄地址。3.1.3基礎功能類系統日期類系統日期類寫在包pkExFoundationClass中的ExSystemDate單元文件中。示例說明:Date()函數獲取當前系統日期值如2010-05-25Datetime()函數獲取當前系統日期值如2010-05-2508:00DatetimeString()函數獲取當前系統字符型日期值如2010-05-2508:00在相應外圍程序中可直接根據需要調用符合返回值類型的函數具體見圖3.4所示:圖3.4E
25、xSystemDate類屬性圖表格(cxgrid)擴展操作類GridHelper類寫在包pkExFoundationClass中的TEXGridHelper單元文件中,其封裝了常用的表格編輯,導出,打印等功能。示例說明:ExportToExcel(參數)對Grid實現導出至Excel功能ExportToTXT(參數)對Grid實現導出至TXT文本文檔功能具體見下圖3.5所示:圖3.5TEXGridHelper類圖進度條窗體類進度條窗體寫在包pkExFoundationClass中的ExProgress單元文件中,通過ShowProgress可調用此進度條,更新查詢進度。示例說明:ShowPro
26、gress此函數為調用接口函數,引用此函數可初始化進度條窗體Closeprogress釋放當前進度條窗體Updateprogress在初始化進度條后此方法實現進度條的移動具體見下圖3.6所示:圖3.6ExProgress進度條類圖系統平臺郵件發送類郵件發送類寫在包pkExFoundationClass中的Texmail單元文件中,定義了郵件發送地址,發送內容,發送地址,端口等信息,函數調用發送,減少定義參數代碼,編碼快捷示例說明:FBody此字段屬性定義用于郵件內容FSubject此字段屬性定義用于郵件主題FUserName此字段屬性定義用于用戶名SendMail此方法為定義參數信息后執行發送
27、操作的執行函數見圖3.7所示:圖3.7發送郵件類圖消息對話框窗體類消息對話框窗體寫在包pkExFoundationClass中的ExMessageBox單元文件中,此單元文件中的各種對話框以函數方式調用,指定參數調用后返回值。示例說明:Show()方法重載指定不同參數可實現不同類型的消息對話框,可動態指定對話框標題內容,顯示圖片,確認和取消按鈕的位置,個性化程度高。見圖3.8所示:圖3.8消息對話框類圖3.2系統后臺數據庫設計由于系統屬于集成平臺,因此數據的訪問量不大,重點在于表中數據的組織關系,將影響平臺的正常運行,此開發平臺運行對數據庫的依賴性高,一個好的數據庫是我們的目標,我們需要從這樣
28、一些方面考慮建好數據庫:數據庫冗余度小函數依賴性明確數據庫的表命名體現表的內容表中各屬性的名稱及類型體現該屬性的含義建立好的索引選定適當的鍵設定各字段的約束規則表在減少冗余時應考慮實際使用時的方便性3.2.1系統主要功能數據表及其關系用戶及對應用戶權組權限管理相關的表的關系,如圖3.9所示:圖3.9用戶及用戶組表關系圖系統菜單及基礎功能包表的關系圖3.10所示:圖3.10系統菜單基礎表及功能包關系3.2.2數據庫表設計根據物理結構設計的三原則即盡可能減少數據冗余和重復;結構設計與操作設計相結合;數據結構要具有相對的穩定性,進行本系統中關系數據庫表結構設計系統主要用戶相關數據庫表如下:表3-10
29、T_Ex_系統_用戶表列名數據類型允許NULL值用戶名nvarchar(50)Unchecked姓名nvarchar(50)Unchecked工號nvarchar(10)Unchecked密碼nvarchar(50)Unchecked性別nvarchar(2)Unchecked部門編號nvarchar(50)Unchecked公司編號varchar(50)Checked手機號nvarchar(50)CheckedEMailnvarchar(50)Checked崗位nvarchar(50)Checked辦公室電話nvarchar(50)Checked圖片imageChecked簽名圖片image
30、Checked激活狀態bitUnchecked表3-11T_Ex_系統_菜單表列名數據類型允許NULL值用戶名nvarchar(50)Unchecked姓名nvarchar(50)Unchecked工號nvarchar(10)Unchecked密碼nvarchar(50)Unchecked性別nvarchar(2)Unchecked部門編號nvarchar(50)Unchecked公司編號varchar(50)Checked手機號nvarchar(50)CheckedEMailnvarchar(50)Checked崗位nvarchar(50)Checked主要功能相關數據庫表表3-12T_Ex
31、_系統_查詢配置匯總字段表列名數據類型允許NULL值匯總序號intUnchecked查詢序號intUnchecked匯總字段nvarchar(50)Unchecked匯總方式nvarchar(50)Unchecked顯示位置nvarchar(50)Unchecked分組序號intUnchecked表3-13T_Ex_系統_查詢配置主表列名數據類型允許NULL值查詢序號intUnchecked窗體標題nvarchar(100)Unchecked查詢類型nvarchar(50)Unchecked查詢語句nvarchar(4000)Unchecked數據連接nvarchar(50)Unchecked
32、控件列數intUnchecked頁匯總bitUnchecked組匯總bitUnchecked系統代碼nvarchar(50)Checked添加人工號nvarchar(20)Checked修改人工號nvarchar(20)Checked修改時間datetimeChecked表3-16T_Ex_系統_錯誤反饋發件箱列名數據類型允許NULL值發件箱nvarchar(50)Unchecked用戶名nvarchar(50)Unchecked密碼nvarchar(50)Unchecked服務器nvarchar(50)Unchecked端口intUnchecked表3-17T_Ex_用戶桌面_系統列名數據類
33、型允許NULL值GIDintUnchecked用戶名nvarchar(50)Unchecked菜單代碼intUnchecked使用時間datetimeUncheckedIPnvarchar(50)Unchecked3.3系統開發工具3.3.1系統開發環境系統開發環境及開發工具介紹Delphi這個名字源于古希臘的城市名。它集中了第三代語言的優點。以ObjectPascal為基礎,擴充了面向對象的能力,并且完美地結合了可視化的開發手段。Delphi自1995年3月一推出就受到了人們的關注,并在當年一舉奪得了多項大獎。Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤
34、之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的“骨架”。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在“骨架”中加入您的程序。缺省的應用程序是一個空白的窗體(Form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。面向對象的程序設計(Object-OrientedProgramming,簡記為OOP)是Delphi誕生的基礎。OOP立意于創建軟件重用代碼,具備
35、更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程序中加入擴展語句,把函數“封裝”進Windows編程所必需的“對象”中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易。同時,選用SQLSever2008作為系統后臺數據庫,開發中將用到以下主要幾款開發工具,表3-1:系統開發環境表開發工具名稱軟件用途Microsoftvisio2007系統流程圖的設計、數據流圖的設計Delphi7.0工程管理、代碼編寫及調試SQL-Server2008建立系統的后臺數據庫photoshopcs圖片處理Delphi7開發環境的優點Delphi7適用于中小型系統的開發,編譯速度快,
36、在Win32編程中有絕對優勢,第三方控件使用方便,屬于面象對象的開發語言,其原生數據庫控件功能強大,實現方式簡單,采用編譯方式,因此與源程序可以沒有任何關聯進行運行,執行響應速度快。SQLServer2008后臺數據庫的優點數據庫保存著整個系統的重要信息,絕對不允許被他人惡意破壞。在Access、SQLServer2008、Oracle等諸多數據庫中我們選擇了SQLServer,原因如下:SQLServer2008是微軟公司推出服務器產品,SQLServer2008除了具有擴展性、可靠性以外,還具有可以迅速開發新的因特網應用系統的功能,尤其是可以直接存儲XML數據,可以將搜索結果以XML格式輸
37、出等特點。SQLServer2008通過對高硬件平臺以及最新網絡和存儲技術的支持,可以為大的應用系統和企業級的應用提供可擴展和高可靠性。3.3.2系統調試運行環境硬件環境:服務器端:推薦配置為2G內存,CPU為IntelPentium1700MHZ,硬盤容量為120G的微機,通信網絡:局域網軟件環境:操作系統:WindowsXPProfessionalSP3數據庫:SQLSERVER2008第四章用戶信息維護模塊4.1用戶信息維護模塊簡介在本系統中開通用戶信息必須由管理員進行開通帳號,從安全性的角度不提供其它接品程序進行開通帳號,注冊時用戶的密碼是加密后保存至數據庫中,數據庫維護人員是無法查看
38、到密碼的,在用戶輸入用戶名和密碼后,程序會自動將錄入的密碼加密并與數據庫的密碼進行比較,如相等則進入權限驗證模塊,讀到相關權限信息,進行用戶操作界面。4.1.1用戶信息維護模塊用戶只能修改密碼信息,對于用戶的個人信息暫不支持修改,如有變更需由管理員進行變更操作,如圖(4.1)所示:圖(4.1)用戶信息維護4.1.2模塊功能結構圖該模塊的結構如圖4.2所示。圖4.2用戶管理功能模塊結構圖4.2模塊詳細設計4.2.1用戶注冊界面用戶帳號開通界面設計效果如圖4.3所示:圖4.3用戶帳號截圖用戶注冊模塊由pkExPlatFormManage包組成,管理員在注冊頁面按照提示輸入用戶名、真實姓名、工號、密
39、碼、確認密碼、性別、公司編號、部門編制號、手機、電子郵箱、崗位、辦公電話。紅色字項為必填部分,當為空時出現時會提示錯誤,錯誤頁面如圖4-4所示:(1)用戶名為空。(2)真實姓名為空。(3)密碼與確認密碼不一致。(4)電子郵件地址格式不正確。如果不出現以上情況,則頁面被提交。但是并不是所有提交的頁面都可以通過注冊。在后臺處理程序中,要確認提交注冊的用戶名和郵件地址在系統中不存在,如果存在會彈出錯誤對話框,提示錯誤不能通過注冊。錯誤頁面如圖4.4所示。圖4.4注冊提示錯誤頁面4.2.3用戶登錄界面功能描述用戶登錄界面是定義在主程序中,當用戶在此窗口按提示輸入用戶名以及密碼,點擊“登錄”按鈕,經過系
40、統驗證之后,如果存在此用戶則提示登錄成功,否則則提示登錄不成功。用戶登錄界面如圖4.5所示。圖4.5用戶登錄界面代碼分析以下代碼主要實現對用戶輸入的用戶名和密碼進行驗證,驗證失敗則提示出錯信息,驗證成功后,則查找其用戶的已開通權限,生成主界面中的樹結構,該功能的實現主要代碼:procedureTMainForm.btnEnterClick(Sender:TObject);varmsg:string;CanLogin:Boolean;beginifcheckLoginInfoIsWrongthenExit;SetLoginPanalState(False);CanLogin:=False;try
41、CanLogin:=TExUser.GetInstance.Login(Self.ButtonEditFenQu.EditValue,Self.medtUserID.Text,Self.medtUserPwd.Text,msg);ifCanLoginthenbeginTExLog.GetInstance.Info(用戶登錄.);InitUserMenu;InitSysCons;Self.pnlLogin.Visible:=False;Self.FormStyle:=fsMDIForm;InitWelcomePage;SetSysButtonList;SetStatusBarInfo;endel
42、sebeginApplication.MessageBox(PAnsiChar(msg),出錯了,MB_OK+MB_ICONSTOP);end;finallySetLoginPanalState(True);ifnotCanLoginthenbeginSelf.medtUserPwd.SetFocus;Self.medtUserPwd.SelectAll;end;end;4.2.4用戶信息修改個人信息維護界面定義在pkExPlatFormManage包中,用戶成功登錄后,并可看到如下效果圖如圖4.8所示。圖4.8用戶信息修改4.3主要代碼分析4.3.1用戶帳號開通界面主要代碼分析驗證輸入信息是
43、否為空或是否已豐在函數的代碼段如下:functionTfrmPlatFormSysUserInfo.UserInputIsRight:Boolean;beginResult:=True;ifTExGlobal.TextIsNull(self.DBMaskEditYongHuMing,用戶名)orTExGlobal.TextIsNull(Self.DBMaskEditXinMing,姓名)orTExGlobal.TextIsNull(Self.DBMaskEditGongHao,工號)orTExGlobal.TextIsNull(Self.DBComboBoxXingBie,性別)orTExGl
44、obal.TextIsNull(Self.DBButtonEditGongSiBianHao,公司編號)orTExGlobal.TextIsNull(Self.DBButtonEditBuMenBianHao,部門編號)thenbeginResult:=False;Exit;end;ifSelf.FormModal=fmExNewthenbeginifTExSQLHelper.RecordExists(TExDBConnectionManager.GetInstance.PlatFormConnection,SELECT*FROMdbo.T_Ex_系統_用戶表WITH(nolock)WHERE
45、工號=+Self.DBMaskEditGongHao.Text+)thenbeginApplication.MessageBox(工號已經存在.,出錯了,MB_OK+MB_ICONSTOP);Result:=False;Exit;end;end;end;4.3.2加密處理模塊代碼以下代碼對用戶所輸入的密碼進行加密處理,可實現函數調用,函數返回加密后的字符串。代碼段如下:/對String類型數據進行MD5轉換classfunctionTExMD5.MD5String(constStr:string):string;varContext:TExMD5Context;Digest:TExMD5Dig
46、est;beginMD5Init(Context);MD5Update(Context,PAnsiChar(Str),Length(Str)*SizeOf(Char);MD5Final(Context,Digest);Result:=MD5DigestToString(Digest);end;classprocedureTExMD5.MD5Init(varContext:TExMD5Context);beginwithContextdobeginState0:=$67452301;State1:=$efcdab89;State2:=$98badcfe;State3:=$10325476;Cou
47、nt0:=0;Count1:=0;ZeroMemory(Buffer,SizeOf(TExMD5Buffer);end;end;classprocedureTExMD5.MD5Update(varContext:TExMD5Context;Input:PAnsiChar;Length:LongWord);varIndex:LongWord;PartLen:LongWord;I:LongWord;beginwithContextdobeginIndex:=(Count0shr3)and$3f;inc(Count0,Lengthshl3);ifCount0=PartLenthenbeginCopy
48、Memory(Context.BufferIndex,Input,PartLen);Transform(Context.Buffer,Context.State);I:=PartLen;whileI+63LengthdobeginTransform(InputI,Context.State);inc(I,64);end;Index:=0;endelseI:=0;CopyMemory(Context.BufferIndex,InputI,Length-I);end;/FinalizegivenContext,createDigestandzeroizeContextclassprocedureT
49、ExMD5.MD5Final(varContext:TExMD5Context;varDigest:TExMD5Digest);varBits:TExMD5CBits;Index:LongWord;PadLen:LongWord;beginDecode(Context.Count,Bits,2);Index:=(Context.Count0shr3)and$3f;ifIndex56thenPadLen:=56-IndexelsePadLen:=120-Index;MD5Update(Context,PADDING,PadLen);MD5Update(Context,Bits,8);Decode
50、(Context.State,Digest,4);ZeroMemory(Context,SizeOf(TExMD5Context);end;4.3.3郵件發送處理單元以下代碼用于發系統內部自動發送郵件,定義了端口,用戶名,密碼,主題,內容等參數,預留函數接口調用,可以返回發送后返回的狀態。具體格式如下:procedureTExMail.Send;beginIdSMTP1.Host:=FHost;IdSMTP1.Port:=FPort;IdSMTP1.Username:=FUsername;IdSMTP1.Password:=FPassword;IdMessage1.From.Address:=
51、FFromAddress;IdMessage1.Recipients.EMailAddresses:=FTargetAddress;IdMessage1.Subject:=FSubject;IdMessage1.Body.Text:=FBody;Application.ProcessMessages;iftrim(FFileName)thenTIdAttachment.Create(IdMessage1.MessageParts,FFileName);/附件Application.ProcessMessages;trytryIdSMTP1.Connect;ifIdSMTP1.AuthSchem
52、esSupported.IndexOf(LOGIN)-1thenbeginIdSMTP1.AuthenticationType:=atLogin;IdSMTP1.Authenticate;end;IdSMTP1.Send(IdMessage1);Application.ProcessMessages;exceptonE:ExceptiondoraiseException.Create(程序在試圖發送郵件時出現錯誤!+#13+出錯原因:+e.Message);end;finallyifIdSMTP1.ConnectedthenIdSMTP1.Disconnect;end;end;4.3.4程序自
53、動升級核心代碼以下代碼讀取XML文件配置信息,以包為單位,每個包有一個對應的版本號,服務器上的版本號大于本地則程序會在打開登陸前自動檢測升級,升級成功后,會自動重新啟動當前主程序,重新登陸,具體格式如下:procedureTMainForm.UpgradeApp;beginGetUpgradeInfo(LFSoft.xml);self.AutoUpgraderLFSoft.VersionNumber:=0;self.AutoUpgraderLFSoft.InfoFileURL:=;Self.AutoUpgraderLFSoft.VersionNumberInfoFile:=;self.Auto
54、UpgraderLFSoft.VersionControl:=byVersionFile;/新增的枚舉值,用于指定升級方式是用版本信息文件升級而不是以前的單個版本號;self.AutoUpgraderLFSoft.VersionDateAutoSet:=false;self.AutoUpgraderLFSoft.InfoFileURL:=FUpgradeInfo.InfoFileURL;self.AutoUpgraderLFSoft.VersionNumberInfoFile:=FUpgradeInfo.VersionNumberInfoFile;/新增屬性,用于指定文件的本地版本信息文件名s
55、elf.AutoUpgraderLFSoft.CheckUpdate(false);Self.AutoUpgraderLFSoft.AutoCheck:=True;Self.AutoUpgraderLFSoft.AutoCheckDelay:=1000*60*30;end;procedureTMainForm.GetUpgradeInfo(constconnXMLFile:string);varxmlDoc:TXMLDocument;ANode:IXMLNode;beginxmlDoc:=TXMLDocument.Create(Application);xmlDoc.FileName:=con
56、nXMLFile;xmlDoc.Active:=true;tryANode:=xmlDoc.ChildNodes.FindNode(LFSoft);ifANode=nilthenraiseException.Create(配置文件出錯!+#13+出錯信息:沒打到LFSoft根節點,請檢查!);ANode:=ANode.ChildNodes.FindNode(UpgradeInfo);ifANode=nilthenraiseException.Create(配置文件出錯!+#13+出錯信息:沒打到UpgradeInfo節點,請檢查!);self.FUpgradeInfo.VersionNumbe
57、rInfoFile:=ANode.AttributesVersionNumberInfoFile;SELF.FUpgradeInfo.InfoFileURL:=ANode.AttributesInfoFileURL;finallyxmlDoc.Active:=False;xmlDoc.Free;end;end;第五章系統基礎功能管理模塊5.1系統管理功能設計5.1.1系統管理模塊簡介系統管理模塊實現的功能包括:對用戶的管理和對產品的管理。為了防止不明用戶登錄系統,因此在管理員端,也需要驗證用戶的身份。同時管理員的密碼是通過加密存儲在數據庫中的。在管理員端的登錄界面要輸入管理員的名稱和密碼才可以
58、進入管理員端進行相應的管理員操作。5.1.2模塊功能結構圖系統管理主要功能為基礎信息的管理,如用戶管理,菜單配置管理,權限管理,公司管理,部門管理,數據連接管理等模塊功能結構圖如圖5.1所示:圖5.1系統管理模塊功能結構圖5.2模塊詳細設計5.2.1模塊程序流程圖此流程圖描述了此平臺的從驗證到進入主界面的基本組成部分,如圖5.2所示圖5.2系統管理模塊程序流程圖5.2.2用戶登錄界面用戶登錄界面,在此界面輸入用戶名密碼后登陸,具體界面如圖5.3所示:圖5.3登錄界面按照登錄界面的提示,輸入用戶名和密碼,進入系統操作界面,如不能正確輸入則會彈出相應的出錯提示對話框,成功后才可進入系統界面,不同用
59、戶所展現的菜單也不一樣,基本效果如下圖5.4所示圖5.4登錄成功后管理員的操作5.2.3用戶管理在用戶信息管理中,可以顯示出當前系統的所有注冊用戶,管理員可以對下圖5-5所顯示的用戶進行增刪改功能,實現操作功能按鈕為右第三欄上方的圖標按鈕。界面效果如圖5.5所示:圖5.5用戶管理界面5.2.4單表操作管理在通用配置界面中,在配置相關信息后生成動態錄入界面,減少大量代碼,在此功能界面主要核心就在于從數據庫讀取相關的操作配置信息然后生成對應的控件,并對Enable為False的控件綁定,進入操作,代碼主要為循環判斷對系統中指認的數據類型進行動態創建控件,實現此功能的主要代碼如下:functionT
60、frmCommonInputSingleTalbeExec.CreateQueryComponent(constAComponentType,AComponentName:string):TControl;varskinName:string;beginskinName:=Caramel;ifAComponentType=整數thenbeginResult:=TExGlobal.DynaCreateComponent(Self.tsQuery,TcxSpinEdit,AComponentName);TcxSpinEdit(Result).Style.LookAndFeel.SkinName:=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國數碼暴龍數據監測研究報告
- 2025年中國鹽酸氯苯胍市場調查研究報告
- 肇慶市實驗中學高中生物一:細胞核習題課
- 小學一年級語文下冊短文閱讀考級練習題
- 2025-2030年中國34寸背投彩色電視機行業市場現狀分析規劃研究報告
- 2025至2031年中國窗口式折疊包裝箱行業投資前景及策略咨詢研究報告
- 新疆伊犁市奎屯市第一高級中學2024-2025學年高三3月第二次月考綜合試題含解析
- 2025至2031年中國空調回風網行業投資前景及策略咨詢研究報告
- 2025年中國兒童牛仔連衣裙數據監測報告
- 2025-2030年中國dna防偽印刷市場運行現狀及發展前景預測研究報告
- 菜品退單原因分析報告
- 《塵肺病及其預防》課件
- 新能源電動汽車技術簡介
- 天融信運維安全審計系統V3
- 2024年初級社會工作者《社會工作實務(初級)》考試練習題(含答案)
- 教學勇氣:漫步教師心靈
- 醫務人員法律法規知識培訓課件
- 卷料加工中的跑偏與糾偏控制
- 波紋鋼裝配式檢查井通用技術規范
- 財務支出預算表模板
- 心房顫動健康宣教
評論
0/150
提交評論