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

下載本文檔

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

文檔簡介

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

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

3、3.2.2 模塊分析8第4章 詳細設計 10§4.1 設計創(chuàng)建數(shù)據(jù)庫10§4.1.1 設計數(shù)據(jù)庫10§4.1.2 創(chuàng)建數(shù)據(jù)庫10§4.2 創(chuàng)建系統(tǒng)主程序13§4.3 創(chuàng)建系統(tǒng)常用類13§4.3.1 創(chuà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é)束語53致謝54參考文獻55第1章 基礎理論知識1.1 數(shù)據(jù)庫應用系統(tǒng)開發(fā)簡介在數(shù)據(jù)庫應用系統(tǒng)開發(fā)之前,對開發(fā)數(shù)據(jù)庫的基本概念應當了解,對數(shù)據(jù)庫的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫應用程序的步驟、開發(fā)體系及方法都應當有相當清晰的了解和認識。數(shù)據(jù)庫應用系統(tǒng)開發(fā)的目標是建立一個滿足用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設計。把設計轉(zhuǎn)變?yōu)閷?/p>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

23、主文件”子菜單或者選擇“項目”菜單下“設為主文件”子菜單即可。一個文件設為項目的主文件后 , 該文件的將以粗體顯示main.prg程序的代碼為:(見附表)4.3 創(chuàng)建系統(tǒng)常用類系統(tǒng)主表單中“學生資料”和“書籍資料”頁框控件中都需要用到“移動記錄工具欄”和“命令按鈕工具欄”, 這兩個命令按鈕工具欄如果在表單中分別創(chuàng)建會使工作變得繁瑣,可以采用創(chuàng)建工具欄類 , 然后在表單中用實例化的方式來簡化工作。4.3.1 創(chuàng)建“移動記錄工具欄”類“移動記錄工具欄”類基于“CommandGroup”基類,存儲于“AdminButton”可視類庫中,命名為“MoveRecord”?!耙苿佑涗浌ぞ邫凇鳖惏ā笆子涗?/p>

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

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

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

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

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

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

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

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

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

33、ent.系別RowSourcexibie.系編號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借還書頁框的兩個頁面中的另一

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論