vbac科研項(xiàng)目管理系統(tǒng)_第1頁(yè)
vbac科研項(xiàng)目管理系統(tǒng)_第2頁(yè)
vbac科研項(xiàng)目管理系統(tǒng)_第3頁(yè)
vbac科研項(xiàng)目管理系統(tǒng)_第4頁(yè)
vbac科研項(xiàng)目管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、交通大學(xué) CIM 所科研項(xiàng)目管理系統(tǒng)開(kāi)發(fā)摘要本設(shè)計(jì)按照管理信息系統(tǒng)的開(kāi)發(fā)方法,通過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施等一系列開(kāi)發(fā)過(guò)程,以交通大學(xué)計(jì)算機(jī)集成制造為應(yīng)用背景,開(kāi)發(fā)一個(gè)有實(shí)用價(jià)值的科研項(xiàng)目管理系統(tǒng),實(shí)現(xiàn)對(duì)科研項(xiàng)目和的科技的計(jì)算機(jī)管理,以提高項(xiàng)目及管理的水平,提供及時(shí)、準(zhǔn)確的信息服務(wù)并減輕管理制作報(bào)表、統(tǒng)計(jì)分析的負(fù)擔(dān),從而擺脫該長(zhǎng)期以來(lái)通過(guò)人工對(duì)科研項(xiàng)目及的面貌。該系統(tǒng)能對(duì)科研項(xiàng)目及科技實(shí)現(xiàn)較全面的管理,提供數(shù)據(jù)錄入、多條件查詢、統(tǒng)計(jì)、報(bào)表輸出等日常管理所必需的功能,并在系統(tǒng)的易使用性上作了較大的努力。該系統(tǒng)是一個(gè)基于客戶機(jī)/服務(wù)器的系統(tǒng),可以在多個(gè)客戶機(jī)上同時(shí)運(yùn)行。采用 Visual Ba

2、sic 6.0 作為系統(tǒng)的開(kāi)發(fā)語(yǔ)言,運(yùn)行的環(huán)境為Windows NT 4.0 操作系統(tǒng),的數(shù)據(jù)庫(kù)管理系統(tǒng)選用Acs 2000。目錄第一章 緒 論4第二章 系統(tǒng)分析2.1 概述62.2 現(xiàn)存及目標(biāo)62.3 需求分析2.3.1 信息需求72.3.2 功能需求8第三章 系統(tǒng)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)設(shè)計(jì)3.1.1數(shù)據(jù)庫(kù)概念設(shè)計(jì)103.1.2數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)103.1.3數(shù)據(jù)庫(kù)物理設(shè)計(jì)3.1.3.1數(shù)據(jù)庫(kù)選型.123.1.3.2數(shù)據(jù)庫(kù)結(jié)構(gòu)定義.133.1.3.3完整性規(guī)則.163.1.3.4索引.163.1.3.5安全性考慮.163.1.3.6磁盤空間分配.173.2選型3.2.1 選型的原則173.2.2 開(kāi)發(fā)

3、選擇173.3系統(tǒng)總體結(jié)構(gòu)183.4數(shù)據(jù)庫(kù)接口設(shè)計(jì)173.4.1數(shù)據(jù)接口選擇213.4.2具體實(shí)現(xiàn)213.5初始化模塊設(shè)計(jì)223.6主界面設(shè)計(jì)223.7錄入模塊設(shè)計(jì)233.8查詢模塊設(shè)計(jì)253.9設(shè)置模塊設(shè)計(jì)303.10 幫助模塊設(shè)計(jì)31第四章測(cè)試分析4.1測(cè)試的目的324.2功能的驗(yàn)證334.3結(jié)論33第五章項(xiàng)目開(kāi)發(fā)總結(jié)34致謝36參考文獻(xiàn)36第一章 緒論交通大學(xué)計(jì)算機(jī)集成制造(以下簡(jiǎn)稱 CIM 所)每年都承接了大量的科研項(xiàng)目及為數(shù)眾多的科技,對(duì)這些成果進(jìn)行統(tǒng)計(jì)所得到的信息在該的管理中具有重要的意義;首先,它反映了 CIM 所的學(xué)術(shù)水平和成就,是對(duì)該所進(jìn)行各種評(píng)估時(shí)的主要參考依據(jù);第二,通過(guò)

4、這些統(tǒng)計(jì)結(jié)果,可以看出 CIM 所的發(fā)展趨勢(shì),從而為的發(fā)展決策提供重要的輔助信息;第三,它是某位研究的工作成就的主要途徑之一;最后,這些統(tǒng)計(jì)信息也是主管部門經(jīng)常要求上報(bào)的信息。顯然,需要有一套行之有效段來(lái)對(duì) CIM 所的科研項(xiàng)目及進(jìn)行管理。到目前為止,CIM 所的科研項(xiàng)目管理一直采用人工管理的方式,并無(wú)一套的管理規(guī)范,也沒(méi)有相應(yīng)的專職管理,只有當(dāng)上級(jí)部門要求統(tǒng)計(jì)項(xiàng)目或情況時(shí)才由有關(guān)查閱本所的各種相關(guān)文檔,人工進(jìn)行統(tǒng)計(jì)并制作報(bào)表。這種管理的弊端是顯而易見(jiàn)的。在現(xiàn)在這個(gè)計(jì)算機(jī)得到普遍應(yīng)用的時(shí)代,很多過(guò)去依靠人工進(jìn)行的管理都由計(jì)算機(jī)所取代。尤其在信息的、加工和上計(jì)算機(jī)能取得人所不能比擬的作用。通過(guò)計(jì)

5、算機(jī)進(jìn)行管理的主要方法是建立管理信息系統(tǒng)(Management Information System,MIS)。對(duì)管理信息系統(tǒng)有許多種解釋,按照管理信息系統(tǒng)的創(chuàng)始人明尼蘇達(dá)大學(xué)的 Gordon B.Davis 教授給出的定義,MIS 是一個(gè)利用計(jì)算機(jī)硬件和,手工作業(yè),分析、計(jì)劃、控制和決策模型,以及數(shù)據(jù)庫(kù)的用戶機(jī)器系統(tǒng)。它能提供信息,支持企業(yè)或組織的運(yùn)行、管理和決策功能。我國(guó)學(xué)者薛則將其定義為:管理信息系統(tǒng)是一個(gè)以人為主導(dǎo),利用計(jì)算機(jī)硬件、網(wǎng)絡(luò)通信設(shè)備以及其他辦公設(shè)備,進(jìn)行信息的收集、傳輸、加工、更新和,以企業(yè)競(jìng)優(yōu)、提高效率和效益為目的,支持企業(yè)決策、中層控制、基層的集成化的人機(jī)系統(tǒng)。盡管定義

6、不同,但總的說(shuō)來(lái),管理信息系統(tǒng)終究要起到一個(gè)提高管理效率、減輕管理負(fù)擔(dān)的作用。無(wú)論對(duì)于企業(yè)或其他組織,建立一個(gè)管理信息系統(tǒng)都是實(shí)現(xiàn)其先進(jìn)管理所必須的。有鑒于此,開(kāi)發(fā)一個(gè) CIM 所的科研項(xiàng)目和管理信息系統(tǒng)是很有必要的。它將有助于將管理從煩瑣的管理工作中解脫出來(lái),使管理系統(tǒng)化、條理化,能迅速獲得感的信息。管理信息系統(tǒng)是一個(gè)的系統(tǒng)或集成系統(tǒng),通常包括業(yè)務(wù)信息系統(tǒng)、知識(shí)工作系統(tǒng)、決策支持系統(tǒng)等。根據(jù)現(xiàn)有人力和時(shí)間限制條件以及項(xiàng)目和管理的特點(diǎn),不可能也沒(méi)有必要建立一個(gè)完整的、具有所有功能的管理信息系統(tǒng)。選擇開(kāi)發(fā)一個(gè)相對(duì)較小的實(shí)用的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)(Data Prosing System,DP

7、S)又稱為電子數(shù)據(jù)處理系統(tǒng)( Electronic Data Prosing System,EDPS ) 或業(yè)務(wù)處理系統(tǒng)( Tranion ProsingSystem,TPS),它屬于管理信息系統(tǒng)的范疇,但不是管理信息系統(tǒng)的全部。其主要特點(diǎn)是簡(jiǎn)單、精確和標(biāo)準(zhǔn)化。業(yè)務(wù)范圍主要是業(yè)務(wù)數(shù)據(jù)的登錄,數(shù)據(jù)的編輯,將數(shù)據(jù)信息以文件形式存入軟盤、磁帶或硬盤,通過(guò)存取這些數(shù)據(jù)信息打印出報(bào)表,主要的操作是排序、列表、更新、查詢等,主要使用的運(yùn)算是簡(jiǎn)單的加減乘除,其輸入一般是原始的單據(jù)或表單,輸出一般是分類或匯總的報(bào)表,主要使用的是運(yùn)行。這一類系統(tǒng)由于處理處于較低的管理層,因而問(wèn)題比較結(jié)構(gòu)化,即處理步驟較固定,系

8、統(tǒng)結(jié)構(gòu)相對(duì)比較簡(jiǎn)單,無(wú)須很復(fù)雜的實(shí)現(xiàn)技術(shù)。去年交通大學(xué)計(jì)算機(jī)集成已經(jīng)開(kāi)發(fā)了一個(gè)基于 SQL server 的科研項(xiàng)目管理系統(tǒng),今年所里想將該系統(tǒng)移植到 Acs 數(shù)據(jù)庫(kù)上。本設(shè)計(jì)的主要任務(wù)就是為交通大學(xué)計(jì)算機(jī)集成移植并升級(jí)更有實(shí)用價(jià)值的科研項(xiàng)目及管理系統(tǒng),以實(shí)現(xiàn) CIM 所的科研項(xiàng)目及管理計(jì)算機(jī)化,擺脫人工進(jìn)行管理的面貌。并作為一項(xiàng)畢業(yè)設(shè)計(jì)的成果。第二章 系統(tǒng)分析2.1概述管理信息系統(tǒng)通常是一個(gè)復(fù)雜的系統(tǒng),它既受環(huán)境的互相影響,又受外部環(huán)境的制約,需要考慮很多。系統(tǒng)分析首先應(yīng)對(duì)系統(tǒng)現(xiàn)狀進(jìn)行分析,提出新系統(tǒng)要達(dá)到的目標(biāo),然后確定用戶對(duì)目標(biāo)系統(tǒng)的要求,為設(shè)計(jì)提供基礎(chǔ)。其主要任務(wù)是將在系統(tǒng)詳細(xì)中所得的

9、文檔資料集中在一起,對(duì)組織整體管理狀況和信息處理過(guò)程進(jìn)行分析;目的是將用戶的需求確定下來(lái)。其中的需求分析是系統(tǒng)開(kāi)發(fā)工作中最重要的環(huán)節(jié)之一,是系統(tǒng)設(shè)計(jì)的依據(jù),需求分析已經(jīng)成為一門獨(dú)立的學(xué)科,稱為需求工程(Requirement Engineering,RE),即應(yīng)用已證實(shí)有效的技術(shù)、方法進(jìn)行需求分析,確定用戶需求,幫助開(kāi)發(fā)理解問(wèn)題并定義目標(biāo)系統(tǒng)的所有外部特征。系統(tǒng)分析一般還應(yīng)包括業(yè)務(wù)流程及數(shù)據(jù)流程分析等,但由于項(xiàng)目及管理來(lái)說(shuō),只是一個(gè)簡(jiǎn)單的歸檔及統(tǒng)計(jì)問(wèn)題,故可以省去。重點(diǎn)放在用戶的信息和功能需求上。由于目前對(duì) CIM 所的項(xiàng)目和進(jìn)行管理的主要是該所的,工作很繁忙,無(wú)法抽出過(guò)多時(shí)間進(jìn)行交流,所以采

10、取的需求分析方法主要采用首先對(duì) CIM 所過(guò)去產(chǎn)生的各種手工報(bào)表進(jìn)行分析,從用戶的角度提出需求的設(shè)想,然后再請(qǐng)所里修改。2.2現(xiàn)存及目標(biāo)經(jīng)過(guò)分析,得出目前采用人工管理存在如下主要問(wèn)題:(1)項(xiàng)目信息查詢、統(tǒng)計(jì)由于缺乏有效的規(guī)范,無(wú)法對(duì)本所的所有科研項(xiàng)目進(jìn)行管理,當(dāng)需要進(jìn)行統(tǒng)計(jì)工作或需要查詢某個(gè)項(xiàng)目的基本情況(如撥款情況或成果情況)時(shí)只能通過(guò)向該項(xiàng)目的詢問(wèn),造成極大的不便。特別是當(dāng)需要以某種條件進(jìn)行統(tǒng)計(jì)或查詢時(shí)(如統(tǒng)計(jì)本所所有 863 計(jì)劃項(xiàng)目或統(tǒng)計(jì)本所所有獲獎(jiǎng)項(xiàng)目等)尤其。(2)統(tǒng)計(jì)由于具有周期長(zhǎng)、分布廣泛的特點(diǎn),當(dāng)通知或雜志、期刊抵達(dá)時(shí),往往相關(guān)已經(jīng)遺忘甚至已經(jīng)離開(kāi),由于缺乏專職管理和一套行

11、之有效的管理規(guī)范,通知或雜志寄到時(shí)沒(méi)有及時(shí)歸檔,以至于當(dāng)需要進(jìn)行統(tǒng)計(jì)工作時(shí)不得不找,效率非常低,并且極易統(tǒng)計(jì)不完全或由于遺忘而造成數(shù)據(jù)不屬實(shí)的現(xiàn)象。(3)浪費(fèi)的時(shí)間和精力當(dāng)需要進(jìn)行統(tǒng)計(jì)工作,尤其是用于送交部門的報(bào)表,一般往往不熟悉情況或要求而不得不由所里主要來(lái)完成,浪費(fèi)了的大量時(shí)間和精力。根據(jù)上面的分析,提出以下開(kāi)發(fā)目標(biāo):(1)提高項(xiàng)目及管理的水平,提供及時(shí)、準(zhǔn)確的信息服務(wù);(2)提高信息檢索的效率,實(shí)現(xiàn)靈活的查詢,包括多條件查詢、模糊查詢等;(3)減輕管理制作報(bào)表、統(tǒng)計(jì)分析的負(fù)擔(dān);實(shí)用。系統(tǒng)規(guī)模不宜太大,但又要能保證支持日常工作的要求;系統(tǒng)應(yīng)易于修改和擴(kuò)充。2.3需求分析2.3.1 信息需求

12、(1)關(guān)于項(xiàng)目基本情況的信息項(xiàng)目:格式為 年份+序號(hào)項(xiàng)目名稱(中文、英文)12主要承擔(dān)人 1主要承擔(dān)人 2項(xiàng)目來(lái)源項(xiàng)目性質(zhì) 分為國(guó)家自然科學(xué)基金、863、部省科委及企業(yè)文件柜號(hào)四種情況科研代號(hào)電子文檔名開(kāi)始日期:格式為 年份+月份+日期結(jié)束日期:格式為 年份+月份+日期注:項(xiàng)目是一個(gè)七位字符串,其格式為 YYYY-#,其中 YYYY 為立項(xiàng)年份,#是兩位數(shù),表示該項(xiàng)目在某年中的立項(xiàng)順序。(2)關(guān)于項(xiàng)目財(cái)務(wù)情況的信息財(cái)務(wù)分類總經(jīng)費(fèi)(萬(wàn)元)第一(二六)次撥款數(shù)(萬(wàn)元)第一(二六)次撥款日期:格式為 年份+月份第一(二六)次免扣額(萬(wàn)元)撥款總額(計(jì)算項(xiàng))累計(jì)支出(萬(wàn)元)(3)項(xiàng)目成果情況驗(yàn)收日期:

13、格式為年份+月份+日年份+月份+日年份+月份+日鑒定日期:格式為獲獎(jiǎng)日期:格式為鑒定獲獎(jiǎng)名稱授獎(jiǎng)號(hào)(4)關(guān)于情況的信息名稱(中文、英文)日期:格式為 年份+月份期刊名稱作者(1-6)范圍 分為、國(guó)際、地方三種情況檢分為 EI、SCI、和一般四種情況檢索號(hào)學(xué)科門類來(lái)源(5)關(guān)于會(huì)議情況的信息2.3.2名稱(中文、英文)會(huì)議時(shí)間:格式為 年份+月份會(huì)議名稱入選集名稱作者(1-6)*范圍 分為、國(guó)際、地方三種情況學(xué)科門類來(lái)源會(huì)議地點(diǎn)功能需求(1)數(shù)據(jù)錄入 分別以項(xiàng)目、會(huì)議為錄入項(xiàng)目、及會(huì)議的全部數(shù)據(jù),對(duì)項(xiàng)目也可以分別以基本情況、財(cái)務(wù)情況或成果情況為錄入。錄入時(shí)應(yīng)包括對(duì)數(shù)據(jù)的正確性校驗(yàn)。數(shù)據(jù)查詢支持平

14、時(shí)對(duì)數(shù)據(jù)的修改,包括、刪除及更新。i 項(xiàng)目查詢以項(xiàng)目名稱、主要承擔(dān)人、項(xiàng)目性質(zhì)、開(kāi)始日期、財(cái)務(wù)為條件查詢項(xiàng)目的各種情況,對(duì)項(xiàng)目名稱支持模糊查詢。ii查詢以日期、來(lái)源、檢為條件查詢。iii 會(huì)議查詢以會(huì)議時(shí)間查詢。iiii 設(shè)備查詢以購(gòu)置設(shè)備日期、設(shè)備經(jīng)費(fèi)、分類為條件查詢。iiiii 支持自定義復(fù)雜條件查詢。查詢結(jié)果要求能以下列統(tǒng)計(jì)報(bào)表的形式打印輸出:項(xiàng)目總覽表項(xiàng)目經(jīng)費(fèi)情況表項(xiàng)目成果情況表統(tǒng)計(jì)表學(xué)術(shù)統(tǒng)計(jì)表(4)其他要求系統(tǒng)要有一定的安全保障,對(duì)于影響數(shù)據(jù)庫(kù)內(nèi)容的操作,例如錄入、刪除等,必須驗(yàn)證用戶。系統(tǒng)必須具有一定的靈活性,對(duì)代號(hào)設(shè)置的字段(例如項(xiàng)目性質(zhì)、檢等)必須能夠進(jìn)行動(dòng)態(tài)修改并自動(dòng)顯示在報(bào)

15、表中。應(yīng)有良好的易使用性,操作應(yīng)盡量簡(jiǎn)單,有聯(lián)機(jī)幫助對(duì)用戶進(jìn)行使用指導(dǎo)及在用戶輸入錯(cuò)誤、數(shù)據(jù)庫(kù)未連接、未準(zhǔn)備好等意外情況情況下提供詳細(xì)的幫助信息。第三章系統(tǒng)設(shè)計(jì)3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1.1 數(shù)據(jù)庫(kù)概念設(shè)計(jì)本系統(tǒng)結(jié)構(gòu)比較簡(jiǎn)單,只有三個(gè)相互獨(dú)立的實(shí)體:項(xiàng)目、和會(huì)議。其中項(xiàng)目用項(xiàng)目、和會(huì)議用名稱作為碼。3.1.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)該系統(tǒng)由三個(gè)基本關(guān)系組成,其模式結(jié)構(gòu)如下:(1)項(xiàng)目(序號(hào),項(xiàng)目,合同號(hào),1,2,主要承擔(dān)人 1,主要承擔(dān)人 2,項(xiàng)目來(lái)源,項(xiàng)目性質(zhì),開(kāi)始日期,結(jié)束日期,文件柜號(hào),電子文檔名,財(cái)務(wù),總經(jīng)費(fèi),貨幣類型,撥款數(shù)(1-4),撥款日期(1-4),免扣額(1-4),累計(jì)支出,驗(yàn)收日期,

16、鑒定日期,鑒定,獲獎(jiǎng)名稱,獲獎(jiǎng)名稱,授獎(jiǎng),號(hào))各字段的定義如下所示:名 稱類 型格 式其 他序號(hào)char(7)yyyy-#主鍵項(xiàng)目varchar(10)yy-mm項(xiàng)目名稱varchar(120)合同號(hào)varchar(12)1varchar(20)2varchar(20)主要承擔(dān)人 1varchar(20)主要承擔(dān)人 2varchar(20)項(xiàng)目來(lái)源varchar(30)項(xiàng)目性質(zhì)tiny缺省為 0開(kāi)始日期datetime結(jié)束日期datetime文件柜號(hào)tiny電子文檔名varchar(20)財(cái)務(wù)char(6)總經(jīng)費(fèi)smallmoney注:序號(hào)格式為 yyyy-#,其中 yyyy 為項(xiàng)目開(kāi)始的年份

17、,#為該項(xiàng)目在該年份中的次序。(2)(名稱,日期,期刊名稱,作者 1,作者 2,作者 3,作者 4,作者 5,作者 6,范圍,檢,檢索號(hào),卷期號(hào),學(xué)科門類,來(lái)源,)各字段的定義如下所示:(3)會(huì)議(名稱,會(huì)議時(shí)間,會(huì)議地點(diǎn),作者 1,作者 2,作者 3,作者 4,作者 5,作者 6,范圍,學(xué)科門類,來(lái)源)各字段的定義如下所示:名 稱類 型格 式其 他名稱varchar(120)主鍵日期daimeyyyy-mm期刊名稱varchar(100)作者(1-6)varchar(20)范圍tiny缺省為 0檢tiny缺省為 0檢索號(hào)varchar(30)卷期號(hào)varchar(30)學(xué)科門類varchar

18、(20)來(lái)源varchar(20)varchar(50)貨幣類型varchar(10)撥款數(shù)(1-4)smallmoney撥款日期(1-4)datetime免扣額(1-4)smallmoney累計(jì)支出smallmoney驗(yàn)收日期datetime鑒定日期datetime鑒定varchar(50)獲獎(jiǎng)名稱varchar(40)獲獎(jiǎng)日期datetime授獎(jiǎng)varchar(50)號(hào)varchar(50)(4)設(shè)備查詢(設(shè)備,設(shè)備名稱,分類,型號(hào),規(guī)格,分類號(hào),國(guó)標(biāo)代碼,代碼,購(gòu)置日期,已使用年限,賬面數(shù)量數(shù),清查數(shù)量數(shù),賬面金額數(shù),清查金額數(shù),使用狀況,備注)各字段的定義如下所示:3.1.3 數(shù)據(jù)庫(kù)物

19、理設(shè)計(jì)3.1.3.1 數(shù)據(jù)庫(kù)選型計(jì)算機(jī)集成制造科研項(xiàng)目管理系統(tǒng)是以計(jì)算機(jī)技術(shù)為,為用戶、處理各種有名 稱類 型格 式其 他設(shè)備varchar(8)主鍵設(shè)備名稱varchar(30)分類varchar(1)型號(hào)varchar(30)規(guī)格varchar(20)分類號(hào)varchar(6)國(guó)標(biāo)代碼varchar(3)代碼varchar(4)購(gòu)置日期daimeyyyy-mm已使用年限varchar(3)賬面數(shù)量數(shù)varchar(3)清查數(shù)量數(shù)varchar(3)賬面金額數(shù)varchar(10)清查金額數(shù)varchar(10)使用狀況varchar(10)備注varchar(20)名 稱類 型格 式其 他

20、名稱varchar(120)主鍵會(huì)議時(shí)間daimeyyyy-mm會(huì)議地點(diǎn)varchar(20)作者(1-6)varchar(20)范圍tiny缺省為 0學(xué)科門類varchar(20)來(lái)源varchar(20)效信息,完成各項(xiàng)管理活動(dòng)。根據(jù)應(yīng)用程序的要求,選擇本系統(tǒng)采用的數(shù)據(jù)庫(kù)管理系統(tǒng)要考慮到如下:(1)符合關(guān)系型的標(biāo)準(zhǔn): 網(wǎng)絡(luò)上運(yùn)行的數(shù)據(jù)庫(kù)必須是基于 Acs 標(biāo)準(zhǔn)的分布式關(guān)系數(shù)據(jù)庫(kù)。(2)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu) 數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)該是基于客戶/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫(kù),用戶的應(yīng)用程序運(yùn)行在不同的工作站上。(3)事務(wù)的完整性和恢復(fù): 數(shù)據(jù)庫(kù)服務(wù)器應(yīng)具有事務(wù)完整性機(jī)制,如日志文件、回退,并能從各種異常情況

21、下恢復(fù)數(shù)據(jù)。在日常工作中能夠聯(lián)機(jī)地被份數(shù)據(jù)庫(kù)。(4)分布式處理: 數(shù)據(jù)庫(kù)必須支持分布式環(huán)境點(diǎn)自治的原則,以保證數(shù)據(jù)的分布式管理和完整性,對(duì)用戶提供分布式透明以便于應(yīng)用系統(tǒng)的使用。(5)應(yīng)用開(kāi)發(fā): 數(shù)據(jù)庫(kù)所支持的宿主語(yǔ)言應(yīng)包括 Visual Basic,還必須能提供足夠的工具供開(kāi)發(fā)者和用戶選擇,這些工具應(yīng)涉及數(shù)據(jù)庫(kù)分析設(shè)計(jì)、應(yīng)用開(kāi)發(fā)、調(diào)試和運(yùn)行等各個(gè)不同的階段。根據(jù)上述要求,結(jié)合 CIM的具體情況,選用Acs 2000 作為該系統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng),Acs 2000 是一個(gè)多用戶的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),它結(jié)合了Windows NT操作系統(tǒng)的能力,提供一個(gè)安全的、可擴(kuò)展的、易管理、高性能的客戶機(jī)/服務(wù)器

22、;提供了一套圖形化的方便易用的工具如 Entrise Manager、Queryyzer 等;對(duì)多用戶應(yīng)用提供了充足的保護(hù)措施,能夠和防止錯(cuò)誤產(chǎn)生,并且能高效地給多用戶分配可用的資源。3.1.3.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)定義應(yīng)用 Acs 語(yǔ)言中的數(shù)據(jù)定義語(yǔ)句,定義四個(gè)基本表如下:(1) 項(xiàng)目情況表CREATE TABLE dbo.科研項(xiàng)目表 (序號(hào) char (5) NOT NULL PRIMARY KEY,項(xiàng)目 varchar (10) NULL ,項(xiàng)目名稱 varchar (120) NOT NULL ,合同號(hào) varchar (12) NULL ,1 varchar (20) NULL ,2 va

23、rchar (20) NULL ,主要承擔(dān)人 1 varchar (20) NULL ,主要承擔(dān)人 2 varchar (20) NULL ,項(xiàng)目來(lái)源varchar (30) NULL ,項(xiàng)目性質(zhì)tiny NULL DEFAULT (0),開(kāi)始日期smalldatetime NULL ,結(jié)束日期smalldatetime NULL ,文件柜號(hào)tiny NULL ,電子文檔名 varchar (20) NULL ,財(cái)務(wù) char (5) NULL ,總經(jīng)費(fèi) smallmoney NULL DEFAULT (0),貨幣類型 varchar (10) NULL ,撥款數(shù) 1smallmoneyNUL

24、LDEFAULT(0),撥款數(shù) 2smallmoneyNULLDEFAULT(0),撥款數(shù) 3smallmoneyNULLDEFAULT(0),撥款數(shù) 4smallmoneyNULLDEFAULT(0),撥款日期 1datetimeNULL,撥款日期 2datetimeNULL,撥款日期 3datetimeNULL,撥款日期 4datetimeNULL,免扣額 1smallmoneyNULLDEFAULT(0),免扣額 2smallmoneyNULLDEFAULT(0),免扣額 3smallmoneyNULLDEFAULT(0),免扣額 4smallmoneyNULLDEFAULT(0),累計(jì)

25、支出smallmoney NULL DEFAULT (0),驗(yàn)收日期datetime NULL ,鑒定日期datetime NULL ,鑒定varchar (50) NULL,獲獎(jiǎng)名稱varchar (40) NULL,獲獎(jiǎng)日期datetime NULL ,授獎(jiǎng)varchar (50) NULL,號(hào) varchar (50) NULL)(2)表CREATETABLE dbo.表 (名稱varchar (120)NOTNULLPRIMARYKEY,日期datetime NULL,期刊名稱varchar (100)NULL ,作者 1varchar(20)NULL,作者 2varchar(20)N

26、ULL,作者 3varchar(20)NULL,作者 4varchar(20)NULL,作者 5varchar(20)NULL,作者 6varchar(20)NULL,范圍tiny NULL DEFAULT (0),檢tinyNULLDEFAULT (0),檢索號(hào)varchar(20)NULL ,卷期號(hào)varchar(30)NULL ,學(xué)科門類 varchar (20) NULL ,來(lái)源varchar (20) NULL , varchar(50) NULL)(3) 會(huì)議表CREATE TABLE dbo.會(huì)議表 (名稱varchar(120)NOT NULLPRIMARYKEY,會(huì)議時(shí)間da

27、tetime NULL,會(huì)議名稱varchar (100)NULL ,入選集 varchar (120) NULL ,作者 1varchar(20)NULL,作者 2varchar(20)NULL,作者 3varchar(20)NULL,作者 4varchar(20)NULL,作者 5varchar(20)NULL,作者 6varchar(20)NULL,會(huì)議地點(diǎn) varchar (20) NULL,學(xué)科門類 varchar (20) NULL,來(lái)源 varchar (20) NULL ,范圍 tiny NULL DEFAULT(0)(4)CREATE TABLE dbo.會(huì)議表 (設(shè)備var

28、char (8) NOT NULL PRIMARYKEY,設(shè)備名稱varchar(30)NULL ,分類varchar (1) NULL,型號(hào) varchar (30) NULL ,規(guī)格 varchar (20) NULL ,分類號(hào) varchar (6) NULL ,國(guó)標(biāo)代碼varchar (3) NULL,代碼varchar (4) NULL,購(gòu)置日期datetime NULL ,已使用年限varchar(3)NULL,賬面數(shù)量數(shù)varchar(3)NULL,清查數(shù)量數(shù)varchar(3)NULL,賬面金額數(shù)varchar(10) NULL ,清查金額數(shù)varcharNULL DEFAUL

29、T (10)使用狀況 varchar (10) NULL ,備注 varchar NULL DEFAULT (20)3.1.3.3 完整性規(guī)則所謂數(shù)據(jù)的完整性規(guī)則是指數(shù)據(jù)的正確性和相容性,完整性規(guī)則是保證數(shù)據(jù)庫(kù)中數(shù)據(jù)正確的有力工具。本系統(tǒng)中數(shù)據(jù)完整性規(guī)則包括:主碼完整性規(guī)則:每個(gè)基本關(guān)系中主碼的值必須是唯一的,不允許重復(fù);其他完整性規(guī)則:(1) 項(xiàng)目的格式要求為 yyyy-#。(2) 項(xiàng)目名稱雖然不是主鍵,但不允許為空。上述完整性規(guī)則都應(yīng)在系統(tǒng)中實(shí)現(xiàn),以保證系統(tǒng)中的數(shù)據(jù)的正確,能真實(shí)反映客觀世界的情況,這些完整性規(guī)則有的通過(guò)應(yīng)用程序?qū)崿F(xiàn),有的通過(guò)規(guī)范的操作過(guò)程來(lái)控制。3.1.3.4 索引通常表

30、中的數(shù)據(jù)按照堆結(jié)構(gòu),間沒(méi)有特定的順序,當(dāng)查找數(shù)據(jù)時(shí),必須掃描表的所有數(shù)頁(yè)。而在表中創(chuàng)建了索引后,索引順序索引列值。這樣,查找數(shù)據(jù)時(shí),根據(jù)索引列的值就可以找到所在的數(shù)據(jù)頁(yè),無(wú)須掃描所有的數(shù)據(jù)頁(yè),從而提高了查詢效率。在SQL Server 中,索引分為聚簇和非聚簇兩類。聚簇索引采用 B-樹(shù)結(jié)構(gòu),當(dāng)按照索引鍵檢索數(shù)據(jù)時(shí),SQL Server 以遍歷 B-樹(shù)的方法遍歷索引,直接找到所在的數(shù)據(jù)頁(yè),是查詢速度最快的索引。有鑒于此,在數(shù)據(jù)庫(kù)的三個(gè)基本關(guān)系上都定義了一個(gè)索引,其定義語(yǔ)句如下:(1)建立在項(xiàng)目情況表的項(xiàng)目名稱字段上的索引CREATE CLUSTERED INDEX INDEX_項(xiàng)目名稱ON項(xiàng)目情

31、況表(項(xiàng)目名稱)CREATE CLUSTERED INDEX INDEX_開(kāi)始日期ON項(xiàng)目情況表(開(kāi)始日期)(2)建立在表上的索引CREATE CLUSTERED INDEX INDEX_名稱ON表(名稱)CREATE CLUSTERED INDEX INDEX_日期ON表(日期)(3)建立在會(huì)議表上的索引CREATE CLUSTERED INDEX INDEX_名稱ON會(huì)議表(名稱)CREATE CLUSTERED INDEX INDEX_會(huì)議日期ON會(huì)議表(會(huì)議日期)以上的語(yǔ)句在 Acs 2000 中仍然適用。3.1.3.5 安全性考慮數(shù)據(jù)庫(kù)安全性是數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)重要方面,它是指保護(hù)數(shù)據(jù)

32、庫(kù)防止被不合法的使用,包括的破壞和的存取等。但由于本系統(tǒng)涉及到的數(shù)據(jù)都不是性數(shù)據(jù),無(wú)須采取很復(fù)雜的安全措施,只須防止數(shù)據(jù)隨意改動(dòng)即可。原系統(tǒng)采取的安全措施是利用 SQL Server與 Windows NT 的安全性集成功能,由系統(tǒng)管理員或數(shù)據(jù)庫(kù)管理員為用戶分配數(shù)據(jù)庫(kù)權(quán)限,當(dāng)沒(méi)利修改數(shù)據(jù)庫(kù)的用戶試圖修改數(shù)據(jù)時(shí)給出相應(yīng)的提示,數(shù)據(jù)庫(kù)備份的工作也由數(shù)據(jù)庫(kù)管理員來(lái)完成。而 Acs 2000 的安全系統(tǒng)是以SQL Server 的安全系統(tǒng)為模型的,所以原系統(tǒng)的安全措施也可以保留。3.1.3.6 磁盤空間分配由于項(xiàng)目管理數(shù)據(jù)量不大、每年的增長(zhǎng)量也不大,所以不需要很大的磁盤空間,將初始大小定義為 10MB

33、,增量為 20%。3.2選型3.2.1選型的原則在選擇開(kāi)發(fā)主要考慮以下:(1)開(kāi)發(fā)工具的性能穩(wěn)定和可靠。這是最關(guān)心的性能,開(kāi)發(fā)工具不能經(jīng)常發(fā)生錯(cuò)誤或在數(shù)據(jù)庫(kù)時(shí)經(jīng)常出現(xiàn)問(wèn)題。可視化的開(kāi)發(fā)。只須用鼠標(biāo)即可完成界面的設(shè)計(jì),并且界面應(yīng)具有流行的風(fēng)格,如帶有簡(jiǎn)短提示的工具條,具有 Windows 95 風(fēng)格的 Tab 文件夾等。提供可擴(kuò)展的第四代編程語(yǔ)言。這樣開(kāi)發(fā)就無(wú)須關(guān)心復(fù)雜的底層工作,如Windows API 等。對(duì) Windows 技術(shù)的廣泛支持。包括對(duì)Windows 95/98 上 32 位計(jì)算的支持以及對(duì) DDL、OLE、MDI 等的支持??梢陨烧嬲目蓤?zhí)行文件。較之于偽代碼真正的機(jī)器代碼會(huì)

34、使應(yīng)用的速度和效率得到大幅度提高。(2)數(shù)據(jù)庫(kù)的能力必須能夠支持 ODBC(開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián))和數(shù)據(jù)庫(kù)接口。提供多種數(shù)據(jù)表現(xiàn)形式。完成對(duì)數(shù)據(jù)庫(kù)的查詢和操作是前端開(kāi)發(fā)工具的主要任務(wù)。因此開(kāi)發(fā)工具不許提供簡(jiǎn)便而功能強(qiáng)大的數(shù)據(jù);并提供多種數(shù)據(jù)表現(xiàn)形式;可以生成復(fù)雜的報(bào)表。3.2.2開(kāi)發(fā)選擇目前,很多數(shù)據(jù)庫(kù)廠商和應(yīng)用開(kāi)發(fā)工具廠商紛紛推出了新一代的 32 位快速應(yīng)用開(kāi)發(fā)(RAD)工具,這些工具為應(yīng)用開(kāi)發(fā)開(kāi)發(fā)客戶機(jī)/服務(wù)器結(jié)構(gòu)下客戶機(jī)端的應(yīng)用程序帶來(lái)了極大的方便。在數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)方面,現(xiàn)在用的最多的有er Builder、Visual C+和 Visual Basic 等。其中Visual C+功能最

35、強(qiáng)大,但實(shí)現(xiàn)復(fù)雜,編程量大,對(duì)開(kāi)發(fā)的要求太高。er Builder 的最大優(yōu)點(diǎn)是容易使用,只須很少的代碼,尤其是它的數(shù)據(jù)窗口(Data Window)技術(shù)提供了一個(gè)非常簡(jiǎn)便的數(shù)據(jù)庫(kù)的方法。er Builder 還提供了對(duì)窗口的繼承,對(duì)于類型相似的窗口只須設(shè)計(jì)一個(gè),的工作量。但由于er Builder 是一個(gè)專門其余的通過(guò)繼承來(lái)實(shí)現(xiàn),這樣就大大減輕了開(kāi)發(fā)用于數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)的工具,所以在其他例如界面設(shè)計(jì)和錯(cuò)誤處理之類的細(xì)節(jié)方面的功能就相對(duì)較弱?;谌缦略颍詈筮x擇 Visual Basic 6.0 作為本項(xiàng)目管理系統(tǒng)的開(kāi)發(fā)工具。(1)自從 Visual Basic 5.0 開(kāi)始提供了本機(jī)代碼

36、(N-Code)碼(P-Code)的局限,運(yùn)行效率提高近二十倍。,擺脫了以往只能生成偽代(2)Visual Basic 提供了開(kāi)發(fā)圖形用戶界面 (GUI) 的方法。不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對(duì)象拖放到屏幕上的一點(diǎn)即可。(3)Visual Basic 提供了 ADO (ActiveX 數(shù)據(jù)對(duì)象) 這項(xiàng)新的數(shù)據(jù)技術(shù)。特點(diǎn)是:更簡(jiǎn)單的對(duì)象模型;與其它和非的技術(shù)更好的集成;為本地和數(shù)據(jù)數(shù)據(jù)提供了通用的接口。(4)提供了增強(qiáng)的數(shù)據(jù)綁定。在 Visual Basic 以前的版本中,只能在窗體上綁定控件。在Visual Basic 6.0 中,已經(jīng)可以將任何 ADO/OL

37、E DB 數(shù)據(jù)源綁定到任何 ADO/OLE DB數(shù)據(jù)使用者上。(5)Visual Basic 是一個(gè)通用的開(kāi)發(fā)工具,功能強(qiáng)大,并且由于同為公司的產(chǎn)品,Visual Basic 與 Windows 操作系統(tǒng)及Acs 2000 數(shù)據(jù)庫(kù)管理系統(tǒng)結(jié)合得更好。VB 還有一個(gè)很大的優(yōu)點(diǎn)是它是一個(gè)基于事件驅(qū)動(dòng)的編程語(yǔ)言,而不象 C 或 C+是過(guò)程化的。這在開(kāi)發(fā) Windows 的應(yīng)用程序時(shí)尤其有用。在傳統(tǒng)的或“過(guò)程化”的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一部分代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應(yīng)用程序中預(yù)定的路徑執(zhí)行,必要時(shí)調(diào)用過(guò)程。在事件驅(qū)動(dòng)的應(yīng)用程序中,代碼不是按照預(yù)定的路徑執(zhí)行而是在

38、響應(yīng)不同的事件時(shí)執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來(lái)自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā)、甚至由應(yīng)用程序本身的消息觸發(fā)。這些事件的順序決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運(yùn)行時(shí)所經(jīng)過(guò)的代碼的路徑都是不同的。不過(guò)這樣就造成無(wú)法為 Visual Basic 編制的程序畫出流程圖,或者說(shuō)流程圖太復(fù)雜而無(wú)法畫出。當(dāng)然 Visual Basic 也有之處。最大的缺點(diǎn)就是不支持繼承,這樣就容易造成代碼重復(fù)率高,代碼的可重用性和開(kāi)發(fā)效率降低。3.3 系統(tǒng)總體結(jié)構(gòu)根據(jù)系統(tǒng)的功能需求,確定以下模塊結(jié)構(gòu)圖.它由數(shù)據(jù)錄入、數(shù)據(jù)查詢、系統(tǒng)設(shè)置和幫助模塊組成。(見(jiàn)下圖)科研項(xiàng)目管理系統(tǒng)數(shù)據(jù)錄入數(shù)據(jù)查詢

39、系統(tǒng)設(shè)置幫助查詢會(huì)議查詢圖 3-1續(xù)圖 3-1代號(hào)設(shè)置數(shù)據(jù)庫(kù)連接設(shè)置系統(tǒng)設(shè)置打印報(bào)表項(xiàng)目情況查詢數(shù)據(jù)查詢會(huì)議錄入錄入項(xiàng)目數(shù)據(jù)錄入數(shù)據(jù)錄入其中每一個(gè)模塊由一個(gè)窗體及其相應(yīng)的代碼。為了實(shí)現(xiàn)應(yīng)用程序的靈活性,對(duì)于實(shí)際應(yīng)用中需要?jiǎng)討B(tài)修改的數(shù)據(jù)庫(kù)連接設(shè)置與項(xiàng)目性質(zhì)、檢在表中。其結(jié)構(gòu)為:代號(hào)等數(shù)據(jù)HKEY_CURRENT_USERVB and VBA Program Settings科研項(xiàng)目管理系統(tǒng) 1.0.ConnectionDatabaseNameServerName“科研項(xiàng)目管理系統(tǒng)”“IDEASSERVER”SymbolArticleRange012Count ArticleRetrieveSou

40、rce01234CountProjectQuality01234Count“國(guó)內(nèi)”“國(guó)際”“地方”“2”“無(wú)”“EI”“SCI”“”“一般”“4”“無(wú)”“國(guó)家自然科學(xué)基金” “863”“部、省科委”“企業(yè)、“4”其中后面三個(gè)鍵名的意義為ArticleRange :范圍ArticleRetrieveSource :檢ProjectQuality :項(xiàng)目性質(zhì)所有鍵值均為字符串,Count 是計(jì)數(shù)值。系統(tǒng)第一次運(yùn)行時(shí)將創(chuàng)建上述據(jù)庫(kù)名稱和服務(wù)器名稱為空字符串,Count 為0。表結(jié)構(gòu),初始數(shù)3.4數(shù)據(jù)庫(kù)接口設(shè)計(jì)3.4.1數(shù)據(jù)接口選擇對(duì)于一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序來(lái)說(shuō),選擇一個(gè)合適的數(shù)據(jù)接口是很重要的,它與應(yīng)用

41、程序的性能密切相關(guān)。在 Visual(ActiveX Data Object,ADO)Basic 中,可用的數(shù)據(jù)接口有三種:ActiveX 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象(Remote Data Object,RDO)接口是一個(gè)對(duì)象模型,它代表了和數(shù)據(jù)對(duì)象(DataAcs Object,)。數(shù)據(jù)數(shù)據(jù)的各個(gè)方面。使用 Visual Basic,可以在任何應(yīng)用程序中通過(guò)編程控制連接、語(yǔ)句據(jù)。和供使用的返回?cái)?shù)數(shù)據(jù)對(duì)象 () 既可以和Jet 數(shù)據(jù)庫(kù)引擎一起使用,也可以通過(guò)設(shè)置Jet 數(shù)據(jù)庫(kù)引擎是一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)管理系ODBCDirect 選項(xiàng)而不和它一起使用。統(tǒng),需要時(shí)它既可以對(duì)各種服務(wù)器進(jìn)行處理查詢,又可以進(jìn)行路

42、由查詢。通過(guò)訪問(wèn) Jet 使開(kāi)發(fā)工作更加簡(jiǎn)便,因?yàn)樗峁┝嗣嫦蟮拈_(kāi)發(fā)方法和對(duì)數(shù)據(jù)識(shí)別綁定控件的訪問(wèn)能力。/Jet 的主要缺點(diǎn)是沒(méi)有利用 SQL Server 的所有特性,這主要是由于試圖使/Jet 成為通用接口的原因。并且 Jet 不適合多任務(wù),在每個(gè)查詢完成之前,它將鎖定其他請(qǐng)求和用戶。RDO數(shù)據(jù)對(duì)象是一個(gè)到 ODBC 的、面象的數(shù)據(jù)接口,它同易于使用的style 組合在一起,提供了一個(gè)接口,形式上展示出所有 ODBC 的底層功能和靈活性。RDO提供了用來(lái)過(guò)程和復(fù)雜結(jié)果集的和更復(fù)雜的對(duì)象、屬性,以及方法。RDO 的Jet 或 ISAM數(shù)據(jù)庫(kù)方面受到限制,而且它只能通過(guò)現(xiàn)存的 ODBC缺點(diǎn)是在

43、很好地驅(qū)動(dòng)程序來(lái)ADO 是為關(guān)系數(shù)據(jù)庫(kù)。范例 OLE DB 而設(shè)計(jì)的,是一個(gè)便于使用和最強(qiáng)大的數(shù)據(jù)的的應(yīng)用程序?qū)咏涌?。OLE DB 為任何數(shù)據(jù)源提供了高性能的,這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫(kù)、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對(duì)象等等。ADO 在關(guān)鍵的ernet 方案中使用最少的網(wǎng)絡(luò)流量,并且端和數(shù)據(jù)源之間使用最少的層數(shù),總之,ADO 提供了一個(gè)輕量、高性能的接口?;谏厦娴姆治?,選用 ADO2.0 作為本系統(tǒng)的數(shù)據(jù)接口。除了上述原因外,選用ADO 還可以省去DSN 的麻煩,并且 ADO 是未來(lái)的發(fā)展趨勢(shì),將取代所有其他接口,所以選用ADO 能增強(qiáng)應(yīng)用程序的可擴(kuò)充性。具體實(shí)現(xiàn)3.4.

44、2通過(guò) ADO數(shù)據(jù)庫(kù)有兩種方式:ADO Date 控件和代碼。通過(guò) ADO Date 控件數(shù)據(jù)庫(kù)最大的優(yōu)點(diǎn)是實(shí)現(xiàn)方法簡(jiǎn)單,編程量少。但由于本應(yīng)用程序有多個(gè)涉及到數(shù)據(jù)庫(kù)的窗口,每個(gè)窗口不同的表,所以必須為每個(gè)窗口都放置一個(gè)控件,這樣就產(chǎn)生了代碼重復(fù),并且最主要的是會(huì)造成在應(yīng)用程序的運(yùn)行過(guò)程中不斷連接和斷開(kāi)數(shù)據(jù)庫(kù),而連接數(shù)據(jù)庫(kù)是很費(fèi)時(shí)的操作,這是用戶所的。選擇采用純代碼的方式,根據(jù)面象的設(shè)計(jì)原則,將與數(shù)據(jù)庫(kù)的連接代碼封裝成一個(gè)類,取名為 clsData。該類具有 vbDataSource 的屬性。其中定義對(duì)應(yīng)于三個(gè)基本關(guān)系表的集(RecordSet)對(duì)象和數(shù)據(jù)庫(kù)對(duì)象為私有成員,對(duì)外不可見(jiàn)。在類的初

45、始化事件(Initialize)中進(jìn)行數(shù)據(jù)庫(kù)的連接并初始化集,如果連接失敗則給出失敗信息。在 GetDataMember事件中通過(guò)不同的數(shù)據(jù)成員名稱(DataMember)來(lái)件(Terminate)代碼中斷開(kāi)與數(shù)據(jù)庫(kù)的連接。對(duì)數(shù)據(jù)庫(kù)的操作通過(guò)對(duì)該類的方法調(diào)用實(shí)現(xiàn)。由于對(duì)三個(gè)基本表要進(jìn)行的操作是一樣的,三個(gè)不同的集。在類的終止事所以為保持代碼的簡(jiǎn)潔,以數(shù)據(jù)成員名稱為第一參數(shù)定義添加(AddNew)、刪除(Delete)、排序(Sort)、篩選(DataFilter)、移動(dòng)到首(MoveNext)、移動(dòng)到上一(Move)、移動(dòng)到末(MoveLast)、移動(dòng)到下一數(shù)目 (CountRecord)、刷

46、新(MovePrevious)、統(tǒng)計(jì)(Requery)、保存(Save)共計(jì)十一個(gè)公有函數(shù)以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,在代碼中通過(guò)Select 語(yǔ)句區(qū)分要對(duì)那一個(gè)3.5 初始化模塊設(shè)計(jì)集進(jìn)行操作。作為應(yīng)用程序的,進(jìn)入系統(tǒng)時(shí)首先必須進(jìn)行的初始化工作有:檢查應(yīng)用程序表的完整性,初始化類,創(chuàng)建日期格式,然后將控制移交給主界面。用 PDL 語(yǔ)言描述如下:PROCEDUREIF 沒(méi)有創(chuàng)建應(yīng)用程序 THEN創(chuàng)建ENDIF初始化類;表表;IF 連接失敗THENENDIF將與數(shù)據(jù)庫(kù)操作有關(guān)的菜單項(xiàng)設(shè)為不可用;定義日期格式;顯示主界面;IF 未設(shè)置代號(hào)THENENDIF顯示信息并提醒用戶進(jìn)行設(shè)置;END PROCED

47、URE3.6 主界面設(shè)計(jì)主界面只作為其他所有窗口的父窗口,名稱為 frmMain,類型為 MDIForm。其上放置的控件有:主菜單、用于調(diào)用 Html 幫助文件的一個(gè) HHOpen 控件(不可見(jiàn))、以及一個(gè)用于顯示輔助信息的狀態(tài)欄。界面設(shè)計(jì)如下:主菜單設(shè)計(jì)如下:數(shù)據(jù)錄入查詢?cè)O(shè)置幫助退出項(xiàng)目錄入項(xiàng)目查詢數(shù)據(jù)庫(kù)連接設(shè)置內(nèi)容錄入查詢代號(hào)設(shè)置錄入查詢會(huì)議錄入會(huì)議查詢各菜單的代碼作用僅僅是打開(kāi)相應(yīng)的窗口。3.7錄入模塊設(shè)計(jì)項(xiàng)目錄入與錄入除操作的集不同外,其余基本是一樣的。先前的設(shè)計(jì)是為項(xiàng)目錄入、期刊錄入、會(huì)議錄入和設(shè)備錄入各創(chuàng)建一個(gè)窗口,以實(shí)現(xiàn)對(duì)不同集的操作。但后來(lái)發(fā)現(xiàn)由于其多數(shù)操作都是一樣的,這樣就造

48、成了代碼的重復(fù)率很大,并且不易。為了提高代碼的重用性和可性,減少源程序數(shù)量,對(duì)項(xiàng)目和的錄入采用同一個(gè)窗體,用窗體的 Tag 屬性來(lái)區(qū)分當(dāng)前打開(kāi)的窗體是要對(duì)那一個(gè)集進(jìn)行操作。錄入窗體取名為 frmRecordInput。窗體界面設(shè)計(jì)如下:錄入窗口的菜單設(shè)計(jì)如下:編輯刷新排序幫助關(guān)閉添加剪切升序排列內(nèi)容保存降序排列粘貼刪除錄入窗口所用到的控件有:其中 ImageList 控件在運(yùn)行時(shí)不可見(jiàn)。窗口上所有控件的布局在運(yùn)行時(shí)由代碼調(diào)整。打開(kāi)錄入窗口時(shí)根據(jù)要錄入的是項(xiàng)目情況、或會(huì)議分和設(shè)備情況分別將其 Tag 屬性設(shè)置為“Project”、“Periodical”、“Meeting”和“Machine”以

49、作區(qū)別,這些代號(hào)也與類 clsData 中數(shù)據(jù)成員的名稱相同,在類的方法時(shí)就可以直接用“Me.Tag”作為參數(shù),這樣可以減少輸入錯(cuò)誤。對(duì)要用代碼進(jìn)行的錄入(項(xiàng)目性質(zhì)、的檢等)采用下拉列表框作為輸入方式,既方便用戶操作又可避免出錯(cuò)。為方便用戶快速找到感的,錄入窗口提供了按照某一列(字段)進(jìn)行升序或降序排列的功能,實(shí)現(xiàn)方法是當(dāng)用戶單擊某一列的列頭時(shí)觸發(fā) DataGrid 控件的 HeadClick 事件,在該事件的代碼控件類型控件名稱作用DataGriddbdRecord用于顯示項(xiàng)目或數(shù)據(jù)并可在其上進(jìn)行編輯ComboBoxcboRange顯示并設(shè)置范圍ComboBoxcboRetriSource顯

50、示并設(shè)置檢ComboBoxcboQuality顯示并設(shè)置項(xiàng)目性質(zhì)ToolBarToolBar1提供快捷ImageListImageList1為提供圖象列表中得到當(dāng)前列的名稱,存于局部變量SortField 中,然后在升序或降序排列菜單項(xiàng)的代碼中調(diào)用類clsData的排序(Sort)方法對(duì)排序。為防止用戶無(wú)意中進(jìn)行了關(guān)閉窗口的操作而丟失未保存的修改,在窗口的代碼中定義一個(gè)名為 Dhanged 的型局部變量,用以用戶的操作,當(dāng)用戶改變了數(shù)據(jù)時(shí)將其設(shè)為真,在窗體關(guān)閉前檢查該變量,如果為真則提醒用戶是否保存所做的修改。定義兩個(gè)私有函數(shù):DateFormat()用于為只精確到月的日期字段定義日期格式;d

51、bdRecordResize()用于設(shè)置 dbdRecord 控件各列的高度及寬度。錄入窗口所需要處理的事件主要有:窗口 frmRecordInput 的Activate 事件:緊接著窗口的 Load 事件被觸發(fā),代碼完成的主要工作是根據(jù)窗口的 Tag 屬性為 dbdRecord 控件綁定數(shù)據(jù)源; 從表中代號(hào)設(shè)置并將其加入相應(yīng)的ComboBox 控件中;根據(jù)窗口的 Tag 屬性將dbdRecord控件中對(duì)應(yīng) 代號(hào)設(shè)置的列的 Button 和Locked 屬性設(shè)為 True。如果當(dāng)前獲得焦點(diǎn)的列是用代號(hào)設(shè)置的列則調(diào)用dbdRecord 控件的 RowColChange 事件:dbdRecord

52、控件的 ButtonClick 事件處理程序,否則將下拉列表框設(shè)為不可見(jiàn);在狀態(tài)條上顯示當(dāng)前正在編輯的。dbdRecord 控件的 ButtonClick 事件:將列表框移動(dòng)到當(dāng)前列并設(shè)為可見(jiàn);將列表框中的值與該列的數(shù)據(jù)對(duì)應(yīng)起來(lái)。dbdRecord 控件的 Error 事件:三個(gè) ComboBox 控件的 LostFocus 事件:對(duì)錄入過(guò)程中的錯(cuò)誤進(jìn)行提示。如果代號(hào)被改變則將列表框中的新值寫入當(dāng)前列以起到更改的作用。3.8 查詢模塊設(shè)計(jì)按照功能需求的規(guī)定,必須支持各種查詢方式,并能將查詢結(jié)果打印成報(bào)表。其中需要錄入字符串的查詢均采用模糊查詢的方式,以減少用戶輸入,提供自定義查詢以滿足復(fù)雜條件

53、的查詢要求。退出查詢后應(yīng)清除查詢結(jié)果,能將代碼意義自動(dòng)放在報(bào)表末尾,如果以時(shí)間為查詢條件,還應(yīng)將時(shí)間范圍自動(dòng)放在報(bào)表開(kāi)頭。查詢以對(duì)集進(jìn)行篩選而不是以重新打開(kāi)集的方式,這樣就節(jié)約了數(shù)據(jù)傳輸?shù)拈_(kāi)銷。查詢項(xiàng)目情況、或會(huì)議、設(shè)備情況的界面和基本操作都相同,只有菜單不一樣。原先的設(shè)想是象錄入模塊一樣建立一個(gè)通用查詢界面,但由于VB 不提供動(dòng)態(tài)修改菜單項(xiàng)的方法,所以只能分別為項(xiàng)目、和會(huì)議、設(shè)備各創(chuàng)建一個(gè)查詢窗口。查詢界面設(shè)計(jì)如下所示(以查詢?yōu)槔核玫降目丶龥](méi)有用于輸入代碼的三個(gè)ComboBox 控件以及DataGrid 控件的AllowAddnew、AllowDelete、AllowUpdate 屬

54、性設(shè)為 False(即不允許進(jìn)行編輯)外,均與錄入窗口相同,此處不再贅述。查詢條件通過(guò)框輸入,在查詢菜單中選擇查詢目的后顯示相應(yīng)的框。對(duì)于項(xiàng)目情況、和會(huì)議中都有的以名稱和時(shí)間為條件的查詢、自定義查詢、和會(huì)議中都框,顯示時(shí)分別將框的Tag 屬性設(shè)為“Project”、有的以作者為條件的查詢建立四個(gè)通用查詢“Periodical”和“Meeting”以作區(qū)別。查詢模塊所用到的框有:dlgNameQuery:實(shí)現(xiàn)對(duì)項(xiàng)目情況以項(xiàng)目名稱為條件;對(duì)和會(huì)議以名稱為條件的查詢。dlgDateQuery:實(shí)現(xiàn)對(duì)項(xiàng)目情況以項(xiàng)目起止時(shí)間為條件;對(duì)和會(huì)議以發(fā)表日期為條件的查詢。dlgGeneralQuery: dlg

55、AuthorQuery: dlgProjCDRQuery: dlgProjFZRQuery:dlgProjQualityQuery:實(shí)現(xiàn)復(fù)雜條件的自定義查詢。實(shí)現(xiàn)對(duì)和會(huì)議以作者為條件的查詢。實(shí)現(xiàn)對(duì)項(xiàng)目情況以承擔(dān)人為條件的查詢。實(shí)現(xiàn)對(duì)項(xiàng)目情況以為條件的查詢。實(shí)現(xiàn)對(duì)項(xiàng)目情況以項(xiàng)目性質(zhì)為條件的查詢。dlgPeriodRetrieveQuery:實(shí)現(xiàn)對(duì)項(xiàng)目情況以dlgPeriodSourceQuery: 實(shí)現(xiàn)對(duì)項(xiàng)目情況以檢為條件的查詢。來(lái)源為條件的查詢。其中 dlgDateQuery 采用 MaskEdBox 控件實(shí)現(xiàn)輸入,將其輸入格式設(shè)為數(shù)字以防止用戶錯(cuò)誤輸入,并對(duì)諸如輸入月份大于十二或小于一、開(kāi)始

56、日期大于結(jié)束日期等錯(cuò)誤情況進(jìn)行判斷,提醒用戶改正。對(duì)于和會(huì)議以作者為條件、對(duì)項(xiàng)目情況以承擔(dān)人為條件、對(duì)項(xiàng)目情況以為條件的查詢,因?yàn)樽髡摺⒊袚?dān)人、均有多個(gè),只要符合其中之一即可。對(duì)于以代號(hào)為條件的查詢(例如對(duì)項(xiàng)目情況以檢為條件的查詢)通過(guò)下拉列表框進(jìn)行輸入以方便用戶輸入條件??蒲许?xiàng)目查詢?cè)摬藛蜗掳?3 種查詢方式:按項(xiàng)目查詢其期查詢選項(xiàng)中的“綜合”指的是“起始日期”大于前一個(gè)日期,同時(shí)“結(jié)束日期”又小于后一個(gè)日期的。2 按經(jīng)費(fèi)查詢3 按財(cái)務(wù)查詢3.8.2查詢3.8.3會(huì)議查詢3.8.4設(shè)備查詢清除菜單通過(guò)調(diào)用類clsData 的 Requery 方法實(shí)現(xiàn)清除當(dāng)前查詢結(jié)果的功能。打印功能通過(guò) D

57、ataReport 數(shù)據(jù)報(bào)表實(shí)現(xiàn),DataReport 本身就提供了打印、視圖放大及縮小功能,無(wú)須編程實(shí)現(xiàn)。所用到的 DataReport 數(shù)據(jù)報(bào)表有如下幾個(gè):drpMeetArticle:會(huì)議drpPeriodArticle:統(tǒng)計(jì)表統(tǒng)計(jì)表drpProjArchieve:科研項(xiàng)目成果表drpProjFinanl:科研項(xiàng)目財(cái)務(wù)表drpProjOverview:科研項(xiàng)目總覽表這里要特別提一下的是,由于每張統(tǒng)計(jì)表的寬度都大于頁(yè)面寬度,所以在打印之前必須先將設(shè)置成橫向打印。3.9 設(shè)置模塊設(shè)計(jì)考慮到應(yīng)用程序可能連接到不同的終端上,并且系統(tǒng)在使用過(guò)程中用代號(hào)設(shè)置的字段可能需要修改其意義,通過(guò)讓用戶設(shè)置數(shù)

58、據(jù)庫(kù)連接選項(xiàng)和代碼意義以獲得更大的靈活性,用戶的輸入保存在表中以便應(yīng)用程序使用。數(shù)據(jù)庫(kù)連接設(shè)置窗口設(shè)計(jì)如下:由于應(yīng)用程序只有在啟動(dòng)時(shí)才從表中得到服務(wù)器和數(shù)據(jù)庫(kù)名稱并進(jìn)行連接,所以數(shù)據(jù)庫(kù)連接設(shè)置完成后不會(huì)馬上生效。所以在用戶完成數(shù)據(jù)庫(kù)連接設(shè)置后,也就是“確定”按鈕被按下后通過(guò)在“確定”按鈕的 Click 事件處理代碼中的 MsgBox 函數(shù)在顯示一條信息提醒用戶。代碼設(shè)置窗口設(shè)計(jì)如下:可以編輯當(dāng)前代號(hào)、添加新代號(hào)或刪除當(dāng)前代號(hào)。添加新代號(hào)時(shí)采取自動(dòng)增量的方式,不允許用戶設(shè)置代號(hào)數(shù)字以保證每一類代號(hào)都是順序遞增的。為了同樣的原因,也不允許用戶刪除除了最后一個(gè)以外的代號(hào)。另外,應(yīng)用程序要求每一類代號(hào)

59、至少必須有一個(gè)設(shè)置,所以第一個(gè)代號(hào)也不允許刪除。發(fā)生上述的錯(cuò)誤操作時(shí)將向用戶顯示錯(cuò)誤信息。3.10 幫助模塊設(shè)計(jì)用 HTML Help 的方式對(duì)應(yīng)用程序中的各種功能對(duì)用戶說(shuō)明,提供上下文相關(guān)幫助,并對(duì)各種錯(cuò)誤情況提供必要的提示信息。幫助文件用HHOpen 控件的 OpenHelp 函數(shù)打開(kāi)。第四章測(cè)試分析4.1測(cè)試的目的測(cè)試在生存期中占有重要地位,這不僅因?yàn)闇y(cè)試階段占用的時(shí)間、花費(fèi)的人力和成本占軟件開(kāi)發(fā)的很大,而且它直接影響的質(zhì)量。開(kāi)發(fā)工作在測(cè)試以前已經(jīng)歷了制定計(jì)劃、需求分析、設(shè)計(jì)和編碼等許多階段。由于人的思維不可能絕對(duì)周密而不發(fā)生任何錯(cuò)誤。尤其在大中型開(kāi)發(fā)項(xiàng)目中,系統(tǒng)內(nèi)各部分之間、各種數(shù)據(jù)之

60、間、各種之間有著復(fù)雜的關(guān)系,因此目前所采用的開(kāi)發(fā)方法都不能完全避免發(fā)生錯(cuò)誤。按照工程的觀點(diǎn),測(cè)試階段的主要任務(wù)是發(fā)現(xiàn)并排除在分析、設(shè)計(jì)、編程階段中產(chǎn)生的各種類型的錯(cuò)誤,以得到可運(yùn)行的系統(tǒng)。測(cè)試工作最典型的做法是,選取一些測(cè)試數(shù)據(jù),運(yùn)行被測(cè)程序,檢驗(yàn)運(yùn)行結(jié)果,其中選取測(cè)試數(shù)據(jù)是整個(gè)測(cè)試工作的關(guān)鍵。一般有兩種不同的方法考慮測(cè)試數(shù)據(jù):黑盒方法和白盒方法。黑盒方法又稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試方法,按這一方法進(jìn)試時(shí),程序被看作不能打開(kāi)的黑盒,在完全不考慮程序結(jié)構(gòu)的情況下,依靠程序的規(guī)格說(shuō)明書(shū),從可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),也就是根據(jù)程序的功能或程序的外部特征設(shè)計(jì)測(cè)試數(shù)據(jù)。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論