【正文】
界面包括IP地址的設(shè)置文本框、服務(wù)器設(shè)置文本框、數(shù)據(jù)庫設(shè)置文本框和三個(gè)基本按鈕。(‘selectpswdfromyhklbwheredlyh=’+”””+trim()+”””)。 用戶管理模塊為了保證系統(tǒng)安全,系統(tǒng)初始化時(shí)建立一個(gè)系統(tǒng)用戶其用戶名和密碼均為小字的system,只有此用戶才具有用戶管理的功能,其它用戶不能訪問這個(gè)界面,如果要新增用戶、刪除用戶、修改密碼只能以此用戶登錄,當(dāng)然系統(tǒng)用戶可以修改自己的密碼,但不能刪除自己。(2)在基本參數(shù)表中查詢薪水賬目,將薪水賬目作為顯示標(biāo)題。成功失敗失敗是選取出盤的月份確認(rèn)出盤否是退 出選擇存盤路徑否將該月的數(shù)據(jù)作為下個(gè)月的初始數(shù)據(jù)插入Ygxjjgb中回滾在Kjcsb中插入一條記錄,表示該月已經(jīng)出盤成功數(shù)據(jù)存盤成功程序流程圖。不同權(quán)限的用戶登陸成功之后,其操作權(quán)限是有區(qū)別的,普通用戶進(jìn)入后,數(shù)據(jù)維護(hù)和打印的菜單將顯示為灰色。把員工關(guān)系表分為如下兩個(gè)表:員工:(員工號(hào),姓名,年齡,所屬部門……),即本數(shù)據(jù)庫中的員工資料表ygzlb。因此,你想在現(xiàn)有的DBMS中設(shè)計(jì)出不符合第一范式的數(shù)據(jù)庫都是不可能的。用于維護(hù)系統(tǒng)的一些基本參數(shù),例如職務(wù),職稱,工資賬目等、部門。但在歷史月份還是將體現(xiàn)該員工的資料。表5 用戶口令表字段序號(hào)列名列中文名數(shù)據(jù)類型備注1Dlgh登錄工號(hào)Varchar(20)主鍵2Pswd口令Varchar(10)3yhqx用戶權(quán)限Int(2)yhqxb(用戶權(quán)限表)針對(duì)用戶的不同使用要求,確定數(shù)據(jù)的用戶使用權(quán)限,確保數(shù)據(jù)安全。表1 員工資料表字段序號(hào)列名列中文名數(shù)據(jù)類型備注1Ygh員工工號(hào)char(6)主鍵2Xm員工姓名Varchar(12)3Xb性別Varchar(2)4Zzmm政治面貌Varchar(4)5Xl學(xué)歷Varchar(12)6Qsrq出生日期Varchar(19)7Ssbm所屬部門Varchar(30)8Zc職稱Varchar(30)9Zw職務(wù)Varchar(30)10Rzsj入職時(shí)間Varchar(19)11Sfzh身份證號(hào)Varchar(20)12Gdlxdh聯(lián)系電話Varchar(16)續(xù)表1字段序號(hào)列名列中文名數(shù)據(jù)類型備注16Czy操作員Varchar(20) 17Czrq操作時(shí)間Varchar(19)13Jtzz家庭住址Varchar(60)14Sjhm手機(jī)號(hào)碼Varchar(12)15EmailEmailVarchar(20)zwxxb(職務(wù)信息表)職務(wù)信息表用來存儲(chǔ)所有職務(wù)代碼對(duì)應(yīng)的職務(wù)名稱,它是員工資料表的子表之一。(10)數(shù)據(jù)描述功能:定義數(shù)據(jù)庫的全局邏輯結(jié)構(gòu)、局部邏輯結(jié)構(gòu)和其他各種數(shù)據(jù)庫對(duì)象。(4)數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合。 5 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)也就是系統(tǒng)服務(wù)器端的設(shè)計(jì),本數(shù)據(jù)庫采用當(dāng)今流行的SQL Server 2000來實(shí)現(xiàn)。類的概念是面向?qū)ο蟪绦蛟O(shè)計(jì)最重要的特征。用戶可以通過主菜單或總表單調(diào)用系統(tǒng)的各項(xiàng)功能。通過對(duì)企業(yè)員工管理內(nèi)容、工資管理內(nèi)容和過程的分析,本人事工資管理系統(tǒng)系統(tǒng)應(yīng)設(shè)計(jì)的實(shí)體和屬性如下:員工(包括員工工號(hào)、員工姓名、學(xué)歷、性別、政治面貌、出生日期、所屬部門、職稱、職務(wù)、入職時(shí)間、身份證號(hào)、聯(lián)系電話、家庭住址、手機(jī)號(hào)碼、Email、有效標(biāo)志)部門(部門代號(hào)、部門名稱)職務(wù)(職務(wù)代號(hào)、職務(wù)名稱)職稱(職稱代號(hào)、職稱名稱)薪金結(jié)構(gòu)(月份、員工工號(hào)、薪水賬目、數(shù)目)薪水賬目(薪水賬目代號(hào)、薪水賬目名稱)為了后面數(shù)據(jù)庫的建立,首先對(duì)該系統(tǒng)的ER模型進(jìn)行分析,并給出詳細(xì)圖形表示。概念性數(shù)據(jù)在用戶和設(shè)計(jì)者之間建立了橋梁,是設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)的基礎(chǔ)。在數(shù)據(jù)庫的設(shè)計(jì)中包含3個(gè)方面:(1)實(shí)體完整性,就是定義一條記錄為某個(gè)特定表的惟一實(shí)體,也可以成為行完整性,它要求表中所有的記錄都有一個(gè)惟一的標(biāo)志符,即主鍵。數(shù)據(jù)庫結(jié)構(gòu)直接關(guān)系到各種功能的實(shí)現(xiàn)和程序運(yùn)行的效率,一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫,可以使管理系統(tǒng)的實(shí)現(xiàn)變得非常簡單,同時(shí)也可以加快數(shù)據(jù)庫的運(yùn)行速度,在系統(tǒng)的執(zhí)行過程中,可以加快檢索,提高效率。(4)員工月工資單打?。簩?duì)員工工資查詢得到的結(jié)果,可以進(jìn)行打印。下面是客戶端的功能模塊介紹。同時(shí)可打印工資報(bào)表。實(shí)踐證明,用戶干預(yù)愈少,MIS系統(tǒng)的滿意程度愈高。目前,Windows下的應(yīng)用軟件無論大小,其安裝程序幾乎均做到了這一點(diǎn)。計(jì)算與打印分開設(shè)計(jì),雖然消耗時(shí)間,但易于整個(gè)MIS系統(tǒng)的維護(hù)。這是系統(tǒng)難于修改的主要原因。為了分析具備什么特點(diǎn)的系統(tǒng)易于修改,必須先找出修改一個(gè)系統(tǒng)的困難來自何處。這兩種方式都需要用到ADO的Connection對(duì)象。ADO可以使用VBScript、JavaScript等腳本語言來控制數(shù)據(jù)庫的存取以及輸出查詢結(jié)果。應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫,首先必須用ODBC管理器注冊(cè)一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動(dòng)程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。一組對(duì)數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)應(yīng)用程序編程接口。一個(gè)完整的ODBC由下列幾個(gè)部件組成[6]:(1) 應(yīng)用程序(Application)。隨著ODBC技術(shù)的推出,許多開發(fā)工具軟件都把ODBC技術(shù)集成到自己的軟件中,如VisualBasic、VisualC++、Power Builder等等。 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù) ODBC接口技術(shù)數(shù)據(jù)庫管理系統(tǒng)發(fā)展到了今天,可以說已經(jīng)到了極致,諸如國際國內(nèi)的主流數(shù)據(jù)庫管理系統(tǒng)ORACLE、SYBASE、INFORMIX、INGRES、DB2等等,數(shù)據(jù)庫系統(tǒng)的技術(shù)已經(jīng)非常成熟,不同的數(shù)據(jù)庫管理系統(tǒng)都占據(jù)著各自的市場。(2)可實(shí)現(xiàn)管理科學(xué)化和專業(yè)化。不過此部分內(nèi)容對(duì)于管理制度成熟的倉庫企業(yè)而言,其困難度并不大。在C/S中,客戶端有一套完整應(yīng)用程序,在出錯(cuò)提示、在線幫助等方面都有強(qiáng)大的功能,并且可以在子程序間自由切換。表:表(Table)是行(Row)的集合,每行是列(Column)的序列,每列對(duì)應(yīng)一個(gè)數(shù)據(jù)項(xiàng)。SQLServer2000有很多版本:企業(yè)版、開發(fā)版、標(biāo)準(zhǔn)版、個(gè)人版等。 SQL Server 2000介紹SQL Server 2000[3]是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQL Server ,同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用,這些功能進(jìn)一步將SQLServer確立為OLTP、數(shù)據(jù)倉庫以及電子商務(wù)應(yīng)用程序的最佳數(shù)據(jù)庫平臺(tái)。對(duì)于這種情況應(yīng)當(dāng)用Try…Except模塊來設(shè)計(jì)程序。當(dāng)然有些數(shù)據(jù)庫服務(wù)器也支持在TQuery部件的SQL屬性中設(shè)置多條SQL語句,只要數(shù)據(jù)庫服務(wù)器允許這樣,我們?cè)诰幊虝r(shí)可以為SQL屬性設(shè)置多條SQL語句。3)將TQuery部件的Data Source屬性設(shè)置為另一個(gè)數(shù)據(jù)源,這樣將另一個(gè)數(shù)據(jù)源中與當(dāng)前TQuery部件的SQL語句中的參數(shù)名相匹配的字段值賦給其對(duì)應(yīng)的參數(shù)。可以在TQuery組件的SQL屬性中設(shè)置SQL語句。在一個(gè)應(yīng)用程序中為每一個(gè)數(shù)據(jù)庫連接顯示的聲明TDataBase對(duì)象要根據(jù)需要而定,不是必需的。ADO數(shù)據(jù)集訪問組件與常用的數(shù)據(jù)訪問組件是并列的關(guān)系。利用ADO數(shù)據(jù)訪問組件,可以只使用ADO結(jié)構(gòu)與數(shù)據(jù)庫取得聯(lián)系并對(duì)其中的數(shù)據(jù)進(jìn)行操作,而在這些過程中完全不需要使用BDE。ADO使您的客戶端應(yīng)用程序能夠通過OLEDB提供訪問和操作在數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。它可以滿足基于本地、客戶/服務(wù)器和ODBC數(shù)據(jù)庫平臺(tái)的應(yīng)用程序的各種需要,而且異常方便、高效。(1)優(yōu)秀的可視化開發(fā)環(huán)境Delphi屬于RAD(rapid application development,快速應(yīng)用開發(fā))工具,這類工具的最大特點(diǎn)就是可視化的設(shè)計(jì)窗體以及能為窗體添加各種組件。Delphi的編譯器仍然是目前世界上最先進(jìn)最優(yōu)秀效率最高的編譯器。計(jì)算機(jī)語言越高級(jí),就越抽象越人性化,與低層硬件的關(guān)系就越少,使用起來就越方便。 需求分析部分結(jié)合軟件工程方法,對(duì)系統(tǒng)進(jìn)行需求分析、功能劃分、數(shù)據(jù)流圖設(shè)計(jì)。以前很多公司的所用人事工資管理系統(tǒng)都是用單擊版的,面對(duì)目前的實(shí)際狀況,迫切需要開發(fā)一個(gè)C/S模式管理系統(tǒng)來適應(yīng)這一些工作。另外,相對(duì)于主機(jī)/終端系統(tǒng),它不僅投資要低的多,而且能夠有效地保護(hù)已有資源。這種模式已無法適應(yīng)當(dāng)代信息系統(tǒng)的發(fā)展,而且它的可靠性亦較差,故而必須走向分布式,把處理和數(shù)據(jù)進(jìn)行分布。隨著社會(huì)的發(fā)展和技術(shù)的進(jìn)步,各大公司、企業(yè)為了增強(qiáng)自身的競爭能力,開始對(duì)自己的組織形式和管理模式進(jìn)行變革,即從自上而下的層層管理逐漸轉(zhuǎn)變?yōu)橛刑囟氊?zé)的分支小組、業(yè)務(wù)流程重新組織的管理,企業(yè)信息管理也正在由集中式逐步轉(zhuǎn)向分散式,而C/S結(jié)構(gòu)恰好為這種管理模式的變革提供了具體實(shí)現(xiàn)手段和強(qiáng)有力的支持工具。數(shù)據(jù)庫服務(wù)器用來控制所有的數(shù)據(jù)訪問和更新,文件服務(wù)器作為物理的磁盤貯存器,用來存放中央數(shù)據(jù)文件。 再次,從企業(yè)管理的角度來看,特別是制造業(yè)企業(yè)的生產(chǎn)管理,只有這種基于C/S的系統(tǒng)結(jié)構(gòu)才能使分散化的管理思想真正得以實(shí)現(xiàn)。應(yīng)用程序因此具有最大的復(fù)雜性,即使是原班開發(fā)人馬,要想對(duì)已有功能加以擴(kuò)充也是很困難的,當(dāng)數(shù)據(jù)庫稍具復(fù)雜性(比如有稍多相互關(guān)聯(lián)的表與規(guī)則),其他的人員開發(fā)另外的程序共同操作這個(gè)數(shù)據(jù)庫的數(shù)據(jù),幾乎不具可行性,不能適應(yīng)公司發(fā)展的需要。系統(tǒng)實(shí)現(xiàn)部分根據(jù)詳細(xì)設(shè)計(jì)和前面部分的分析結(jié)果,介紹了系統(tǒng)查詢功能,系統(tǒng)出盤模塊,工資短信模塊等關(guān)鍵模塊的實(shí)現(xiàn)代碼以及關(guān)鍵技術(shù)。編譯器或解釋器的主要工作就是翻譯代碼,成為人與計(jì)算機(jī)交流的主要通道。作為數(shù)據(jù)庫系統(tǒng)的開發(fā),Delphi是一個(gè)非常理想選擇[1]。Pascal本身是一種結(jié)構(gòu)優(yōu)良的語言,Pascal編譯器的高效性也部分得益于此。(1) ADO數(shù)據(jù)訪問組件ADO數(shù)據(jù)對(duì)象(Active Data Objects)實(shí)際是一種提供訪問各種數(shù)據(jù)類型的鏈接機(jī)制[2]。這種能力是通過一組新組件實(shí)現(xiàn)的,這些組件是ADO組件頁中,在組件面版的ADO頁上可以找到這些組件。TADO Data Set沒有直接的BDE對(duì)應(yīng)組件,但它提供了許多與TTable和TQuery相同的功能。主要包括數(shù)據(jù)源控件Data Source、客戶數(shù)據(jù)集控件Client Data Set、數(shù)據(jù)集提供器控件Data Set Provider等等。用Delphi :先利用數(shù)據(jù)存取組件和實(shí)際的數(shù)據(jù)庫建立連接,并用TSession對(duì)象和TDataBase對(duì)象管理這些連接。其中的變量StudentCode便是一個(gè)參數(shù)變量,它由一個(gè)冒號(hào)引導(dǎo),在程序運(yùn)行過程中,必須要為該參數(shù)賦值,該條SQL語句才能正確執(zhí)行,每次運(yùn)行應(yīng)用程序時(shí)可以為該參數(shù)變量賦予不同的值。在為TQuery部件設(shè)置SQL屬性時(shí)調(diào)用Close方法總是很安全的,如果TQuery部件已經(jīng)被關(guān)閉了,調(diào)用Close方法時(shí)不會(huì)產(chǎn)生任何影響。Open方法只能用來執(zhí)行SQL語言的查詢語句(Select命令),并返回一個(gè)查詢結(jié)果集,而Excel SQL方法還可以用來執(zhí)行其它常用的SQL語句(如INSERT,UPDATE,DELETE等命令),例如:(這樣會(huì)返回一個(gè)查詢結(jié)果集)如果調(diào)用Open方法,而沒有查詢結(jié)果時(shí),會(huì)出錯(cuò)。值得注意的是,ADO Query組件只有在激活的情況下才可以被正確地使用,這樣就提出了一個(gè)問題,也就是說,在每次修改ADO Query組件的SQL屬性時(shí)都必須先行進(jìn)行關(guān)閉,待清除掉SQL中所有的SQL語句后才可以添加新的SQL語句。SQL Server 2000的客戶端工具包括——企業(yè)管理器、查詢分析器、事件探查器、服務(wù)管理器、客戶端網(wǎng)絡(luò)實(shí)用工具、服務(wù)器網(wǎng)絡(luò)實(shí)用工具、導(dǎo)入和導(dǎo)出數(shù)據(jù)(DTS)等等。在SQL中,外模式對(duì)應(yīng)于視圖,模式對(duì)應(yīng)于基本表,元組稱為“行”,屬性稱為“列”。 C/S模式簡介 C/S定義C/S模式是一種兩層結(jié)構(gòu)的系統(tǒng)[4]:第一層是在客戶機(jī)系統(tǒng)上結(jié)合了表示與業(yè)務(wù)邏輯;第二層是通過網(wǎng)絡(luò)結(jié)合了數(shù)據(jù)庫服務(wù)器。由于客戶端實(shí)現(xiàn)與服務(wù)器的直接相連,沒有中間環(huán)節(jié),因此響應(yīng)速度快。客戶機(jī)/服務(wù)器具有以下特點(diǎn)[4]:(1)可實(shí)現(xiàn)資源共享。(4)能更好地保護(hù)原有的資源。為了適應(yīng)這種需求,Microsoft推出了開放數(shù)據(jù)庫互連技術(shù)[5](Open DataBase Connectivity,簡稱ODBC)。也就是說,不論是FoxPro、Access還是Oracle數(shù)據(jù)庫,只要有相應(yīng)的ODBC驅(qū)動(dòng)程序支持,均可用ODBCAPI進(jìn)行訪問。是ODBC中最重要的部件,負(fù)責(zé)為應(yīng)用程序加載和調(diào)用驅(qū)動(dòng)程序。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。它提供了系統(tǒng)開發(fā)人員實(shí)時(shí)存取數(shù)據(jù)庫的能力。(5)在適當(dāng)?shù)那闆r下,可以通過修改緩存行的內(nèi)容一更新數(shù)據(jù)源。主要從系統(tǒng)功能,結(jié)構(gòu),內(nèi)容,風(fēng)格,流程等方面來考慮。對(duì)A的修改波及B,而對(duì)B的修改又可以影響到C,E,……。設(shè)計(jì)MIS時(shí),針對(duì)每一個(gè)功能,都要按照模塊化思想,使輸入、處理與輸出“涇渭分明”,充分體現(xiàn)人機(jī)界面的通信功能。界面必須使用戶隨時(shí)掌握任務(wù)的進(jìn)展情況。例如,人事管理系統(tǒng)中的“文化程度”是相對(duì)固定的數(shù)據(jù),其值一般取“小學(xué)”、“初中”、“高中”、“大?!?、“大本”、“碩研”、“博研”等。數(shù)據(jù)的輸入:由工作人員通過新員工本月工資增加和老員工上月工資表修改完成。在服務(wù)器端,系統(tǒng)的主要設(shè)計(jì)就是數(shù)據(jù)庫的設(shè)計(jì),采用SQL Se