前言:本站為你精心整理了畢業(yè)員工信息管理范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
摘要
本文通過(guò)用VB6.0編寫員工信息管理系統(tǒng),利用軟件工程原理,采用面向?qū)ο蟮木幊谭椒?,其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面,實(shí)現(xiàn)了員工信息管理的自動(dòng)化和信息化.
本文還簡(jiǎn)單介紹了VB6.0軟件的界面及操作方法。簡(jiǎn)要介紹了窗體的制作過(guò)程,程序的編寫,添加,最后的編譯過(guò)程。并且敘述了作者在軟件開(kāi)發(fā)過(guò)程中的心得體會(huì)。
關(guān)鍵詞:?jiǎn)T工信息管理數(shù)據(jù)庫(kù)統(tǒng)計(jì)
目錄
第一章引言3
第二章系統(tǒng)分析4
2.1開(kāi)發(fā)背景4
2.2需求分析4
2.3概要5
2.4系統(tǒng)要求5
第三章開(kāi)發(fā)方法8
3.1系統(tǒng)開(kāi)發(fā)方法概述8
3.2結(jié)構(gòu)化生命周期法簡(jiǎn)介8
3.3快速原型法簡(jiǎn)介9
3.4本系統(tǒng)開(kāi)發(fā)方法的選擇10
第四章開(kāi)發(fā)平臺(tái)和工具11
4.1開(kāi)發(fā)平臺(tái)的選擇11
4.2開(kāi)發(fā)工具的選擇11
4.2.1開(kāi)發(fā)語(yǔ)言介紹11
第五章系統(tǒng)規(guī)劃和分析12
5.1系統(tǒng)的可行性分析12
5.2系統(tǒng)的詳細(xì)調(diào)查12
5.3系統(tǒng)邏輯模型的提出13
第六章系統(tǒng)設(shè)計(jì)13
6.1系統(tǒng)流程圖16
6.2數(shù)據(jù)庫(kù)設(shè)計(jì)16
6.3系統(tǒng)主界面設(shè)計(jì).......…………………………………………….19
6.4登陸窗體設(shè)計(jì).......……………………………………………….19
6.5各主要模塊設(shè)計(jì).19
6.5.1基礎(chǔ)設(shè)置模塊設(shè)計(jì).......................................................24
6.5.2員工管理模塊設(shè)計(jì)……………………………………….27
6.5.3請(qǐng)假管理模塊設(shè)計(jì)……………………………………….29
6.5.4系統(tǒng)幫助模塊設(shè)計(jì)……………………………….………31
第七章編譯生成應(yīng)用程序.…………………………………………...37
設(shè)計(jì)小結(jié)………………………………………………………..39參考文獻(xiàn)………………………………………………………...40
第一章引言
本軟件使用MicrosoftBasic6.0進(jìn)行編寫。數(shù)據(jù)庫(kù)技術(shù)的產(chǎn)生與發(fā)展源于對(duì)于數(shù)據(jù)的組織和管理。數(shù)據(jù)庫(kù)技術(shù)是數(shù)據(jù)管理的技術(shù),它隨著數(shù)據(jù)管理任務(wù)的需要而產(chǎn)生于20世紀(jì)60年代中期。這是一門綜合性技術(shù),涉及操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),算法設(shè)計(jì)和程序設(shè)計(jì)等知識(shí)。數(shù)據(jù)庫(kù)技術(shù)的基本思想是對(duì)數(shù)據(jù)實(shí)行集中,統(tǒng)一,獨(dú)立的管理,用戶可以最大限度的共享數(shù)據(jù)資源。
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)際上是一個(gè)應(yīng)用系統(tǒng),它是在計(jì)算機(jī)硬,軟件系統(tǒng)支持下,由用戶,數(shù)據(jù)庫(kù)管理系統(tǒng),存儲(chǔ)在存儲(chǔ)設(shè)備上的數(shù)據(jù)和數(shù)據(jù)庫(kù)應(yīng)用程序構(gòu)成的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)是由數(shù)據(jù),數(shù)據(jù)庫(kù)管理系統(tǒng),應(yīng)用程序,用戶組成。
數(shù)據(jù)庫(kù)的特點(diǎn):1.實(shí)現(xiàn)數(shù)據(jù)共享2.實(shí)現(xiàn)數(shù)據(jù)獨(dú)立3.減少了數(shù)據(jù)冗余度4.避免了數(shù)據(jù)不一致性5.加強(qiáng)了對(duì)數(shù)據(jù)的保護(hù)。
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DATABASEAPPLICATIONSYSTEMSDBAS)
1.管理信息系統(tǒng)
2.開(kāi)放式信息服務(wù)系統(tǒng)
一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)通常是由數(shù)據(jù)庫(kù)和應(yīng)用程序兩部分組成,它們是在數(shù)據(jù)庫(kù)管理系統(tǒng)支持下設(shè)計(jì)和開(kāi)發(fā)出來(lái)的。
第二章系統(tǒng)分析
2.1開(kāi)發(fā)背景
隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的快速發(fā)展和信息化水平的不斷提高,如何利用先進(jìn)的管理手段,提高企業(yè)員工信息管理的水平,是當(dāng)今社會(huì)所面臨的一個(gè)課題。提高企業(yè)管理水平,必須全方位地提高企業(yè)管理意識(shí)。只有高標(biāo)準(zhǔn)、高質(zhì)量的管理才能滿足企業(yè)的發(fā)展需求。面對(duì)信息時(shí)代的挑戰(zhàn),利用高科技手段來(lái)提高企業(yè)員工信息管理無(wú)疑是一條行之有效的途徑。在某種意義上,信息與科技在企業(yè)管理與現(xiàn)代化建設(shè)中顯現(xiàn)出越來(lái)越重要的地位。員工管理方面的信息化與科學(xué)化,已成為現(xiàn)代化生活水平步入高臺(tái)階的重要標(biāo)志。
2.2需求分析
利用計(jì)算機(jī)實(shí)現(xiàn)員工信息管理勢(shì)在必行。對(duì)于企業(yè)來(lái)說(shuō),利用計(jì)算機(jī)支持企業(yè)高效率完成員工信息管理的日常事務(wù),是適應(yīng)現(xiàn)代企業(yè)制度要求、推動(dòng)企業(yè)勞動(dòng)型管理走向科學(xué)化、規(guī)范化的必要條件;而員工信息管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,員工信息錄入,員工信息管理,信息查詢,請(qǐng)假等管理,一般不允許出錯(cuò),如果實(shí)行手工操作,須手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行這項(xiàng)工作的管理,不僅能夠保證各項(xiàng)信息準(zhǔn)確無(wú)誤、快速輸出,同時(shí)計(jì)算機(jī)具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高企業(yè)管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。
2.3概要
VisualBasic是美國(guó)微軟公司的第一個(gè)編程工具和系統(tǒng)開(kāi)發(fā)的第一個(gè)產(chǎn)品,VisualBasic以優(yōu)良的性能、較強(qiáng)的系統(tǒng)開(kāi)發(fā)功能、完美的視覺(jué)界面和簡(jiǎn)單易學(xué)的特點(diǎn),已經(jīng)贏得了全世界廣大用戶的偏愛(ài)。VisualBasic的編程環(huán)境包含了快速有效的開(kāi)發(fā)功能,尤其是數(shù)據(jù)窗口這一方便而簡(jiǎn)潔操縱數(shù)據(jù)庫(kù)的智能化對(duì)象,使系統(tǒng)的開(kāi)發(fā)更人性化,操作更簡(jiǎn)便。
作為管理信息系統(tǒng)的開(kāi)發(fā),VisualBasic是一個(gè)非常理想選擇。VisualBasic是一種可視化的、面對(duì)對(duì)象和條用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì),可用于開(kāi)發(fā)Windows環(huán)境下的種類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大,可以與Windows的專業(yè)開(kāi)發(fā)工具SDK相媲美,而且程序開(kāi)發(fā)人員不必具有C/C++編程基礎(chǔ)。在VisualBasic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù),以及動(dòng)態(tài)鏈接庫(kù)(DLL)、動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)訪問(wèn)(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)出Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。
2.4系統(tǒng)要求
一、硬件要求:
1486/DX66Mhz以上CPU
2內(nèi)存16M以上(使用WindowsNT需要32M以上內(nèi)存)
3硬盤容量1GB以上(典型安裝需要128MB硬盤空間,完全安裝須要147MB硬盤空間,外加Microsoft開(kāi)發(fā)者文檔67MB硬盤空間)
4EGA以上分辨率的顯示器.
5一個(gè)CD-ROM驅(qū)動(dòng)器
6鼠標(biāo)或其它定點(diǎn)設(shè)備
二、軟件要求
1操作系統(tǒng)應(yīng)使用MicrosoftWindows95及以上版本,或者使用MicrosoftWindowsNT3.51或者更高版本.
2安裝有IE4.0或以上版本的瀏覽器.
第三章系統(tǒng)開(kāi)發(fā)方法
3.1系統(tǒng)開(kāi)發(fā)方法概述
建立一個(gè)管理信息系統(tǒng),是一項(xiàng)復(fù)雜的軟件工程的實(shí)施。近30多年來(lái),軟件工程發(fā)展成為新科學(xué),至今已經(jīng)成為IT產(chǎn)業(yè)的重要支柱。一開(kāi)始,人們往往使用手工作坊式的軟件開(kāi)發(fā)方法,靠個(gè)人的力量編寫各種小型程序;但是隨著計(jì)算機(jī)硬件技術(shù)的飛速發(fā)展,計(jì)算機(jī)軟件在各個(gè)領(lǐng)域中的作用日益突出,那種多年來(lái)被人們沿用的手工作坊式的開(kāi)發(fā)方法,已經(jīng)在軟件產(chǎn)品的質(zhì)量、成本及開(kāi)發(fā)時(shí)間等方面無(wú)法滿足需求。
3.2結(jié)構(gòu)化生命周期法簡(jiǎn)介
結(jié)構(gòu)化生命周期法是一種傳統(tǒng)的管理信息系統(tǒng)開(kāi)發(fā)方法,其基本思想是把整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程分成若干個(gè)階段,每個(gè)階段進(jìn)行若干活動(dòng),每項(xiàng)活動(dòng)應(yīng)用一系列標(biāo)準(zhǔn)、規(guī)范、方法和技術(shù),完成一個(gè)或多個(gè)任務(wù),形成符合給定規(guī)范的產(chǎn)品。
采用結(jié)構(gòu)化生命周期法開(kāi)發(fā)管理信息系統(tǒng)時(shí),應(yīng)遵循的主要原則:
(一)用戶參與的原則
(二)“先邏輯后物理”的原則
(三)“自頂向下”的原則
(四)工作成果描述(主要指文檔)標(biāo)準(zhǔn)化的原則
其具體開(kāi)發(fā)步驟可分為以下四步:
(一)系統(tǒng)規(guī)劃
(二)系統(tǒng)開(kāi)發(fā)
1、系統(tǒng)分析
.系統(tǒng)初步調(diào)查
.系統(tǒng)可行性研究
.現(xiàn)行系統(tǒng)的詳細(xì)調(diào)查
.新系統(tǒng)邏輯方案的提出
2、系統(tǒng)設(shè)計(jì)
.系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
.系統(tǒng)總體功能設(shè)計(jì)
.系統(tǒng)總體物理結(jié)構(gòu)設(shè)計(jì)
.系統(tǒng)詳細(xì)設(shè)計(jì)
.數(shù)據(jù)庫(kù)設(shè)計(jì)
.代碼設(shè)計(jì)
.輸入輸出設(shè)計(jì)
3、系統(tǒng)實(shí)施
.程序設(shè)計(jì)
.系統(tǒng)測(cè)試
(三)系統(tǒng)的運(yùn)行及維護(hù)
(四)系統(tǒng)評(píng)價(jià)
3.3快速原型法簡(jiǎn)介
快速原型法是80年展起來(lái)的,旨在縮短開(kāi)發(fā)周期,提高開(kāi)發(fā)效率和用戶對(duì)系統(tǒng)的滿意程度。其基本思想是在系統(tǒng)開(kāi)發(fā)的初期,盡快構(gòu)造出系統(tǒng)的原型,使用戶能及早地運(yùn)行這個(gè)系統(tǒng)原型,通過(guò)使用它、熟悉它,受到啟發(fā)并取得經(jīng)驗(yàn),然后對(duì)系統(tǒng)的目標(biāo)和功能提出更精確、具體的要求,研制人員據(jù)此逐漸修改和完善原型,使它滿足用戶的需求,最后完成系統(tǒng)的開(kāi)發(fā)。該方法大大提高了系統(tǒng)開(kāi)發(fā)效率,彌補(bǔ)了結(jié)構(gòu)化生命周期法開(kāi)發(fā)時(shí)間長(zhǎng)的缺陷。
通常采用原型法需以下四個(gè)階段:
(一)明確用戶的基本要求
(二)研制系統(tǒng)的原型
(三)使用、評(píng)價(jià)系統(tǒng)原型
(四)修改和完善原型
3.4本系統(tǒng)開(kāi)發(fā)方法的選擇
基于以上開(kāi)發(fā)方法的優(yōu)劣和本系統(tǒng)的實(shí)際情況,本系統(tǒng)總體上采用結(jié)構(gòu)化生命周期法進(jìn)行系統(tǒng)規(guī)則、系統(tǒng)分析和系統(tǒng)設(shè)計(jì),但在系統(tǒng)實(shí)施階段采用原型法。
第四章開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具
開(kāi)發(fā)平臺(tái)的選擇
考慮到本系統(tǒng)的性能要求,和現(xiàn)有的條件,我們選擇了WINDOWS2000中文版作為開(kāi)發(fā)、測(cè)試和運(yùn)行的平臺(tái)。因?yàn)閃INDOWS操作系統(tǒng)是目前應(yīng)用最廣的操作系統(tǒng),它以全新的圖形界面,簡(jiǎn)單快捷的操作方式,支持多媒體功能等特點(diǎn)而成為軟件發(fā)展的流行趨勢(shì),選用它作為開(kāi)發(fā)平臺(tái),易于功能的擴(kuò)展和軟件升級(jí)。
4.2開(kāi)發(fā)工具的選擇
針對(duì)目前世界上流行的大量軟件和開(kāi)發(fā)工具,經(jīng)過(guò)認(rèn)真分析其優(yōu)缺點(diǎn),結(jié)合員工信息管理系統(tǒng)的需要和目前的硬件環(huán)境,我們選用微軟WINDOWS平臺(tái)下的VisualBasic6.0(簡(jiǎn)寫為VB6.0)作為軟件開(kāi)發(fā)工具。
4.2.1開(kāi)發(fā)語(yǔ)言介紹
現(xiàn)在,市場(chǎng)上可以選購(gòu)的應(yīng)用開(kāi)發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國(guó)市場(chǎng)上最為流行、使用最多、最為先進(jìn)的可用作做作企業(yè)級(jí)開(kāi)發(fā)工具的產(chǎn)品有:
Microsoft公司的VisualBasic
Microsoft公司的VisualC
Borland公司的Delphi
Powersoft公司的PowerBulider
Java等等
在目前市場(chǎng)上這些眾多的程序開(kāi)發(fā)工具中,有些強(qiáng)調(diào)編程語(yǔ)言的彈性與執(zhí)行效率;有些則偏重于可視化程序開(kāi)發(fā)工具所帶來(lái)的便利性與效率的得高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語(yǔ)言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒(méi)有彈性的語(yǔ)言作支持,許多特殊化的處理動(dòng)作必需要耗費(fèi)數(shù)倍的工夫來(lái)處理,使得原來(lái)所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)編程語(yǔ)言的彈性,卻沒(méi)有便利的工具作配合,會(huì)使一些即使非常簡(jiǎn)單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。
作為數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā),VisualBasic是一個(gè)非常理想選擇。數(shù)據(jù)庫(kù)是MIS中的重要支持技術(shù),在MIS開(kāi)發(fā)過(guò)程中,如何選擇數(shù)據(jù)庫(kù)管理是一個(gè)重要的問(wèn)題,目前,數(shù)據(jù)庫(kù)產(chǎn)品較多,每種產(chǎn)品都具有各自的特點(diǎn)和適用范圍,因此,在選擇數(shù)據(jù)庫(kù)時(shí),應(yīng)考慮數(shù)據(jù)庫(kù)應(yīng)用的特點(diǎn)及適用范圍,本系統(tǒng)選用的數(shù)據(jù)庫(kù)語(yǔ)言VisualBasic語(yǔ)言,該開(kāi)發(fā)工具具有很多長(zhǎng)處:
VisualBasic是一種可視化的、面對(duì)對(duì)象和條用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì),可用于開(kāi)發(fā)Windows環(huán)境下的種類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大,可以與Windows的專業(yè)開(kāi)發(fā)工具SDK相媲美,而且程序開(kāi)發(fā)人員不必具有C/C++編程基礎(chǔ)。在VisualBasic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù),以及動(dòng)態(tài)鏈接庫(kù)(DLL)、動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)訪問(wèn)(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)出Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。
總的來(lái)說(shuō),VisualBasic具有以下特點(diǎn):
可視化編程:
用傳統(tǒng)程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)程序時(shí),都是通過(guò)編寫程序代碼來(lái)設(shè)計(jì)用戶界面,在設(shè)計(jì)過(guò)程中看不到界面的實(shí)際顯示效果,必須編譯后運(yùn)行程序才能觀察。如果對(duì)界面的效果不滿意,還要回到程序中修改。有時(shí)候,這種編程-編譯-修改的操作可能要反復(fù)多次,大大影響了軟件開(kāi)發(fā)效率。VisualBasic提供了可視化設(shè)計(jì)工具,把Windows界面設(shè)計(jì)的復(fù)雜性“封裝”起來(lái),開(kāi)發(fā)人員不必為界面設(shè)計(jì)而編寫大量程序代碼。只需要按設(shè)計(jì)要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對(duì)象,并設(shè)置這些圖形對(duì)象的屬性。VisualBasic自動(dòng)產(chǎn)生界面設(shè)計(jì)代碼,程序設(shè)計(jì)人員只需要編寫實(shí)現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設(shè)計(jì)的效率。
面向?qū)ο蟮某绦蛟O(shè)計(jì)
4.0版以后的VisualBasic支持面向?qū)ο蟮某绦蛟O(shè)計(jì),但它與一般的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言(C++)不完全相同。在一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中,對(duì)象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而VisualBasic則是應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP),把程序和數(shù)據(jù)封裝起來(lái)作為一個(gè)對(duì)象,并為每個(gè)對(duì)象賦予應(yīng)有的屬性,使對(duì)象成為實(shí)在的東西。在設(shè)計(jì)對(duì)象時(shí),不必編寫建立和描述每個(gè)對(duì)象的程序代碼,而是用工具畫在界面上,VisualBasic自動(dòng)生成對(duì)象的程序代碼并封裝起來(lái)。每個(gè)對(duì)象以圖形方式顯示在界面上,都是可視的。
結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
VisualBasic是在BASIC語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,具有高級(jí)程序設(shè)計(jì)語(yǔ)言的語(yǔ)句結(jié)構(gòu),接近于自然語(yǔ)言和人類的邏輯思維方式。VisualBasic語(yǔ)句簡(jiǎn)單易懂,其編輯器支持彩色代碼,可自動(dòng)進(jìn)行語(yǔ)法錯(cuò)誤檢查,同時(shí)具有功能強(qiáng)大且使用靈活的調(diào)試器和編譯器。
VisualBasic是解釋型語(yǔ)言,在輸入代碼的同時(shí),解釋系統(tǒng)將高級(jí)語(yǔ)言分解翻譯成計(jì)算機(jī)可以識(shí)別的機(jī)器指令,并判斷每個(gè)語(yǔ)句的語(yǔ)法錯(cuò)誤。在設(shè)計(jì)VisualBasic程序的過(guò)程中,隨時(shí)可以運(yùn)行程序,而在整個(gè)程序設(shè)計(jì)好之后,可以編譯生成可執(zhí)行文件(.EXE),脫離VisualBasic環(huán)境,直接在Windows環(huán)境下運(yùn)行。
事件驅(qū)動(dòng)編程機(jī)制
VisualBasic通過(guò)事件來(lái)執(zhí)行對(duì)象的操作。一個(gè)對(duì)象可能會(huì)產(chǎn)生多個(gè)事件,每個(gè)事件都可以通過(guò)一段程序來(lái)響應(yīng)。例如,命令按鈕是一個(gè)對(duì)象,當(dāng)用戶單擊該按鈕時(shí),將產(chǎn)生一個(gè)“單擊”(CLICK)事件,而在產(chǎn)生該事件時(shí)將執(zhí)行一段程序,用來(lái)實(shí)現(xiàn)指定的操作。
在用VisualBasic設(shè)計(jì)大型應(yīng)用軟件時(shí),不必建立具有明顯開(kāi)始和結(jié)束的程序,而是編寫若干個(gè)微小的子程序,即過(guò)程。這些過(guò)程分別面向不同的對(duì)象,由用戶操作引發(fā)某個(gè)事件來(lái)驅(qū)動(dòng)完成某種特定的功能,或者由事件驅(qū)動(dòng)程序調(diào)用通用過(guò)程來(lái)執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。
訪問(wèn)數(shù)據(jù)庫(kù)
VisualBasic具有強(qiáng)大的數(shù)據(jù)庫(kù)管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫(kù)管理窗口,可以直接建立或處理MicrosoftAccess格式的數(shù)據(jù)庫(kù),并提供了強(qiáng)大的數(shù)據(jù)存儲(chǔ)和檢索功能。同時(shí),VisualBasic還能直接編輯和訪問(wèn)其他外部數(shù)據(jù)庫(kù),如dBASE,F(xiàn)oxPro,Paradox等,這些數(shù)據(jù)庫(kù)格式都可以用VisualBasic編輯和處理。
VisualBasic提供開(kāi)放式數(shù)據(jù)連接,即ODBC功能,可通過(guò)直接訪問(wèn)或建立連接的方式使用并操作后臺(tái)大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù),如SQLServer,Oracle等。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語(yǔ)言SQL數(shù)據(jù)標(biāo)準(zhǔn),直接訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),并提供了簡(jiǎn)單的面向?qū)ο蟮膸?kù)操作指令和多用戶數(shù)據(jù)庫(kù)訪問(wèn)的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的SQL的編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫(kù)提供了SQL網(wǎng)絡(luò)接口,以便在分布式環(huán)境中快速而有效地實(shí)現(xiàn)客戶/服務(wù)器(client/server)方案。
動(dòng)態(tài)數(shù)據(jù)交換(DDE)
利用動(dòng)態(tài)數(shù)據(jù)交換(DynamicDataExchange)技術(shù),可以把一種應(yīng)用程序中的數(shù)據(jù)動(dòng)態(tài)地鏈接到另一種應(yīng)用程序中,使兩種完全不同的應(yīng)用程序建立起一條動(dòng)態(tài)數(shù)據(jù)鏈路。當(dāng)原始數(shù)據(jù)變化時(shí),可以自動(dòng)更新鏈接的數(shù)據(jù)。VisualBasic提供了動(dòng)態(tài)數(shù)據(jù)交換的編程技術(shù),可以在應(yīng)用程序中與其他Windows應(yīng)用程序建立動(dòng)態(tài)數(shù)據(jù)交換,在不同的應(yīng)用程序之間進(jìn)行通信。
對(duì)象的鏈接與嵌入(OLE)
對(duì)象的鏈接與嵌入(OLE)將每個(gè)應(yīng)用程序都看作是一個(gè)對(duì)象(object),將不同的對(duì)象鏈接(link)起來(lái),再嵌入(embed)某個(gè)應(yīng)用程序中,從而可以得到具有聲音、影像、圖像、動(dòng)畫、文字等各種信息的集合式的文件。OLE技術(shù)是Microsoft公司對(duì)象技術(shù)的戰(zhàn)略,它把多個(gè)應(yīng)用程序合為一體,將每個(gè)應(yīng)用程序看作是一個(gè)對(duì)象進(jìn)行鏈接和嵌入,是一種應(yīng)用程序一體化的技術(shù)。利用OLE技術(shù),可以方便地建立復(fù)合式文檔(compounddocument),這種文檔由來(lái)自多個(gè)不同應(yīng)用程序的對(duì)象組成,文檔中的每個(gè)對(duì)象都與原來(lái)的應(yīng)用程序相聯(lián)系,并可執(zhí)行與原來(lái)應(yīng)用程序完全相同的操作。
動(dòng)態(tài)鏈接庫(kù)(DLL)
VisualBasic是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,不具備低級(jí)語(yǔ)言的功能,對(duì)訪問(wèn)機(jī)器硬件的操作不太容易實(shí)現(xiàn)。但它可以通過(guò)動(dòng)態(tài)鏈接庫(kù)技術(shù)將C/C++或匯編語(yǔ)言編寫的程序加入到VisualBasic應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語(yǔ)言編寫的函數(shù)。此外,通過(guò)動(dòng)態(tài)鏈接庫(kù),還可以調(diào)用Windows應(yīng)用程序接口(API)函數(shù),實(shí)現(xiàn)SDK所具有的功能
第五章系統(tǒng)的規(guī)劃與分析
5.1系統(tǒng)的可行性分析
經(jīng)濟(jì)可行性分析
本系統(tǒng)開(kāi)發(fā)簡(jiǎn)單但要耗去一定的時(shí)間,所用的開(kāi)發(fā)工具和軟件都差不多是免費(fèi)的。而且,由于系統(tǒng)能夠在未來(lái)較長(zhǎng)的一段時(shí)期內(nèi)穩(wěn)定地發(fā)揮作用,這對(duì)于企業(yè)的辦公自動(dòng)化管理,節(jié)省企業(yè)的人力、物力資源等都有很大的幫助。由此可見(jiàn)在,開(kāi)發(fā)此系統(tǒng)在經(jīng)濟(jì)上是完全可行的。
2.1.2操作可行性分析
如今的計(jì)算機(jī)已經(jīng)走進(jìn)千家萬(wàn)戶,硬件成本的下降,導(dǎo)致計(jì)算機(jī)購(gòu)買成本的降低.我的這套系統(tǒng)是利用自己的計(jì)算機(jī)加微軟的集成開(kāi)發(fā)環(huán)境MicrosoftVisualBasic6.0作為軟件的開(kāi)發(fā)平臺(tái),使開(kāi)發(fā)出來(lái)的系統(tǒng)有友好的用戶界面、有良好的安全性設(shè)置、有詳細(xì)的操作說(shuō)明書(shū),這樣更使各類用戶很快地掌握系統(tǒng)的使用方法,操作友好因此在操作上是可行的.
2.1.3技術(shù)可行性分析
從目前IT業(yè)界比較流行的數(shù)據(jù)庫(kù)開(kāi)發(fā)、管理軟件來(lái)看,對(duì)于比較簡(jiǎn)單的中小型數(shù)據(jù)庫(kù),VB和Windows2000Server以及MicrosoftACCESS2000的結(jié)合無(wú)疑是在實(shí)際應(yīng)用中較為成功的一種解決方案。為用戶提供了業(yè)界軟件開(kāi)發(fā)一直堅(jiān)持的非常友好、操作簡(jiǎn)單的用戶界面、完善強(qiáng)大的數(shù)據(jù)庫(kù)操作功能和簡(jiǎn)潔明了的數(shù)據(jù)庫(kù)接口。所以技術(shù)實(shí)行起來(lái)相對(duì)會(huì)容易。
2.2現(xiàn)有系統(tǒng)的分析
有關(guān)員工管理系統(tǒng)的軟件市面上有不少,企業(yè)的員工也試用過(guò)一些,但總覺(jué)得不是很好用,不能完全滿足我們的要求,所以都放棄用這些軟件了,改為每次輸入數(shù)據(jù)后,用手工更改數(shù)據(jù)庫(kù),隨著企業(yè)的發(fā)展,員工數(shù)據(jù)量越來(lái)越大,用手工操作就很麻煩了,所以,迫切希望有一套完全適合企業(yè)員工信息管理應(yīng)用的軟件,以減輕公司員工的工作負(fù)擔(dān)。
另一方面由于這類軟件大多數(shù)是單機(jī)版的,現(xiàn)在也有不少是網(wǎng)絡(luò)版的,但大部份都是在本地網(wǎng)絡(luò)上運(yùn)行的。而管理業(yè)務(wù)人員是在外面跑業(yè)務(wù),想知道某員工的最新情況,都要打電話回公司問(wèn),這就造成很大的不便。因此系統(tǒng)的開(kāi)發(fā)方向應(yīng)當(dāng)是面向網(wǎng)絡(luò)版的員工信息管理系統(tǒng)開(kāi)發(fā).這點(diǎn)在今后的學(xué)習(xí)中將不斷完善.
2.3系統(tǒng)的安全性分析
安全系統(tǒng)的需求定義:
1)系統(tǒng)提供用戶登錄功能(進(jìn)行用戶身份驗(yàn)證),并且用戶名和用戶編號(hào)是唯一的。用戶在登錄界面上填寫任意的用戶名和用戶密碼(中文或英文);系統(tǒng)提供登錄過(guò)程中的出錯(cuò)處理機(jī)制和操作成功處理機(jī)制。
2)系統(tǒng)對(duì)非法用戶具有警告功能,例:一用戶表中不存在的用戶企圖登錄系統(tǒng),系統(tǒng)應(yīng)該要求用戶輸入合法用戶名和用戶密碼,并警告用戶的操作。
5.2系統(tǒng)的詳細(xì)調(diào)查
我選擇做《員工信息管理系統(tǒng)》的目標(biāo)是:應(yīng)用于某企業(yè)進(jìn)行員工信息管理,使其擁有一個(gè)可操作的業(yè)務(wù)平臺(tái),提高員工管理水平,挖掘潛在資源(如客戶資源,降低費(fèi)用,節(jié)約成本等)。當(dāng)然,如果稍加改動(dòng),也許還會(huì)適合其他行業(yè)使用。
具體為:
1、要用戶界面要友好,使用方便,容錯(cuò)能力強(qiáng),適應(yīng)各種水平的用戶。
2、系統(tǒng)安全性要高,需要有密碼保護(hù)
3、能大量減少不必要的資源,善用現(xiàn)有資源來(lái)開(kāi)發(fā)。
5.3系統(tǒng)邏輯模型的提出
為了實(shí)現(xiàn)管理信息系統(tǒng)的計(jì)算機(jī)化,僅僅用文字來(lái)描述信息的流動(dòng)和存儲(chǔ)還遠(yuǎn)遠(yuǎn)不夠,還要進(jìn)一步調(diào)查分析舍去物質(zhì)流,抽象出信息流,繪制出數(shù)據(jù)流程圖,并對(duì)各種數(shù)據(jù)的屬性和各項(xiàng)處理功能進(jìn)行詳細(xì)分析。系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型。本系統(tǒng)主要是以數(shù)據(jù)流圖、數(shù)據(jù)字典和E-R圖為主要描述工具來(lái)勾畫系統(tǒng)的概貌。
數(shù)據(jù)流圖(DFD,dataflowdiagram)是描述數(shù)據(jù)處理過(guò)程的有力工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。
數(shù)據(jù)流圖的基本圖形元素有4種:
為了使數(shù)據(jù)流圖便于在計(jì)算機(jī)上輸入和輸出,免去畫曲線、斜線和圓的因難,現(xiàn)在將會(huì)用另一種比較合理及更清晰的方法進(jìn)行分析。
5.3.1數(shù)據(jù)詞典
數(shù)據(jù)詞典(DataDictionary,DD)是結(jié)構(gòu)化分析方法的另一個(gè)工具,它與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求。數(shù)據(jù)流圖給出系統(tǒng)組成及其內(nèi)部各元素相互間的關(guān)系,但未說(shuō)明數(shù)據(jù)元素的具體含意。數(shù)據(jù)詞典的任務(wù)是對(duì)于數(shù)據(jù)流圖中出現(xiàn)的所有命名元素,包括數(shù)據(jù)流、加工、數(shù)據(jù)文件,以及數(shù)據(jù)的源、匯點(diǎn)等,在數(shù)據(jù)詞典中作為一個(gè)詞條加以定義,使得每一個(gè)圖形元素的名字都有一個(gè)確切的解釋。
首先說(shuō)明各符號(hào)的代表的意義:
⊿=被定義為;
⊿+與;(如,x=a+b,表示x由a和b組成)
⊿[...|...]或;(如,x=[a,b],x=[a|b],表示x由a或由b組成)
⊿{...}重復(fù);(如,x={a},表示x由0個(gè)或多個(gè)a組成)
如列舉用戶登錄模塊的定義如下:
用戶登錄模塊
◎用戶登錄的定義格式:
用戶名=[{字母},{數(shù)字}]
用戶=管理員
密碼=[{字母},{數(shù)字}]
用戶驗(yàn)證表=用戶名+密碼
另一種方式是以E-R圖來(lái)描述數(shù)據(jù)之間的關(guān)聯(lián).
如系統(tǒng)用戶表的E-R圖如下:
系統(tǒng)用戶表E-R圖
第六章系統(tǒng)的設(shè)計(jì)
6.1系統(tǒng)流程圖
6.2數(shù)據(jù)庫(kù)的設(shè)計(jì)
通過(guò)對(duì)該系統(tǒng)的研究,將系統(tǒng)數(shù)據(jù)Employeemanage分為以下幾個(gè)表.DepartList,Edulevel,Employees,JobList,LeavelList,LeavelStatus,LeavelType,MarrageStatus,OperatorList,Plitics,TitalList等幾個(gè)表.各表的具體設(shè)計(jì)結(jié)構(gòu)如下:
DepartList表
Edulevel表:
Employees表:
JobList表:
LeavelList表:
LeavelStatus表
LeavelType表:
MarrageStatus表:
OperatorList表
Plitics表
TitalList表
6.3系統(tǒng)主界面的設(shè)計(jì)
其系統(tǒng)主界面設(shè)計(jì)運(yùn)行效果圖如下:
6.4登錄窗體的設(shè)計(jì)
其運(yùn)行效果圖如下:
其具體的設(shè)計(jì)如下:
新建一個(gè)窗體.在窗體上放上二個(gè)label控件,一個(gè)TextBox控件,一個(gè)Combo1控件,二個(gè)CommandButton控件.其屬性的設(shè)置比較簡(jiǎn)單,請(qǐng)參照上面的窗體中的文字顯視.我們具體分析一下確定按鈕的源碼,如下:
PrivateSubcmdOK_Click()
DimstrSqlAsString
strSql="Oper_ID="&"''''"&dcmbOperName.BoundText&"''''"
IfNot(rctOperatorList.EOFAndrctOperatorList.BOF)Then
rctOperatorList.Find(strSql)
IfNot(rctOperatorList.EOFOrrctOperatorList.BOF)Then
IfTrim(rctOperatorList.Fields("Oper_Pass"))=Trim(txtOperPass.Text)Then
OperaterName=Trim(dcmbOperName.Text)''''記錄當(dāng)前用戶
frmMain.Show''''顯示主窗體
UnloadMe
ExitSub
Else
logintestCount=logintestCount+1
IflogintestCount>=3Then
MsgBox"您已經(jīng)登錄三次都失敗,系統(tǒng)關(guān)閉",vbInformation+vbOKOnly,"非法用戶"
UnloadMe
ExitSub
Else
txtOperPass.SetFocus
EndIf
EndIf
Else
logintestCount=logintestCount+1
IflogintestCount>=3Then
MsgBox"您已經(jīng)登錄三次都失敗,系統(tǒng)關(guān)閉",vbInformation+vbOKOnly,"非法用戶"
UnloadMe
ExitSub
Else
txtOperPass.SetFocus
EndIf
EndIf
Else
MsgBox"數(shù)據(jù)庫(kù)中沒(méi)有操作用戶數(shù)據(jù)",vbCritical+vbOKOnly,"系統(tǒng)錯(cuò)誤"
UnloadMe
ExitSub
EndIf
EndSub
6.5各主要模塊的設(shè)計(jì)
基礎(chǔ)設(shè)置模塊的設(shè)計(jì)
1.基礎(chǔ)單元設(shè)置
其窗體的命令按鈕源碼實(shí)現(xiàn)如下:
增加按鈕的源碼:
PrivateSubtblTitel_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"add"
flexTitel.Row=flexTitel.Rows-1''''移到最后一行
flexTitel.Col=0''''稱到最后一行的第一列
flexTitel.RowSel=flexTitel.Rows-1''''選定一行
flexTitel.ColSel=flexTitel.Cols-1''''選定所有列
IfflexTitel.Rows>7Then
flexTitel.TopRow=flexTitel.Rows-7
EndIf
tblTitel.Buttons("delete").Enabled=False
tblTitel.Buttons("add").Enabled=False
rctTitelList.AddNew
flexTitel.Enabled=False
txtTitelId.SetFocus
保存按鈕的源碼如下:
PrivateSubIniGrid(ByValflexGridAsMSHFlexGrid)
flexGrid.Clear
WithflexGrid
.Cols=3
.Rows=2
.FixedCols=0
.FixedRows=1
.SelectionMode=flexSelectionByRow
.TextMatrix(0,1)="編號(hào)"
SelectCase.Name
Case"flexDepart"
.TextMatrix(0,2)="部門名稱"
Case"flexEdu"
.TextMatrix(0,2)="學(xué)歷名稱"
Case"flexJob"
.TextMatrix(0,2)="職務(wù)名稱"
Case"flexTitel"
.TextMatrix(0,2)="職稱名稱"
Case"flexPli"
.TextMatrix(0,2)="政治面貌"
Case"flexLt"
.TextMatrix(0,2)="請(qǐng)假類型"
Case"flexLs"
.TextMatrix(0,2)="銷假標(biāo)志"
Case"flexMs"
.TextMatrix(0,2)="婚姻狀況"
EndSelect
.ScrollBars=flexScrollBarVertical
.GridLines=flexGridNone
.GridLinesFixed=flexGridNone
''''.AllowBigSelection=True
.AllowUserResizing=flexResizeNone.ColWidth(0)=1
.ColWidth(1)=1000
.ColWidth(2)=5410
.ColAlignment(1)=3
.ColAlignment(2)=0
.ColAlignmentFixed(1)=3
.FillStyle=flexFillSingle
.ScrollTrack=True
.Row=1
.Col=0
.RowSel=1
.ColSel=.Cols-1EndWith
EndSub
PrivateSubshowdata(ByValRecordsetAsADODB.Recordset,ByValflexGridAsMSHFlexGrid)
DimiAsInteger
DimjAsInteger
IfRecordset.RecordCount>0Then
Recordset.MoveFirst
WithflexGrid.Row=1
WhileNotRecordset.EOF
.Rows=.Rows+1
Fori=1ToRecordset.Fields.Count
.Col=i
If(.RowMod2)=0Then
.CellBackColor=&HF4D3A6
Else
.CellBackColor=vbWhite
EndIf
.Text=Recordset.Fields(i-1)Nexti
.Row=.Row+1
Recordset.MoveNext
Wend
''''.Col=1.Row=1
.Col=0
.RowSel=1
.ColSel=.Cols-1
''''.Row=1EndWith
EndIf
EndSub
PrivateSubIniGridstyle()
EndSub
PrivateSubGetRecordIdName(ByValflexAsMSHFlexGrid,lngRecordIdAsVariant,strRecordNameAsString)
Ifflex.Row<>0Then
Ifflex.TextMatrix(flex.Row,1)<>EmptyThen
lngRecordId=flex.TextMatrix(flex.Row,1)
strRecordName=flex.TextMatrix(flex.Row,2)
Else
lngRecordId=-1
strRecordName=Empty
EndIf
EndIf
EndSub
PrivateSubPicture1_Click()
EndSub
PrivateFunctionSavetoRecords(ByValrctSaveAsADODB.Recordset,ByValfirstField_valueAsVariant,ByValsecondField_valueAsString)AsBoolean
OnErrorGoToSave_Error
rctSave.Fields(0).Value=firstField_value
rctSave.Fields(1).Value=secondField_value
rctSave.Update
SavetoRecords=True
ExitFunction
Save_Error:
IfErr.Number<>0Then
rctSave.CancelUpdate
SavetoRecords=False
MsgBox"錯(cuò)誤代碼:"&Err.Number&vbCrLf&_
"錯(cuò)誤描述:"&Err.Description,vbCritical+vbOKOnly,"保存記錄失敗"
Else
SavetoRecords=True
EndIf
EndFunction
刪除按鈕的代碼描述:
PublicFunctionRecordDelete(ByValrstDeleteAsADODB.Recordset,ByValstrOptionAsLong)AsBoolean
If(rstDelete.EOF=True)Or(rstDelete.BOF=True)Then
RecordDelete=False
ExitFunction
EndIf
OnErrorGoToDelete_error
rstDelete.DeletestrOption
rstDelete.Update
RecordDelete=True
rstDelete.Update
Delete_error:
IfErr.Number<>0Then
rstDelete.CancelUpdate
RecordDelete=False
MsgBox"錯(cuò)誤代碼:"&Err.Number&vbCrLf&_
"錯(cuò)誤描述:"&Err.Description,vbCritical+vbOKOnly,"刪除錯(cuò)誤"
Else
RecordDelete=True
rstDelete.Update
EndIf
EndFunction
操作員管理窗體運(yùn)行如下:
其工具欄銨鈕的設(shè)計(jì)參考基礎(chǔ)單元設(shè)置
6.5.2員工管理模塊的設(shè)計(jì)
其員工管理窗體的運(yùn)行界面如下:
增加記錄源碼分析如下:
PrivateSubtblEmployees_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"add"
''''rctEmployees.AddNew
IfflexEmployees.Rows>2Then
flexEmployees.Row=flexEmployees.Rows-1
flexEmployees.Col=0
flexEmployees.RowSel=flexEmployees.Rows-1
flexEmployees.ColSel=flexEmployees.Cols-1
IfflexEmployees.Rows>15Then
flexEmployees.TopRow=flexEmployees.Rows-15
EndIf
EndIf
frmEmpAdd.Caption="新增記錄"
frmEmpAdd.cmdPrevious.Visible=False
frmEmpAdd.cmdNext.Visible=False
frmEmpAdd.cmdAdd.Visible=False
frmEmpAdd.ShowvbModal
Case"delete"
IfstrEmpFirstFieldValue<>EmptyThen
IfMsgBox("您確定要?jiǎng)h除此條記錄嗎?",vbQuestion+vbYesNo,"刪除記錄")=vbYesThen
IffrmUnit.RecordDelete(rctEmployees,adAffectCurrent)=TrueThen
frmEmployees.flexEmployees.Redraw=False
CallIniGrid(flexEmployees)
Callshowdata(rctEmployees,flexEmployees)
frmEmployees.flexEmployees.Redraw=True
EndIf
EndIf
EndIf
Case"modify"
IfstrEmpFirstFieldValue<>EmptyThen
frmEmpAdd.Caption="修改記錄"
CallfrmEmpAdd.IniFromAdd(rctEmployees)
frmEmpAdd.cmdAdd.Visible=False
frmEmpAdd.cmdCancel.Visible=False
frmEmpAdd.ShowvbModal
EndIf
Case"exit"
UnloadMe
EndSelect
EndSub
打印按鈕的源碼如下:
PrivateSubtlbPrint_ButtonClick(ByValButtonAsMSComctlLib.Button)
IfExcuteSql(rctQueryEmployeesWithID,"select*fromQueryEmployeesWithID")=TrueThen
rctQueryEmployeesWithID.Filter=rctEmployees.Filter
SetdrptEmployees.DataSource=rctQueryEmployeesWithID
EndIf
IfrctQueryEmployeesWithID.RecordCount<=0Then
MsgBox"沒(méi)有合適的記錄",vbInformation+vbOKOnly,"打印信息"
ExitSub
EndIf
SelectCaseButton.Key
Case"Preview"
drptEmployees.ShowvbModal
Case"print"
OnErrorGoToError_on_print
drptEmployees.PrintReportFalse''''不顯示窗口
ExitSub
Error_on_print:
MsgBox"錯(cuò)誤代碼:"&Err.Number&_
"錯(cuò)誤描述:"&Err.Description,vbCritical+vbOKOnly,"打印錯(cuò)誤"
EndSelect
EndSub
員工查詢窗運(yùn)行如下:
其中查詢按鈕的源碼分析如下:
PrivateSubcmdOK_Click()
SelectCasestbQuery.Tab
Case0
IfcmbQueryItem.ListIndex<>3And_
cmbQueryItem.ListIndex<>4And_
cmbQueryItem.ListIndex<>5And_
cmbQueryItem.ListIndex<>6And_
cmbQueryItem.ListIndex<>7Then
IfTrim(txtQueryValue.Text)=EmptyThen
MsgBox"查詢內(nèi)容不能為空",vbInformation+vbOKOnly,"查詢數(shù)據(jù)"
ExitSub
Else
FieldValue=Trim(txtQueryValue.Text)
IfcmbQueryItem.ListIndex=2Then
IfTrim(txtQueryValue.Text)="男"Then
FieldValue=1
Else
IfTrim(txtQueryValue.Text)="女"Then
FieldValue=0
Else
MsgBox"輸入錯(cuò)誤!",vbCritical+vbOKOnly,"查詢數(shù)據(jù)"
ExitSub
EndIf
EndIf
strFilter=FieldName&"="&FieldValue
Else
IfchkLike.Value=1ThenstrFilter=FieldName&"like"&"''''"&"%"&FieldValue&"%"&"''''"
Else
strFilter=FieldName&"="&"''''"&FieldValue&"''''"
EndIf
EndIf
EndIf''''endifTrim(txtQueryValue.Text)=Empty
Else
FieldValue=dcmbItemValue.BoundText
IfcmbQueryItem.ListIndex=7Then
strFilter=FieldName&"="&FieldValue
Else
strFilter=FieldName&"="&"''''"&FieldValue&"''''"
EndIf
EndIf
Case1
Operater=Combo1.List(Combo1.ListIndex)
strFilter=FieldName&""&Operater&""&"''''"&dtpDateValue.Value&"''''"
EndSelect
''''MsgBoxstrFilter
rctEmployees.Filter=strFilter
frmEmployees.flexEmployees.Redraw=False
CallfrmEmployees.IniGrid(frmEmployees.flexEmployees)
CallfrmEmployees.showdata(rctEmployees,frmEmployees.flexEmployees)
frmEmployees.flexEmployees.Redraw=True
EndSub
6.5.3請(qǐng)假管理模塊的設(shè)計(jì)
其中請(qǐng)假管理中的修改記錄窗體運(yùn)行如下:
其中保存按鈕的源碼如下:
PrivateSubcmdSave_Click()
DimEmp_IDAsVariant
DimEmp_NameAsVariant
DimEmp_SexAsVariant
DimDepart_IDAsVariant
DimJob_IDAsVariant
DimTitel_IDAsVariant
DimE_IDAsVariant
DimP_IDAsVariant
DimMS_IDAsVariant
DimEmp_ID_cordAsVariant
DimEmp_birthdayAsVariant
DimEmp_Attend_timeAsVariant
DimEmp_Join_timeAsVariant
DimEmp_mobile_numAsVariant
DimEmp_Tel_numAsVariant
DimEmp_AddressAsVariant
DimEmp_MemoAsVariant
DimEmp_name_charAsVariant
DimvtempdataAsString
IftxtEmpID.Text=EmptyThen
MsgBox"工作證號(hào)不能為空!",vbInformation,"數(shù)據(jù)不完整"
txtEmpID.SetFocus
ExitSub
Else
IftxtEmpName.Text=EmptyThen
MsgBox"員工姓名不能為空!",vbInformation,"數(shù)據(jù)不完整"
txtEmpName.SetFocus
ExitSub
Else
IfLeft(mskEmpBirth.Text,1)<>""Then
IfInStr(mskEmpBirth.Text,"")>0Then
MsgBox"日期格式填寫不完整!",vbInformation,"數(shù)據(jù)不完整"
mskEmpBirth.SetFocus
ExitSub
Else
Emp_birthday=CDate(mskEmpBirth.Text)
EndIf
EndIf
IfLeft(mskEmpAttendTime.Text,1)<>""Then
IfInStr(mskEmpAttendTime.Text,"")>0Then
MsgBox"日期格式填寫不完整!",vbInformation,"數(shù)據(jù)不完整"
mskEmpAttendTime.SetFocus
ExitSub
Else
IfLeft(mskEmpBirth.Text,1)<>""Then
IfCDate(mskEmpAttendTime.Text)<=CDate(mskEmpBirth.Text)Then
MsgBox"員工參加工作日期不能小于或等于員工的出生日期",vbInformation,"輸入日期錯(cuò)誤"
mskEmpAttendTime.SetFocus
ExitSub
Else
Emp_Attend_time=CDate(mskEmpBirth.Text)
EndIf
EndIf
EndIf
EndIf
IfLeft(mskJOinTime.Text,1)<>""Then
IfInStr(mskJOinTime.Text,"")>0Then
MsgBox"日期格式填寫不完整!",vbInformation,"數(shù)據(jù)不完整"
mskJOinTime.SetFocus
ExitSub
Else
IfLeft(mskEmpBirth.Text,1)<>""Then
IfCDate(mskJOinTime.Text)<=CDate(mskEmpBirth.Text)Then
MsgBox"員工加入本單位日期不能小于或等于員工的出生日期",vbInformation,"輸入日期錯(cuò)誤"
mskJOinTime.SetFocus
ExitSub
EndIf
EndIf
IfLeft(mskEmpAttendTime.Text,1)<>""Then
IfCDate(mskJOinTime.Text)<CDate(mskEmpAttendTime.Text)Then
MsgBox"員工加入本單位日期不能小于員工的參加工作日期",vbInformation,"輸入日期錯(cuò)誤"
mskJOinTime.SetFocus
ExitSub
EndIf
EndIf
Emp_Join_time=CDate(mskJOinTime.Text)
EndIf
EndIf
EndIf
EndIf
IftxtEmpChr.Text=EmptyThen
MsgBox"員工字首拼音十分重要,不能為空!",vbInformation,"數(shù)據(jù)不完整"
txtEmpChr.SetFocus
ExitSub
EndIf
IftxtEmp_ID_cord.Text<>EmptyAndLen(txtEmp_ID_cord.Text)<15Then
MsgBox"身份證號(hào)必須是大于或等于15位,小于18位!",vbInformation,"無(wú)效的身份證號(hào)"
txtEmp_ID_cord.SetFocus
ExitSub
EndIf
Emp_ID=Trim(txtEmpID.Text)
Emp_Name=Trim(txtEmpName.Text)
Emp_Sex=cmbEmpSex.ListIndex
IfTrim(txtEmp_ID_cord.Text)<>EmptyThen
Emp_ID_cord=Trim(txtEmp_ID_cord.Text)
EndIf
IfTrim(txtEmpMobil.Text)<>EmptyThen
Emp_mobile_num=Trim(txtEmpMobil.Text)
EndIf
IfTrim(txtEmpTel.Text)<>EmptyThen
Emp_Tel_num=Trim(txtEmpTel.Text)
EndIf
IfTrim(txtEmpAddr.Text)<>EmptyThen
Emp_Address=Trim(txtEmpAddr.Text)
EndIf
IfTrim(txtEmpMemo.Text)<>EmptyThen
Emp_Memo=Trim(txtEmpMemo.Text)
EndIf
Emp_name_char=Trim(txtEmpChr.Text)
IfTrim(cmbDepartID.Text)<>EmptyThen
vtempdata=Trim(cmbDepartID.Text)
Depart_ID=frmEmployees.RecordSetFindItem(rctDepartList,"Depart_Name",vtempdata,0)
EndIf
IfTrim(cmbEmpMs.Text)<>EmptyThen
vtempdata=Trim(cmbEmpMs.Text)
MS_ID=frmEmployees.RecordSetFindItem(rctMarriageStatus,"MS_Name",vtempdata,0)
EndIf
IfTrim(cmbEmpPs.Text)<>EmptyThen
vtempdata=Trim(cmbEmpPs.Text)
P_ID=Trim(frmEmployees.RecordSetFindItem(rctPlitics,"P_Name",vtempdata,0))
EndIf
IfTrim(cmbEmpEdu.Text)<>EmptyThen
vtempdata=Trim(cmbEmpEdu.Text)
E_ID=Trim(frmEmployees.RecordSetFindItem(rctEdulevel,"E_Name",vtempdata,0))
EndIf
IfTrim(cmbEmpJob.Text)<>EmptyThen
vtempdata=Trim(cmbEmpJob.Text)
Job_ID=Trim(frmEmployees.RecordSetFindItem(rctJobList,"Job_Name",vtempdata,0))
EndIf
IfTrim(cmbEmpTitel.Text)<>EmptyThen
vtempdata=Trim(cmbEmpTitel.Text)
Titel_ID=Trim(frmEmployees.RecordSetFindItem(rctTitelList,"Titel_Name",vtempdata,0))
EndIf
''''下面是寫入數(shù)據(jù)庫(kù)
''''MsgBox"noerror"
IffrmEmpAdd.Caption="新增記錄"Then
rctEmployees.AddNew
EndIf
IfSaveEmployeesRecords(rctEmployees,Emp_ID,Emp_Name,Emp_Sex,Depart_ID,Job_ID,Titel_ID,E_ID,P_ID,MS_ID,Emp_ID_cord,Emp_birthday,Emp_Attend_time,Emp_Join_time,Emp_mobile_num,Emp_Tel_num,Emp_Address,Emp_Memo,Emp_name_char)=TrueThen
IffrmEmpAdd.Caption="新增記錄"Then
CallfrmEmpAddClear
EndIf
''''frmEmployees.flexEmployees.Redraw=False
''''CallfrmEmployees.IniGrid(frmEmployees.flexEmployees)
''''CallfrmEmployees.showdata(rctEmployees,frmEmployees.flexEmployees)
''''frmEmployees.flexEmployees.Redraw=True
MsgBox"保存記錄成功",vbInformation,"保存記錄"
EndIf
EndSub
請(qǐng)假查詢窗體運(yùn)行如下:
窗體源碼如下:
PrivateSubmnuLeavelQuery_Click()
frmLeavel.tblEmployees.Buttons("add").Visible=False
frmLeavel.tblEmployees.Buttons("delete").Visible=False
frmLeavel.tblEmployees.Buttons("modify").Visible=False
frmLeavel.tlbPrint.Left=30
frmLeavel.tlbExit.Left=frmLeavel.tlbPrint.Width
frmLeavel.Caption="請(qǐng)假查詢"
frmLeavel.ShowvbModal,Me
EndSub
6.5.4幫助管理模塊的設(shè)計(jì)
該模塊不涉及到代碼的編寫故不作描述
第七章主菜單的設(shè)計(jì)與系統(tǒng)的編譯發(fā)行
1系統(tǒng)主菜單的設(shè)計(jì)
在實(shí)際的系統(tǒng)設(shè)計(jì)中,菜單可分為兩種類型,即下拉式菜單和彈出式菜單,下拉式菜單系統(tǒng)中,一般有一個(gè)主菜單,其中包括若干個(gè)選擇項(xiàng).主菜單單的每一項(xiàng)又可下拉出下一級(jí)子菜單.這樣用一個(gè)個(gè)的窗口的形式彈出在屏幕上,它是通過(guò)菜單編輯器建立,其步驟如下:
1)選取要建立菜單的窗體
2)從“工具”菜單中,選取“菜單編輯器”建立如下圖所示的系統(tǒng)主菜單:
可以看出菜單系統(tǒng)的建立比較直觀,因此不作重點(diǎn)描述
一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用程序由數(shù)據(jù)結(jié)構(gòu),操作界面,查詢選項(xiàng)和報(bào)表打印等組成。在設(shè)計(jì)應(yīng)用程序時(shí),應(yīng)仔細(xì)考慮每個(gè)組件提供的功能以及與其他組件之間的關(guān)系。設(shè)計(jì)好的功能模塊制作完畢后,單擊全編譯執(zhí)行在確認(rèn)無(wú)誤后,單擊文件菜單下的生成工程得到一個(gè).EXE的可執(zhí)行程序.到此一個(gè)完整的系統(tǒng)設(shè)計(jì)完成.
結(jié)論
在剛剛開(kāi)始學(xué)習(xí)數(shù)據(jù)庫(kù)的時(shí)候,對(duì)很多細(xì)節(jié)很沒(méi)有概念。特別是對(duì)窗體的作用還有過(guò)程的概念的掌握,理解不準(zhǔn)確。通過(guò)老師的幫助才慢慢的有了一點(diǎn)體會(huì)。對(duì)書(shū)本的學(xué)習(xí)完成以后,開(kāi)始著手對(duì)數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)始制作,開(kāi)始對(duì)系統(tǒng)的需求分析不足,造成多次重做。在對(duì)表單的制作過(guò)程中,對(duì)窗體的尺寸的把握,對(duì)各個(gè)控件尺寸的把握是比較困難的,各個(gè)控件在表單中的布局也非常重要。在本系統(tǒng)中,程序主界面和登陸界面的制作是比較困難的。表單制作完成后就是對(duì)控件編程,其中要注意程序編寫時(shí)的細(xì)節(jié),格式,命令的拼寫,運(yùn)用的合理性等等都要進(jìn)行分析。
總的來(lái)說(shuō),做完一個(gè)數(shù)據(jù)庫(kù)的收獲不僅僅是技術(shù)上的,對(duì)事情的宏觀的控制有了更深的看法。
致謝
感謝老師在設(shè)計(jì)中的指導(dǎo)和關(guān)懷,并且感謝所有同學(xué)對(duì)我的支持。
參考文獻(xiàn)
參考文獻(xiàn):
1、馬力VisualBasic6.0簡(jiǎn)明教程機(jī)械工業(yè)出版社2001年8月
2、劉韜駱娟何旭洪VisualBasic6.0數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航人民郵電出版社2004.4月
3、程序員雜志2002年合訂本電子工業(yè)出版社
4、王小平,曹立明.遺傳算法-理論、應(yīng)用與軟件實(shí)現(xiàn).西安:西安交通大學(xué)出版社,
畢業(yè)答辯總結(jié) 畢業(yè)鑒定 畢業(yè) 畢業(yè)實(shí)踐論文 畢業(yè)設(shè)計(jì) 畢業(yè)格式 畢業(yè)設(shè)計(jì)答辯 畢業(yè)論文設(shè)計(jì) 畢業(yè)思想總結(jié) 畢業(yè)五年計(jì)劃 紀(jì)律教育問(wèn)題 新時(shí)代教育價(jià)值觀