在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

畢業(yè)員工信息管理

前言:本站為你精心整理了畢業(yè)員工信息管理范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

畢業(yè)員工信息管理

摘要

本文通過(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é)出版社,

上蔡县| 革吉县| 鱼台县| 青神县| 双流县| 正定县| 芮城县| 武城县| 威远县| 临潭县| 共和县| 高清| 和平区| 林口县| 德兴市| 淅川县| 南城县| 广汉市| 九龙坡区| 通海县| 剑河县| 新化县| 疏勒县| 建平县| 珠海市| 平和县| 禹州市| 新邵县| 永德县| 济宁市| 新建县| 射阳县| 双江| 阳泉市| 平顶山市| 增城市| 瓦房店市| 镇远县| 阿拉尔市| 正宁县| 阜新市|