基于VF的圖書館管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)_第1頁(yè)
基于VF的圖書館管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)_第2頁(yè)
基于VF的圖書館管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)_第3頁(yè)
基于VF的圖書館管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)_第4頁(yè)
基于VF的圖書館管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 圖書館管理系統(tǒng)的開發(fā)與實(shí)現(xiàn) 學(xué) 號(hào):學(xué)生姓名:專 業(yè): 指導(dǎo)教師:提交時(shí)間: 第 57 頁(yè) 摘要本文首先介紹了數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的基本概念及關(guān)系模型等。然后對(duì)問題的來(lái)源進(jìn)行深入分析,指出圖書借閱者、圖書館工作人員和圖書館管理人員是問題主要來(lái)源,并指出本數(shù)據(jù)管理系統(tǒng)的實(shí)用性功能就是管理好圖書館信息,提高工作效率,避免數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高的弊端。接著對(duì)需求分析進(jìn)行細(xì)致的分析,特別對(duì)圖書借閱者、圖書館工作人員和圖書館管理人員三者權(quán)限進(jìn)行分配。接著對(duì)系統(tǒng)功能模塊進(jìn)行分析,指出本系統(tǒng)功能模塊主要分為“圖書資料管理”模塊、“學(xué)生資料管理”模塊、“借還書操作”模塊??偟膩?lái)說,本圖書

2、管理系統(tǒng),介紹了該系統(tǒng)組成結(jié)構(gòu)、功能特點(diǎn)、使用原理和方法,本系統(tǒng)實(shí)現(xiàn)了系統(tǒng)登陸、圖書管理、學(xué)生管理圖書的借閱與歸還、圖書借閱排行榜和查看逾期未還圖書以及各種信息的打印等功能。有了這個(gè)系統(tǒng)就使圖書館的工作變得簡(jiǎn)單了許多,使圖書館的圖書管理形成了一個(gè)整體自動(dòng)化管理模式。摘要 1第1章 基礎(chǔ)理論知識(shí)3§1.1  數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)簡(jiǎn)介3§1.2  數(shù)據(jù)庫(kù)管理系統(tǒng)3§1.3 VisualFoxPro簡(jiǎn)介4第2章 問題來(lái)源5第3章 總體設(shè)計(jì)7§3.1 應(yīng)用需求分析 7§3.2 模塊分析7§3.2.1 功能模塊圖8§

3、3.2.2 模塊分析8第4章 詳細(xì)設(shè)計(jì) 10§4.1 設(shè)計(jì)創(chuàng)建數(shù)據(jù)庫(kù)10§4.1.1 設(shè)計(jì)數(shù)據(jù)庫(kù)10§4.1.2 創(chuàng)建數(shù)據(jù)庫(kù)10§4.2 創(chuàng)建系統(tǒng)主程序13§4.3 創(chuàng)建系統(tǒng)常用類13§4.3.1 創(chuàng)建“移動(dòng)記錄工具欄”類14§4.3.2 創(chuàng)建“命令按鈕工具欄”類14§4.4創(chuàng)建系統(tǒng)主表單 16§4.4.1系統(tǒng)主表單的功能16§4.4.2創(chuàng)建系統(tǒng)主表單界面 16§4.4.3 添加表單代碼 24§4.4.4 創(chuàng)建系統(tǒng)主表單輔助表單30§4.5 創(chuàng)建“讀者借書記錄”模塊

4、37§4.5.1 主表單的功能 37§4.5.2 創(chuàng)建主表單界面 38§4.5.3 添加主表單代碼 43§4.5.4 創(chuàng)建輔助表單45§4.6 創(chuàng)建系統(tǒng)打印功能50第5章 結(jié)果分析52結(jié)束語(yǔ)53致謝54參考文獻(xiàn)55第1章 基礎(chǔ)理論知識(shí)1.1 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)簡(jiǎn)介在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)之前,對(duì)開發(fā)數(shù)據(jù)庫(kù)的基本概念應(yīng)當(dāng)了解,對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當(dāng)有相當(dāng)清晰的了解和認(rèn)識(shí)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)的目標(biāo)是建立一個(gè)滿足用戶長(zhǎng)期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫(kù)設(shè)計(jì)。把設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)

5、際的數(shù)據(jù)庫(kù),并且這些數(shù)據(jù)庫(kù)帶有功能完備、高效能的應(yīng)用。數(shù)據(jù)庫(kù)技術(shù)在計(jì)算機(jī)軟件鄰域研究中一直是非常重要的主題,產(chǎn)生于60年代,40多年來(lái)數(shù)據(jù)庫(kù)技術(shù)得到了迅速發(fā)展,并已形成較為完整的理論體系和一大批實(shí)用系統(tǒng)。并且,近年來(lái),隨著World Wide Web(WWW)的猛增及Internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫(kù)技術(shù)一時(shí)成為最熱門技術(shù)之一。1.2 數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫(kù)系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分。對(duì)數(shù)據(jù)庫(kù)的一切操作,包括定義、更新及各種控制,都是通過DBMS進(jìn)行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某

6、種數(shù)據(jù)模型在計(jì)算機(jī)系統(tǒng)上的具體實(shí)現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。Visual FoxPro就是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。關(guān)系模型。關(guān)系模型主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,它的實(shí)例稱為關(guān)系,每個(gè)關(guān)系實(shí)際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡(jiǎn)單用戶易懂,編程時(shí)并不涉及存儲(chǔ)結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)。關(guān)系模型是數(shù)學(xué)化模型。SQL語(yǔ)言是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)化語(yǔ)言,已得到了廣泛的應(yīng)用。1.3 VisualFoxPro簡(jiǎn)介Vi

7、sual FoxPro 6.0(簡(jiǎn)稱VFP) 是由Microsoft公司推出的,它是xBase數(shù)據(jù)庫(kù)家族的一員,是其前身FoxPro與可視程序設(shè)計(jì)相結(jié)合的產(chǎn)物。VFP 可以簡(jiǎn)化數(shù)據(jù)管理,而且使應(yīng)用程序的開發(fā)流程更為合理。它使組織數(shù)據(jù)、定義數(shù)據(jù)庫(kù)規(guī)則和建立應(yīng)用程序等工作變得簡(jiǎn)單易行。利用可視化的設(shè)計(jì)工具和向?qū)?,可以快速?chuàng)建表單、查詢和報(bào)表。在VFP中,可以使用數(shù)據(jù)庫(kù)組織和建立表和視圖間的關(guān)系,在使用數(shù)據(jù)庫(kù)時(shí),你可以在表一級(jí)進(jìn)行功能擴(kuò)展,如創(chuàng)建字段級(jí)規(guī)則、設(shè)置默認(rèn)字段值和觸發(fā)器等。VFP 提供了真正無(wú)模式操作,能夠輕松的進(jìn)行對(duì)多個(gè)表單的自動(dòng)協(xié)調(diào),而且很容易的運(yùn)行一個(gè)表單的多個(gè)實(shí)例。還有提供的豐富有

8、事件處理機(jī)制,給用戶提供一個(gè)更豐富的交互環(huán)境。利用表單,可以讓用戶在熟悉的環(huán)境下查看數(shù)據(jù)或?qū)?shù)據(jù)輸入數(shù)據(jù)庫(kù)。但表單提供的遠(yuǎn)不止一個(gè)界面:它還提供豐富的對(duì)象集,這些對(duì)象能響應(yīng)用戶(或系統(tǒng))事件,這樣就能使用戶盡可能方便和直觀的完成信息管理工作。V FP提供了一個(gè)功能強(qiáng)大的表單設(shè)計(jì)器,使得表單的設(shè)計(jì)變得又快又容易。表單和表單集是擁有自己的屬性、事件和方法程序的對(duì)象,在表單設(shè)計(jì)器中可以設(shè)置這些屬性、事件和方法程序。第2章 問題來(lái)源當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不

9、僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計(jì)的。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。

10、數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩?lái)說,缺乏系統(tǒng)、規(guī)范的信息管理手段。盡管有的圖書館有計(jì)算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書館采取手工方式對(duì)圖書借閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書進(jìn)行更改就更

11、加困難了?;谶@些問題,我認(rèn)為有必要建立一個(gè)圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書情況。第3章 總體設(shè)計(jì)3.1 應(yīng)用需求分析圖書管理系統(tǒng)需要滿足來(lái)自三方面的需求,這三個(gè)方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個(gè)人借閱情況及個(gè)人信息的修改;圖書館工作人員對(duì)圖書借閱者的借閱及還書要求進(jìn)行操作,同時(shí)形成借書或還書報(bào)表給借閱者查看確認(rèn);圖書館管理人員的功能最為復(fù)雜,包括對(duì)工作人員、圖書借閱者、圖書進(jìn)行管理和維護(hù)及系統(tǒng)狀態(tài)的查看、維護(hù)并生成催還圖書報(bào)表

12、。圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號(hào)和密碼登錄系統(tǒng),還可以進(jìn)行本人借書情況的查詢和維護(hù)部分個(gè)人信息。一般情況下,圖書借閱者只應(yīng)該查詢和維護(hù)本人的借書情況和個(gè)人信息,若查詢和維護(hù)其他借閱者的借書情況和個(gè)人信息,就要知道其他圖書借閱者的借書證號(hào)和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個(gè)人隱私。圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,所以需對(duì)工作人員登陸本模塊進(jìn)行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應(yīng)的報(bào)表給用戶查看和確認(rèn)。圖書館管理人員功能的信息量大

13、,數(shù)據(jù)安全性和保密性要求最高。本功能實(shí)現(xiàn)對(duì)圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計(jì)、工作人員和管理人員信息查看及維護(hù)。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計(jì)圖書的基本信息;瀏覽、查詢、統(tǒng)計(jì)、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計(jì)圖書館的借閱信息。 3.2 模塊分析3.2.1 功能模塊圖 還書操作 借書操作借還書操作圖書資料管理圖書管理系統(tǒng)學(xué)生資料管理 資料打印 資料查詢 資料刪除資料修改 逾期圖書 書籍排行資料添加3.2.2 模塊分析 “圖書資料管理”模塊“圖書資料管理”模塊主要實(shí)現(xiàn)圖書資料的分條瀏覽、添加、修改、刪除、查詢和打印功能。在表單

14、的“書籍資料”頁(yè)框中可以通過“移動(dòng)記錄工具欄”分條查看系統(tǒng)內(nèi)所有的圖書的詳細(xì)資料,包括圖書的名稱、類別、作者、出版社、購(gòu)買日期等。單擊“命令按鈕工具欄”中的按鈕可以對(duì) “書籍資料”頁(yè)框中的記錄進(jìn)行相應(yīng)的操作。 “學(xué)生資料管理”模塊“學(xué)生資料管理”模塊主要實(shí)現(xiàn)學(xué)生資料的分條瀏覽、添加、修改、刪除、查詢和打印功能。在表單的“學(xué)生資料”頁(yè)框中可以通過“移動(dòng)記錄工具欄”分條查看系統(tǒng)內(nèi)所有的學(xué)生詳細(xì)資料,包括學(xué)生姓名、性別、系別、班級(jí)等資料。單擊“命令按鈕工具欄”中的按鈕可以對(duì)“學(xué)生資料”頁(yè)框中的記錄進(jìn)行相應(yīng)的操作。 “借還書操作”模塊“借還書操作”模塊主要實(shí)現(xiàn)讀者借書記錄的

15、查看、借還書操作、圖書借閱排行榜、查看逾期未歸還圖書和記錄打印等功能。讀者借書記錄查看功能可以查看所有的借書記錄 ,也可以只查看目前尚未歸還的借書記錄。在“讀者借書記錄”表單中單擊“借書”按鈕 ,在打開的“輸入”表單中 ,輸入要借出的圖書編號(hào) ,如果該圖書在館中而且該讀者還能借書 , 則借書成功?!白x者借書記錄”表單中單擊“還書”按鈕 , 在打開的“輸入”表單中輸入要?dú)w還的圖書的圖書編號(hào) ,如果該圖書是被當(dāng)前讀者借出 ,則還書成功。當(dāng)表單中顯示的是讀者未歸還的圖書列表時(shí) , 在列出借書記錄的表格中雙擊要?dú)w還的圖書的“圖書編號(hào)”欄即可將此圖書還入。在“讀者借書記錄”表單中 , 單擊“過期”按鈕

16、, 可以查看系統(tǒng)內(nèi)到了歸還日期而未歸還的圖書的借閱記錄。在“讀者借書記錄”表單中 ,單擊“排行”按鈕 ,可以查看系統(tǒng)內(nèi)借閱次數(shù)在所有圖書內(nèi)排行前10名的圖書的列表。第4章 詳細(xì)設(shè)計(jì)4.1 設(shè)計(jì)創(chuàng)建數(shù)據(jù)庫(kù)4.1.1 設(shè)計(jì)數(shù)據(jù)庫(kù)本系統(tǒng)實(shí)現(xiàn)了系統(tǒng)登錄功能 , 而系統(tǒng)登錄需要賬號(hào)和密碼 , 這就需要 創(chuàng)建一個(gè)“系統(tǒng)帳號(hào)”(Accounts) 數(shù)據(jù)表 , 用來(lái)存儲(chǔ)系統(tǒng)登錄用的賬號(hào)和密碼。本系統(tǒng)要實(shí)現(xiàn)圖書資料和學(xué)生資料的管理 , 所以需要?jiǎng)?chuàng)建 “學(xué)生信息” (Student)數(shù)據(jù)表和“圖書信息 ”(Book) 數(shù)據(jù)表。 “學(xué)生信息 ”(Student) 數(shù)據(jù)表中包含了學(xué)生的“系別”信息 , 在本系統(tǒng)中為了

17、簡(jiǎn)化系別的管理 , 另外創(chuàng)建了一個(gè)“系別”(Xibie)數(shù)據(jù)表用來(lái)存儲(chǔ)系別的信息 , 在“學(xué)生信息”(Student) 數(shù)據(jù)表中只存儲(chǔ)系別的編號(hào)。由于系統(tǒng)要實(shí)現(xiàn)讀者借還書功能、還要實(shí)現(xiàn)讀者借還書記錄的查看 ,所以還需創(chuàng)建一個(gè)“讀者借書記錄 ”(JyRec) 數(shù)據(jù)表來(lái)保存讀者的借閱記錄。4.1.2 創(chuàng)建數(shù)據(jù)庫(kù)“圖書借閱管理系統(tǒng)”作為一個(gè)完整的數(shù)據(jù)庫(kù)管理系統(tǒng) , 在創(chuàng)建階段利用項(xiàng)目管理器可以更好組織管理各種格式的文件 , 因此首先需要?jiǎng)?chuàng)建一個(gè)項(xiàng)目 , 然后在項(xiàng)目管理器創(chuàng)建其他格式的文件。在 VFP 主窗口中選擇“文件”菜單下“新建”子菜單 , 在打開的“新建”對(duì)話框的“文件類型“區(qū)域中選中”項(xiàng)目”

18、,然后單擊右側(cè)的”新建文件”按鈕,打開”創(chuàng)建“對(duì)話框中的”項(xiàng)目文件“文本框中輸入項(xiàng)目名稱 , 在此輸入 "Tushu”,單擊“保存”按鈕即創(chuàng)建了一個(gè)項(xiàng)目。在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中選中“數(shù)據(jù)庫(kù)”單擊右側(cè)的“新建”按鈕,在彈出的“新建數(shù)據(jù)庫(kù)”對(duì)話框中單擊“新建數(shù)據(jù)庫(kù)”, 在彈出的“創(chuàng)建”對(duì)話框的“數(shù)據(jù)庫(kù)名”文本框中輸入數(shù)據(jù)庫(kù)的名稱 , 在此輸入“Tushu”作為數(shù)據(jù)庫(kù)名 , 單擊“保存“按鈕即創(chuàng)建了一個(gè)空的數(shù)據(jù)庫(kù)。在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中打開剛才創(chuàng)建的“Tushu”數(shù)據(jù)庫(kù)的目錄樹,選中“數(shù)據(jù)表”,單擊右側(cè)的“新建”按鈕即可開始數(shù)據(jù)表的創(chuàng)建。本系統(tǒng)中要用到的數(shù)據(jù)表的字段的屬性設(shè)

19、置分別設(shè)置如下?!跋到y(tǒng)賬號(hào)”(Accounts) 數(shù)據(jù)表的宇段屬性設(shè)置如表 1 所示。表1“系統(tǒng)帳號(hào)”(Accounts)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明帳號(hào)字符型字段寬度20,主索引字段,不能為空密碼字符型字段寬度20姓名字符型字段寬度20創(chuàng)建“系統(tǒng)賬號(hào)”(Accounts) 數(shù)據(jù)表后向數(shù)據(jù)庫(kù)中添加一條記錄作為系統(tǒng)的默認(rèn)帳號(hào),該記錄的各字段的值如下 :“cyr”,“cyr”,“楚雅茹”。“學(xué)生信息”(Student) 數(shù)據(jù)表各字段的屬性設(shè)置如表 2 所示。表2“學(xué)生信息”(Student)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明學(xué)號(hào)字符型字段寬度6,主索引字段,輸入掩碼為“999999”姓名

20、字符型字段寬度20性別字符型字段寬度2系別字符型字段寬度4,為普通索引班級(jí)字符型字段寬度10電話字符型字段寬度12,輸入掩碼為“999#9999999”郵件字符型字段寬度30續(xù)表2字段名數(shù)據(jù)類型說明地址字符型字段寬度30“系別信息”(Xibie)數(shù)據(jù)表各字段的屬性設(shè)置如表3所示表3“系別信息”(Xibie)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明系別號(hào)字符型字段寬度4,主索引字段,輸入掩碼為“9999”名稱字符型字段寬度20“圖書信息”(Book)數(shù)據(jù)表各字段的屬性設(shè)置如表4所示表4“圖書信息”(Tushu)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明圖書編號(hào)字符型字段寬度6,主索引字段,輸入掩碼為“AA

21、9999”圖書類別字符型字段寬度10圖書名稱字符型字段寬度40圖書作者字符型字段寬度20出版社字符型字段寬度40購(gòu)買日期日期型字段寬度8購(gòu)買價(jià)格貨幣型字段寬度8借閱次數(shù)數(shù)值型字段寬度4,默認(rèn)值0是否借出邏輯型字段寬度1,默認(rèn)值“.F.”對(duì)“圖書信息”(Book)數(shù)據(jù)表的字段屬性設(shè)置需要說明的是“借閱次數(shù)”和“是否借出”字段的默認(rèn)值一定要設(shè)置,因?yàn)閷?duì)于新添加的圖書,其一定是沒有被借出的,而且其借閱次數(shù)一定是0,所以在表單中向數(shù)據(jù)表添加記錄時(shí),這兩個(gè)字段應(yīng)該是不需要添加的,可以由默認(rèn)值生成?!白x者借書記錄”(JyRec)數(shù)據(jù)表的字段屬性如表5所示。表5“讀者借書記錄”(JyRec)數(shù)據(jù)表字段屬性設(shè)

22、置字段名數(shù)據(jù)類型說明學(xué)號(hào)字符型字段寬度6,普通索引字段,輸入掩碼為“999999”圖書編號(hào)字符型字段寬度6,普通索引字段,輸入掩碼為“AA9999”借閱日期日期型字段寬度8歸還日期日期型字段寬度8數(shù)據(jù)表之間的關(guān)系,將在具體表單的數(shù)據(jù)環(huán)境中設(shè)置。4.2 創(chuàng)建系統(tǒng)主程序VFP 應(yīng)用程序系統(tǒng)需要?jiǎng)?chuàng)建一個(gè)主程序來(lái)驅(qū)動(dòng)各個(gè)表單 , 在項(xiàng)目管理器的“代碼”選項(xiàng)卡中選中“程序”, 單擊“新建”按鈕 , 即可打開程序編輯窗口本系統(tǒng)中需要?jiǎng)?chuàng)建一個(gè)程序main.prg, 用來(lái)設(shè)置系統(tǒng)的工作環(huán)境 , 并驅(qū)動(dòng)其他的程序和表單。將一個(gè)文件設(shè)為項(xiàng)目主文件的方法是在項(xiàng)目管理器中選中該文件 , 然后在右鍵快捷菜單中選擇“設(shè)為

23、主文件”子菜單或者選擇“項(xiàng)目”菜單下“設(shè)為主文件”子菜單即可。一個(gè)文件設(shè)為項(xiàng)目的主文件后 , 該文件的將以粗體顯示main.prg程序的代碼為:(見附表)4.3 創(chuàng)建系統(tǒng)常用類系統(tǒng)主表單中“學(xué)生資料”和“書籍資料”頁(yè)框控件中都需要用到“移動(dòng)記錄工具欄”和“命令按鈕工具欄”, 這兩個(gè)命令按鈕工具欄如果在表單中分別創(chuàng)建會(huì)使工作變得繁瑣,可以采用創(chuàng)建工具欄類 , 然后在表單中用實(shí)例化的方式來(lái)簡(jiǎn)化工作。4.3.1 創(chuàng)建“移動(dòng)記錄工具欄”類“移動(dòng)記錄工具欄”類基于“CommandGroup”基類,存儲(chǔ)于“AdminButton”可視類庫(kù)中,命名為“MoveRecord”?!耙苿?dòng)記錄工具欄”類包括“首記錄

24、”、“上一個(gè)”、“下一個(gè)”和“末記錄”4個(gè)按鈕,在表單中可以利用這 4 個(gè)按鈕定位數(shù)據(jù)表中的記錄指針。創(chuàng)建好的 " 移動(dòng)記錄工具欄 " 類效果如下圖所示。需要指出的是,在本系統(tǒng)中當(dāng)鼠標(biāo)移動(dòng)到按鈕上時(shí),鼠標(biāo)指針變?yōu)橐粋€(gè)特定指針,這就需要一個(gè)鼠標(biāo)指定文件,在本系統(tǒng)中使用“H_point.cur”文件,將該鼠標(biāo)指針文件放在系統(tǒng)的根目錄下,添加按鈕“MouseMove”事件如下:(見附表)4.3.2 創(chuàng)建“命令按鈕工具欄”類“命令按鈕工具欄”類基于“CommandGroup”基類,存儲(chǔ)于“AadminButton”可視類庫(kù)中,命名為“AdmButGrp”?!懊畎粹o工具欄”類中包含

25、“增加”(CmdAdd)、“修改”(Cmdmod)、“刪除”(Cmddel)、“查詢”(CmdSer)、“打印”(Cmdpri)、“保存”(CmdSave)、“取消”(CmdCancel)和“退出”(CmdExit)8個(gè)按鈕。由于“命令按鈕工具欄”類中的按鈕在不同的表單中的作用不同,所以不必在類中添加控鈕的代碼,可以采用在表單中將類實(shí)例化后再添加代碼的方式。設(shè)置“命令按鈕工具欄”類及其控件的屬性如表6所示。表6“命令按鈕工具欄”類及其控件屬性控件屬性屬性取值ambutgrpButtonCount8Height330Width60按鈕控件FontBold.T.FontSize15FontName

26、楷體GB_2312Height35Width60cmdaddCaption新增ToolTipText新增記錄cdmodCapion修改ToolTipText修改當(dāng)前記錄cmddelCapion刪除ToolTipText刪除當(dāng)前記錄mdserCapion查詢ToolTipText查詢當(dāng)前記錄cdsaveCapion保存ToolTipText保存修改cdcancelCapion取消ToolTipText取消修改cmdpriCapion打印續(xù)表6控件屬性屬性取值ToolTipText打印當(dāng)前記錄CmdexitCapion退出ToolTipText退出當(dāng)前表單創(chuàng)建好的表單效果如下圖所示與“移動(dòng)記錄工具

27、欄”類相同,為了改變鼠標(biāo)停留在按鈕時(shí)的指針,還需添加按鈕的“MouseMove”事件,代碼與“移動(dòng)記錄工具欄”類中的相同。4.4 創(chuàng)建系統(tǒng)主表單系統(tǒng)主表單由兩個(gè)選項(xiàng)卡組成,下面分別介紹這兩個(gè)選項(xiàng)卡的創(chuàng)建。4.4.1 系統(tǒng)主表單的功能系統(tǒng)主表單在提供系統(tǒng)界面的同時(shí)還包含一個(gè)含有兩個(gè)頁(yè)框的頁(yè)框控件,系統(tǒng)利用這兩個(gè)頁(yè)框控件來(lái)管理“學(xué)生信息”(Student) 數(shù)據(jù)表和“圖書信息”(Book)數(shù)據(jù)表中的數(shù)據(jù),利用這兩個(gè)頁(yè)框可以對(duì)這兩張數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行查看、添加、修改、刪除、查詢和打印等操作。同時(shí) ,系統(tǒng)主表單還將用來(lái)調(diào)用系統(tǒng)的借還書模塊。4.4.2 創(chuàng)建系統(tǒng)主表單界面在“表單設(shè)計(jì)器”中創(chuàng)建一個(gè)表單作

28、為系統(tǒng)主表單,命名為“MainForm”。創(chuàng)建好的表單效果中有兩個(gè)頁(yè)框,其中“學(xué)生資料”頁(yè)面效果如下圖所示。創(chuàng)建好的“書籍資料”頁(yè)框效果如下圖所示。將“學(xué)生信息”(Student)數(shù)據(jù)表、“系別信息”(Xibie)數(shù)據(jù)表、“圖書信息”(Book)數(shù)據(jù)表、“讀者借書記錄”(JyRec)數(shù)據(jù)表添加到表單的數(shù)據(jù)環(huán)境中,用“系別信息”(Xibie)數(shù)據(jù)表的“系別號(hào)”字段和“學(xué)生信息”(Student)數(shù)據(jù)表的“系別”索引建立關(guān)聯(lián)。在表單的數(shù)據(jù)環(huán)境中,“學(xué)生信息”(Student)數(shù)據(jù)表和“圖書信息”(Book)數(shù)據(jù)表的BufferModeOverRide屬性設(shè)置為“3-開放式緩沖”,Exclusive

29、屬性設(shè)置為“.T.”。設(shè)置系統(tǒng)主表單屬性如表7所示。表7系統(tǒng)主表單(MainForm)屬性設(shè)置表單屬性取值A(chǔ)utoCenter.T.BorderStyle2-固定對(duì)話框BufferMode0ControlBox.T.Caption圖書借閱管理系統(tǒng)Closable.F.DeskTop.F.Hight385Width612NameMainFormMdiForm.T.MaxButton.T.Picturebg.bmpMinButton.T.ShowWindow2-作為頂層表單ShowTips.T.TitleBar1-打開WindowState0-普通WindowType1-模式設(shè)置好系統(tǒng)主表單屬性后

30、向表單中添加兩個(gè)頁(yè)框控件,將頁(yè)框控件的第一個(gè)頁(yè)面作為“學(xué)生資料”(StuPage)頁(yè)面,使頁(yè)框控件處于編輯狀態(tài),然后從數(shù)據(jù)環(huán)境中將要在“學(xué)生資料”頁(yè)面中顯示的字段拖放到表單中,并將“性別”字段生成的文本框控件刪除,再添加一個(gè)選項(xiàng)按鈕組控件來(lái)顯示該字段的數(shù)據(jù),將“系別”字段生成的文本框控件刪除,再添加一個(gè)組合框控件來(lái)顯示該字段的數(shù)據(jù),另外將“系別信息”(Xibie)數(shù)據(jù)表中的“名稱”字段添加到“學(xué)生資料”頁(yè)面中。將“移動(dòng)記錄工具欄”(MoveRecord)和“命令按鈕工具欄”(CmdButGrp)類在“學(xué)生資料”(StuPage)頁(yè)面中實(shí)例化,并命名為“StuAbg”和“StuMr”。在向頁(yè)面中

31、添加控件時(shí)一定要注意使頁(yè)框處于可編輯狀態(tài),即頁(yè)框外一個(gè)藍(lán)色的虛框,如果只是選擇了頁(yè)框控件,則此時(shí)向表單中添加控件只是向表單中添加控件,其在表單結(jié)構(gòu)中的位置是與頁(yè)框控件平行的。設(shè)置“學(xué)生資料”(StuPage)頁(yè)面及其控件的屬性如表8所示。表8系統(tǒng)主表單“學(xué)生資料”(StuPage)頁(yè)面及控件屬性設(shè)置控件屬性屬性取值StuPageCaption學(xué)生資料FontBlod.T.FontSize14FontName隸書PictureBgl.bmp標(biāo)簽控件AutoSize.T.BackStyle0-透明FontBlod.T.ForeColor0,0,0FontSize16FontName楷體GB_231

32、2續(xù)表8控件屬性屬性取值WordWrap.F.文本框控件FontSize12Height25StuMrHeight35Width320StuAbgHeight132Width168Txt學(xué)號(hào)ControlSourceStudent.學(xué)號(hào)IMEMode2-關(guān)閉IMEReadOnly.T.StuogpControlSourceStudent.性別Txt姓名ControlSourceStudent.姓名IMEMode1-打開IMEReadOnly.F.Txt班級(jí)ControlSourceStudent.班級(jí)IMEMode1-打開IMEReadOnly.F.Cmb系別ControlSourcestud

33、ent.系別RowSourcexibie.系編號(hào)RowSourceType6-字段續(xù)表8控件屬性屬性取值Style2-下拉列表框Txt名稱ControlSourceXibie.名稱IMEMode1-打開IMEReadOnly.T.Txt地址ControlSourcestudent.地址IMEMode1-打開IMEReadOnly.F.Txt電話ControlSourcestudent.電話IMEMode1-打開IMEReadOnly.F.Txt郵件ControlSourcestudent.郵件IMEMode1-打開IMEReadOnly.F.CmdjhCaption借還書頁(yè)框的兩個(gè)頁(yè)面中的另一

34、個(gè)頁(yè)框用來(lái)作為“書籍資料”(BookPage) 頁(yè)面,從表單的數(shù)據(jù)環(huán)境中將需要在“書籍資料”(BookPage) 頁(yè)面中顯示宇段拖放到頁(yè)面中,并添加到頁(yè)面中的控件進(jìn)行一些調(diào)整,包括將“是否借出”字段生成的控件刪除,添加一個(gè)標(biāo)簽控件,再根據(jù)該字段的值顯示圖書的狀態(tài)。將“移動(dòng)記錄工具欄”類和“命令按鈕工具欄”類在“書籍資料”(BookPage)頁(yè)面中實(shí)例化 ,并重新命名為“BookMr”和“BookAbg”。向表單中添加一個(gè)按鈕 ,再添加一個(gè)名為“MicroSoft MonthView Contro1,Verdion6.0”的ActiveX控件,并命名為“SjOleRq”。設(shè)置“書籍資料”(Boo

35、kPage)頁(yè)面及頁(yè)面中控件的屬性如表9所示。表9系統(tǒng)主表單“書籍資料”(BookPage)頁(yè)面及控件屬性設(shè)置控件屬性屬性取值BookPageCaption書籍資料FontBold.T.FontSize14ForeName隸書PictureBgl.bmp標(biāo)簽控件AutoSize.T.BackStyle0-透明FontBold.T.ForeColor0,0,0FontSize16ForeName楷體GB_2312WordWrap.F.文本框控件FontSize12Height25BookMrHeight35Width320BookAbgHeight132Width168LblStausAutoS

36、ize.T.續(xù)表9控件屬性屬性取值BackStyle1-不透明Caption在館中FontBold.T.FontSize16ForeName楷體GB_2312Txt圖書編號(hào)ControlSourceBook.圖書編號(hào)IMEMode1-打開IMEReadOnly.F.Txt圖書名稱ControlSourceBook.圖書名稱IMEMode1-打開IMEReadOnly.F.Txt圖書類別ControlSourceBook.圖書類別IMEMode1-打開IMEReadOnly.F.Txt圖書作者ControlSourceBook.圖書作者IMEMode1-打開IMEReadOnly.T.Txt購(gòu)買

37、日期ControlSourceBook.購(gòu)買日期IMEMode2-關(guān)閉IMEReadOnly.F.續(xù)表9控件屬性屬性取值Txt出版社ControlSourceBook.出版社IMEMode1-打開IMEReadOnly.F.Txt購(gòu)買價(jià)格ControlSourceBook.購(gòu)買價(jià)格IMEMode2-關(guān)閉IMEReadOnly.F.Txt購(gòu)買價(jià)格ControlSourceBook.借閱次數(shù)IMEMode2-關(guān)閉IMEReadOnly.T.CmdrqCaptionSjOleRqVisible.F.4.4.3 添加表單代碼 為了方便描述,系統(tǒng)主表單中的代碼將分為三部分來(lái)介紹,其中主表單中整個(gè)表單的代

38、碼和兩個(gè)頁(yè)面的代碼將分開介紹。 添加表單中的代碼 需要在系統(tǒng)主表單中添加4個(gè)屬性“StuFM”、“StuOR”、“BookFM”和“BookOR”,分別用來(lái)識(shí)別表單中“學(xué)生信息”(StuPage)頁(yè)面的狀態(tài),頁(yè)面中的數(shù)據(jù)記錄的指針的位置,“書籍信息”(BookPage)頁(yè)面的狀態(tài)和頁(yè)面中數(shù)據(jù)記錄指針的位置。在表單中添加完這4個(gè)屬性后,將這4個(gè)屬性初始值設(shè)為“cbrowse”、0、“cbrowse”和0。添加4個(gè)表單的方法屬性“StuModeBrse”、“StuModeMody”、“BookModeBrse”和“BookModeMody”,分別用來(lái)使“學(xué)生信息”(StuPage)和

39、“書籍信息”(BookPage)頁(yè)面進(jìn)入瀏覽和非瀏覽狀態(tài)?!癝tuModeBrse”方法屬性用來(lái)使“學(xué)生信息”(StuPage)頁(yè)面進(jìn)入瀏覽狀態(tài)?!皩W(xué)生信息”(StuPage)頁(yè)面的瀏覽狀態(tài)是指頁(yè)面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處于不可編輯狀態(tài),“移動(dòng)記錄工具欄”處于可用狀態(tài),“命令按鈕工具欄”中除了“保存”和“取消”按鈕外都處于可用狀態(tài),“借還書”按鈕處于可用狀態(tài)?!癝tuModeBrse”方法屬性的代碼如下:(見附表)“StuModeMody”方法屬性用來(lái)使表單的“學(xué)生信息”(StuPage)頁(yè)面進(jìn)入非瀏覽狀態(tài),該頁(yè)面的非瀏覽狀態(tài)是指頁(yè)面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處于可修改狀態(tài),“移動(dòng)記錄工具

40、欄”處于不可用狀態(tài),“命令按鈕工具欄”中除了“保存”和“取消”按鈕外其他按鈕都處于不可用狀態(tài),“借還書”按鈕處于可用狀態(tài),“書籍信息”頁(yè)面處于不可用狀態(tài)?!癝tuModeMody”方法屬性的代碼如下:(見附表)“BookModeBrse”方法屬性用來(lái)使“書籍信息”(BookPage)頁(yè)面進(jìn)入瀏覽狀態(tài)?!皶畔ⅰ保˙ookPage)頁(yè)面的瀏覽狀態(tài)是指頁(yè)面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處于不可編輯狀態(tài),“移動(dòng)記錄工具欄”處于可用狀態(tài),“命令按鈕工具欄”中除了“保存”和“取消”按鈕外都處于可用狀態(tài),“借還書”按鈕處于可用狀態(tài),“學(xué)生信息”(StuPage)頁(yè)面處于可用狀態(tài)?!癇ookModeBrse”

41、方法屬性的代碼如下:(見附表)“BookModeMody”方法屬性用來(lái)使“書籍信息”(BookPage)頁(yè)面進(jìn)入非瀏覽狀態(tài),“書籍信息”(BookPage)頁(yè)的非瀏覽狀態(tài)是指頁(yè)面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處于可修改狀態(tài),“移動(dòng)記錄工具欄”處于不可用狀態(tài),“命令按鈕工具欄”中除了“保存”和“取消”按鈕外其他按鈕都處于不可用狀態(tài),“購(gòu)買日期”欄后的“.”按鈕處于可用狀態(tài),“學(xué)生信息”頁(yè)面處于不可用狀態(tài)?!癇ookModeMody”方法屬性的代碼如下:(見附表)添加完表單的屬性后,由于系統(tǒng)中需要利用幾個(gè)全局變量在表單中傳遞數(shù)據(jù),所以需要在主表單中聲明這幾個(gè)全局變量。添加表單的Init事件代碼如下:

42、PUBLIC StudentNO,StuTj,BookTj,DbName這幾個(gè)全局變量的作用分別如下:“StudentNO”是當(dāng)系統(tǒng)主表單調(diào)用“讀者借書記錄”表單時(shí),向該表單傳遞系統(tǒng)主表單的“學(xué)生信息”頁(yè)面中記錄的學(xué)號(hào)值,以便讓“讀者借書記錄”表單顯示該學(xué)號(hào)的資料。“StuTj”和“BookTj”用在“學(xué)生信息”和“書籍信息”兩個(gè)頁(yè)面的“輸入查詢條件”表單和“查詢結(jié)果”表單之間傳遞查詢條件的值。“DbName”用在“學(xué)生信息”和“書籍信息”兩個(gè)頁(yè)面共用一個(gè)“選擇打印類型”表單時(shí),用于區(qū)分該全局變量是應(yīng)該打印那一張報(bào)表。 添加“學(xué)生信息”頁(yè)面代碼在“學(xué)生信息”(StuPage)被激

43、活時(shí),應(yīng)該將“學(xué)生信息”(Student)數(shù)據(jù)表所在工作區(qū)作為表單的當(dāng)前工作區(qū),取消由其他表單設(shè)置的過慮條件,并且使頁(yè)面進(jìn)入瀏覽狀態(tài)。添加“學(xué)生信息”頁(yè)面的Activate事件代碼如下:(見附表)“學(xué)生信息”頁(yè)面中的“系別”組合框中選擇某一個(gè)系編號(hào)后,要在“名稱”欄顯示系統(tǒng)編號(hào)所代碼的系別名稱,由于在數(shù)據(jù)環(huán)境中將兩者做了關(guān)連,所以在選擇了某個(gè)系編號(hào)后只需要刷新表單即可。添加“cmb系別”組合框的Valid事件代碼如下:THISFORM.PF.StuPgge.txt系別.REFRESH()“移動(dòng)記錄工具欄”中按鈕的代碼已經(jīng)在類中創(chuàng)建,而且這些代碼在各個(gè)表單中完全相同,不需要再另行添加?!懊畎粹o

44、工具欄”中“增加”(Cmdadd)按鈕的作用是先保存頁(yè)中當(dāng)前的記錄號(hào),標(biāo)記表單的狀態(tài)為新增狀態(tài),然后在表單的數(shù)據(jù)緩沖區(qū)新建一條記錄,并且使當(dāng)前頁(yè)面進(jìn)入非瀏覽狀態(tài)。“增加”(Cmdadd)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“修改”(Cmdmod)按鈕的作用是保存頁(yè)面在當(dāng)前記錄的記錄號(hào),標(biāo)記表單的狀態(tài)為修改狀態(tài),然后使表單中的當(dāng)前頁(yè)面進(jìn)入非瀏覽狀態(tài)?!靶薷摹保–mdmod)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“刪除”(Cmddel)按鈕的作用首先彈出確認(rèn)對(duì)話框,如果確認(rèn)則進(jìn)行刪除操作。由于本系統(tǒng)中學(xué)生的信息也會(huì)在別的數(shù)據(jù)表中出現(xiàn),如果在該數(shù)據(jù)表中刪

45、除了學(xué)生的數(shù)據(jù),而在其他數(shù)據(jù)表中保存會(huì)造成信息的多余與不便,所以本系統(tǒng)采取的方式是如果在“學(xué)生信息”數(shù)據(jù)表中刪除了某一個(gè)學(xué)生的數(shù)據(jù),則在其他的數(shù)據(jù)表(主要是指“讀者借書記錄”數(shù)據(jù)表)刪除與該學(xué)生有關(guān)的一切記錄,但是如果該學(xué)生在刪除時(shí)仍有未歸還的圖書,系統(tǒng)將不允許刪除。“刪除”(Cmddel)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“查詢”(CmdSer)按鈕的作用是調(diào)用“輸入查詢條件”表單,其Click事件代碼如下:DO FORM StuSer“命令按鈕工具欄”中“保存”(CmdSave)按鈕的作用是檢查表單中各數(shù)據(jù)欄中數(shù)據(jù)的輸入完整情況,如果無(wú)誤,則保存記錄?!氨4妗保–

46、mdSave)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“取消”(CmdCancel)按鈕的作用是刪除表單的數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),并使當(dāng)前頁(yè)面回到瀏覽狀態(tài)?!叭∠保–mdCancel)按鈕的Clixk事件代碼如下:(見附表)“命令按鈕工具欄”中“打印”(Cmdpri)按鈕的作用是將“DbfName”全局變量賦值,表明要進(jìn)行打印的是“學(xué)生信息”數(shù)據(jù)表,并調(diào)用“選擇打印類型”表單。“打印”(CmdPri)按鈕的Click事件代碼如下:DbfName=”StuDbf”DO FORM PrintLX“命令按鈕工具欄”中“退出”(Cmdexit)按鈕的作用是彈出確認(rèn)對(duì)話框,如果確認(rèn)則是退

47、出當(dāng)前表單,清除事件循環(huán)并退出系統(tǒng)?!巴顺觥保–mdexti)按鈕的Click事件代碼如下(見附表)“學(xué)生信息”頁(yè)面中“借還書”(Cmdjh)按鈕的作用是將頁(yè)面中當(dāng)前記錄的“學(xué)號(hào)”值賦給全局變量“StudentNO”,并調(diào)用“讀者借書記錄”表單。“借還書”(Cmdjh)按鈕的Click事件代碼如下:StudentNO=ALLTRIM(THISFORM.PF.StuPage.txt學(xué)號(hào).VALUE)DO FORM JyRec 添加“書籍信息”頁(yè)面代碼在“書籍信息”(BookPage)頁(yè)面被激活時(shí),表單中的當(dāng)前數(shù)據(jù)工作期應(yīng)該變?yōu)椤皥D書信息”數(shù)據(jù)表所在的工作期,將可能由其他表單對(duì)該數(shù)據(jù)

48、表設(shè)置的過慮條件去掉,同時(shí)要使該頁(yè)面進(jìn)入瀏覽狀態(tài)。添加該頁(yè)面的“Activate”事件代碼如下:(見附表)由于該頁(yè)面要在刷新表單時(shí),顯示表單中當(dāng)前記錄的書籍是否借出,故添加該頁(yè)面的Refresh事件代碼如下:(見附表)在“書籍信息”(BookPage)頁(yè)面在通過添加的MonthView控件(SjOleRq)來(lái)輸入圖書的購(gòu)買日期,在該頁(yè)面處于非瀏覽狀態(tài)時(shí)單擊“.”按鈕即可調(diào)用該控件。添加“.”(Cmdrq)按鈕的Click事件代碼如下:THISFORM.PF.BookPage.Sjolerq.VISIBLE=.T.如果要從“SjOlerRq”控件中獲得日期值還需要添加“SjOlerRq”的“Da

49、teClick”事件代碼如下:(見附表)如果在頁(yè)面中打開了該控件,但卻發(fā)現(xiàn)不需要對(duì)日期值進(jìn)行更改,這時(shí)應(yīng)該提供一種可以在不對(duì)日期進(jìn)行更改就退出該控件的方法。在這時(shí)采用右鍵單擊隱藏控件的方法。添加“SjOlerRq”的MouseDown事件代碼如下:(見附表)“命令按鈕工具欄”中“增加”(Cmdadd)按鈕的作用是保存頁(yè)面中數(shù)據(jù)記錄的指針位置,將頁(yè)面的狀態(tài)標(biāo)記為新增狀態(tài),再在表單事件緩沖區(qū)內(nèi)新建一條記錄,并使頁(yè)面進(jìn)入非瀏覽狀態(tài)?!疤砑印保–mdadd)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“刪除”(Cmdadd)按鈕的作用是彈出確認(rèn)對(duì)話框,如果確認(rèn),則檢查要?jiǎng)h除的圖書是否在

50、庫(kù)中,如查不在則彈出出錯(cuò)對(duì)話框,如果在庫(kù)中則首先刪除“讀者借書記錄”(Jyrec)數(shù)據(jù)表中的與要?jiǎng)h除的圖書有關(guān)的所有記錄,再刪除該圖書記錄,刪除成功后彈出“刪除成功”對(duì)話框?!皠h除”(Cmddel)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“查詢”(CmdSer)按鈕的作用是調(diào)用“輸入查詢條件”表單,該按鈕的Click事件代碼如下:DO FORM BookSer“命令按鈕工具欄”中“保存”(CmdSave)按鈕的作用是在單擊按鈕時(shí),檢查頁(yè)面中數(shù)據(jù)的輸入情況,如果無(wú)誤則保存數(shù)據(jù),并彈出“保存成功”對(duì)話框,否則指出錯(cuò)誤,并將光標(biāo)定位在錯(cuò)誤處,等待用戶修改?!氨4妗保–mdSave

51、)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“取消”(CmdCancel)按鈕的作用是將表單的數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)刪除并使表單回到瀏覽狀態(tài)?!叭∠保–mdCancel)按鈕的Click事件代碼如下:(見附表)“命令按鈕工具欄”中“打印”(Cmdpri)按鈕的作用是將全局變量“DbfName”賦值,并調(diào)用“選擇打印類型”表單?!按蛴 保–mdpri)按鈕的Click事件代碼如下: DbfName=”BookDbf”DO FORM PrintLX“命令按鈕工具欄”中“退出”(Cmdexit)按鈕的作用是彈出確認(rèn)對(duì)話框,如果確認(rèn)則退出當(dāng)前表單,清除事件循環(huán)并退出系統(tǒng)?!巴顺觥保–mdexit)按鈕的Click事件代碼如下:(見附表)4.4.4 創(chuàng)建系統(tǒng)主表單輔助表單系統(tǒng)主表單的輔助表單主要包括“學(xué)生信息”頁(yè)面和“圖書信息”頁(yè)面的查詢功能和一個(gè)“選擇打印類型”表單。4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論