畢業(yè)設(shè)計-圖書管理系統(tǒng)_第1頁
畢業(yè)設(shè)計-圖書管理系統(tǒng)_第2頁
畢業(yè)設(shè)計-圖書管理系統(tǒng)_第3頁
畢業(yè)設(shè)計-圖書管理系統(tǒng)_第4頁
畢業(yè)設(shè)計-圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計闡明書圖書管理系統(tǒng)學(xué)生姓名:平晉昇學(xué)號:H0491B11學(xué)院:中北大學(xué)成人教育學(xué)院專業(yè):計算機(jī)科學(xué)技術(shù)指導(dǎo)教師:馬巧梅10月圖書管理系統(tǒng)摘要本文首先簡介了數(shù)據(jù)庫管理系統(tǒng)(DBMS)的基本概念及關(guān)系模型等。然后對問題的來源進(jìn)行深入分析,指出圖書借閱者、圖書館工作人員和圖書館管理人員是問題重要來源,并指出本數(shù)據(jù)管理系統(tǒng)的實用性功能就是管理好圖書館信息,提高工作效率,防止數(shù)據(jù)處理手工操作,工作量大,出錯率高的弊端。接著對需求分析進(jìn)行細(xì)致的分析,尤其對圖書借閱者、圖書館工作人員和圖書館管理人員三者權(quán)限進(jìn)行分派。接著對系統(tǒng)功能模塊進(jìn)行分析,指出本系統(tǒng)功能模塊重要分為“圖書資料管理”模塊、“學(xué)生資料管理”模塊、“借還書操作”模塊。總的來說,本圖書管理系統(tǒng),簡介了該系統(tǒng)構(gòu)成構(gòu)造、功能特點、使用原理和措施,本系統(tǒng)實現(xiàn)了系統(tǒng)登陸、圖書管理、學(xué)生管理圖書的借閱與償還、圖書借閱排行榜和查看逾期未還圖書以及多種信息的打印等功能。有了這個系統(tǒng)就使圖書館的工作變得簡樸了許多,使圖書館的圖書管理形成了一種整體自動化管理模式。關(guān)鍵詞:VisualForPro6.0,數(shù)據(jù)庫管理,SQL語言,圖書管理目錄1緒論???……………11.1系統(tǒng)開發(fā)背景和意義………11.2開發(fā)環(huán)境……………………12總體設(shè)計………………………12.1應(yīng)用需求分析………………12.2模塊分析……………………22.2.1功能模塊圖……………2.2.2模塊分析………………3詳細(xì)設(shè)計………………………33.1設(shè)計創(chuàng)立數(shù)據(jù)庫……………33.1.1設(shè)計數(shù)據(jù)庫………………3.1.2創(chuàng)立數(shù)據(jù)庫………………3.2創(chuàng)立系統(tǒng)主程序……………63.3創(chuàng)立系統(tǒng)常用類……………73.3.1創(chuàng)立“移動記錄工具欄”類…………3.3.2創(chuàng)立“命令按鈕工具欄”類…………3.4創(chuàng)立系統(tǒng)主表單…………93.4.1系統(tǒng)主表單的功能……………………3.4.2創(chuàng)立系統(tǒng)主表單界面……………………3.4.3添加表單代碼………3.4.4創(chuàng)立系統(tǒng)主表單輔助表單……………3.5創(chuàng)立“讀者借書記錄”模塊…………………323.5.1主表單的功能…………3.5.2創(chuàng)立主表單界面………3.5.3添加主表單代碼………3.5.4創(chuàng)立輔助表單…………3.6創(chuàng)立系統(tǒng)打印功能………444結(jié)論……………………45參照文獻(xiàn)……………………47道謝……………481緒論1.1系統(tǒng)開發(fā)背景和意義圖書管理是高校內(nèi)每一種系部或院部都必須切實面對的工作,老式的人工方式存在著許多缺陷,如效率低、保密性差且較為繁瑣。此外,伴隨圖書資料數(shù)量的增長,其工作量也將大大增長,這必將增長圖書資料管理者的工作量和勞動強度,這將給圖書資料信息的查找、更新和維護(hù)都帶來了諸多困難。伴隨科學(xué)技術(shù)的不停提高,這種老式的手工管理措施必然被以計算機(jī)為基礎(chǔ)的信息管理措施所取代。圖書管理作為計算機(jī)應(yīng)用的一種分支,有著手工管理無法比擬的長處,如檢索迅速、查找以便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些長處可以極大地提高圖書管理的效率。因此,開發(fā)一套可認(rèn)為顧客提供充足的信息和快捷的查詢手段的圖書管理系統(tǒng),將是非常必要的,也是十分及時的。1.2開發(fā)環(huán)境開發(fā)環(huán)境的選擇會影響到數(shù)據(jù)庫的設(shè)計,因此在這里給出圖書管理系統(tǒng)開發(fā)與運行環(huán)境的選擇如下:開發(fā)環(huán)境:WindowsXP開發(fā)工具:VisualForPro6.02總體設(shè)計2.1應(yīng)用需求分析圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱狀況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書規(guī)定進(jìn)行操作,同步形成借書或還書報表給借閱者查看確認(rèn);圖書館管理人員的功能最為復(fù)雜,包括對工作人員、圖書借閱者、圖書進(jìn)行管理和維護(hù)及系統(tǒng)狀態(tài)的查看、維護(hù)并生成催還圖書報表。圖書借閱者可直接查看圖書館圖書狀況,假如圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進(jìn)行本人借書狀況的查詢和維護(hù)部分個人信息。一般狀況下,圖書借閱者只應(yīng)當(dāng)查詢和維護(hù)本人的借書狀況和個人信息,若查詢和維護(hù)其他借閱者的借書狀況和個人信息,就要懂得其他圖書借閱者的借書證號和密碼。這些是很難得到的,尤其是密碼,因此不僅滿足了圖書借閱者的規(guī)定,還保護(hù)了圖書借閱者的個人隱私。圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,因此需對工作人員登陸本模塊進(jìn)行更多的考慮。在此模塊中,圖書館工作人員可認(rèn)為圖書借閱者加入借書記錄或是還書記錄,并打印生成對應(yīng)的報表給顧客查看和確認(rèn)。圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性規(guī)定最高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱狀況信息的管理和記錄、工作人員和管理人員信息查看及維護(hù)。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、記錄圖書的基本信息;瀏覽、查詢、記錄、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、記錄圖書館的借閱信息。2.2模塊分析2.2.1功能模塊圖還書操作借書操作借還書操作圖書資料管理圖書管理系統(tǒng)學(xué)生資料管理資料打印資料查詢資料刪除資料修改逾期圖書書籍排行還書操作借書操作借還書操作圖書資料管理圖書管理系統(tǒng)學(xué)生資料管理資料打印資料查詢資料刪除資料修改逾期圖書書籍排行資料添加資料添加2.2.2模塊分析2.2.2.1“圖書資料管理”模塊“圖書資料管理”模塊重要實現(xiàn)圖書資料的分條瀏覽、添加、修改、刪除、查詢和打印功能。在表單的“書籍資料”頁框中可以通過“移動記錄工具欄”分條查看系統(tǒng)內(nèi)所有的圖書的詳細(xì)資料,包括圖書的名稱、類別、作者、出版社、購置日期等。單擊“命令按鈕工具欄”中的按鈕可以對“書籍資料”頁框中的記錄進(jìn)行對應(yīng)的操作。2.2.2.2“學(xué)生資料管理”模塊“學(xué)生資料管理”模塊重要實現(xiàn)學(xué)生資料的分條瀏覽、添加、修改、刪除、查詢和打印功能。在表單的“學(xué)生資料”頁框中可以通過“移動記錄工具欄”分條查看系統(tǒng)內(nèi)所有的學(xué)生詳細(xì)資料,包括學(xué)生姓名、性別、系別、班級等資料。單擊“命令按鈕工具欄”中的按鈕可以對“學(xué)生資料”頁框中的記錄進(jìn)行對應(yīng)的操作。2.2.2.3“借還書操作”模塊“借還書操作”模塊重要實現(xiàn)讀者借書記錄的查看、借還書操作、圖書借閱排行榜、查看逾期未償還圖書和記錄打印等功能。讀者借書記錄查看功能可以查看所有的借書記錄,也可以只查看目前尚未償還的借書記錄。在“讀者借書記錄”表單中單擊“借書”按鈕,在打開的“輸入”表單中,輸入要借出的圖書編號,假如該圖書在館中并且該讀者還能借書,則借書成功。“讀者借書記錄”表單中單擊“還書”按鈕,在打開的“輸入”表單中輸入要償還的圖書的圖書編號,假如該圖書是被目前讀者借出,則還書成功。當(dāng)表單中顯示的是讀者未償還的圖書列表時,在列出借書記錄的表格中雙擊要償還的圖書的“圖書編號”欄即可將此圖書還入。在“讀者借書記錄”表單中,單擊“過期”按鈕,可以查看系統(tǒng)內(nèi)到了償還日期而未償還的圖書的借閱記錄。在“讀者借書記錄”表單中,單擊“排行”按鈕,可以查看系統(tǒng)內(nèi)借閱次數(shù)在所有圖書內(nèi)排行前10名的圖書的列表。3詳細(xì)設(shè)計3.1設(shè)計創(chuàng)立數(shù)據(jù)庫3.1.1本系統(tǒng)實現(xiàn)了系統(tǒng)登錄功能,而系統(tǒng)登錄需要賬號和密碼,這就需要創(chuàng)立一種“系統(tǒng)帳號”(Accounts)數(shù)據(jù)表,用來存儲系統(tǒng)登錄取的賬號和密碼。本系統(tǒng)要實現(xiàn)圖書資料和學(xué)生資料的管理,因此需要創(chuàng)立“學(xué)生信息”(Student)數(shù)據(jù)表和“圖書信息”(Book)數(shù)據(jù)表。“學(xué)生信息”(Student)數(shù)據(jù)表中包括了學(xué)生的“系別”信息,在本系統(tǒng)中為了簡化系別的管理,此外創(chuàng)立了一種“系別”(Xibie)數(shù)據(jù)表用來存儲系別的信息,在“學(xué)生信息”(Student)數(shù)據(jù)表中只存儲系別的編號。由于系統(tǒng)要實現(xiàn)讀者借還書功能、還要實現(xiàn)讀者借還書記錄的查看,因此還需創(chuàng)立一種“讀者借書記錄”(JyRec)數(shù)據(jù)表來保留讀者的借閱記錄。3.1.2“圖書借閱管理系統(tǒng)”作為一種完整的數(shù)據(jù)庫管理系統(tǒng),在創(chuàng)立階段運用項目管理器可以更好組織管理多種格式的文獻(xiàn),因此首先需要創(chuàng)立一種項目,然后在項目管理器創(chuàng)立其他格式的文獻(xiàn)。在VFP主窗口中選擇“文獻(xiàn)”菜單下“新建”子菜單,在打開的“新建”對話框的“文獻(xiàn)類型“區(qū)域中選中”項目”,然后單擊右側(cè)的”新建文獻(xiàn)”按鈕,打開”創(chuàng)立“對話框中的”項目文獻(xiàn)“文本框中輸入項目名稱,在此輸入"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ù)表的字段的屬性設(shè)置分別設(shè)置如下?!跋到y(tǒng)賬號”(Accounts)數(shù)據(jù)表的宇段屬性設(shè)置如表3.1所示。表3.1“系統(tǒng)帳號”(Accounts)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型闡明帳號字符型字段寬度20,主索引字段,不能為空密碼字符型字段寬度20姓名字符型字段寬度20創(chuàng)立“系統(tǒng)賬號”(Accounts)數(shù)據(jù)表后向數(shù)據(jù)庫中添加一條記錄作為系統(tǒng)的默認(rèn)帳號,該記錄的各字段的值如下:“pjs”,“pjs”,“平晉昇”?!皩W(xué)生信息”(Student)數(shù)據(jù)表各字段的屬性設(shè)置如表3.2所示。表3.2“學(xué)生信息”(Student)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型闡明學(xué)號字符型字段寬度6,主索引字段,輸入掩碼為“999999”姓名字符型字段寬度20性別字符型字段寬度2系別字符型字段寬度4,為一般索引班級字符型字段寬度10電話字符型字段寬度12,輸入掩碼為“999##9999999”郵件字符型字段寬度30地址字符型字段寬度30“系別信息”(Xibie)數(shù)據(jù)表各字段的屬性設(shè)置如表3.3所示表3.3“系別信息”(Xibie)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型闡明系別號字符型字段寬度4,主索引字段,輸入掩碼為“9999”名稱字符型字段寬度20“圖書信息”(Book)數(shù)據(jù)表各字段的屬性設(shè)置如表3.4所示表3.4“圖書信息”(Tushu)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型闡明圖書編號字符型字段寬度6,主索引字段,輸入掩碼為“AA9999”圖書類別字符型字段寬度10圖書名稱字符型字段寬度40圖書作者字符型字段寬度20出版社字符型字段寬度40購置日期日期型字段寬度8購置價格貨幣型字段寬度8借閱次數(shù)數(shù)值型字段寬度4,默認(rèn)值0與否借出邏輯型字段寬度1,默認(rèn)值“.F.”對“圖書信息”(Book)數(shù)據(jù)表的字段屬性設(shè)置需要闡明的是“借閱次數(shù)”和“與否借出”字段的默認(rèn)值一定要設(shè)置,由于對于新添加的圖書,其一定是沒有被借出的,并且其借閱次數(shù)一定是0,因此在表單中向數(shù)據(jù)表添加記錄時,這兩個字段應(yīng)當(dāng)是不需要添加的,可以由默認(rèn)值生成。“讀者借書記錄”(JyRec)數(shù)據(jù)表的字段屬性如表3.5所示。表3.5“讀者借書記錄”(JyRec)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型闡明學(xué)號字符型字段寬度6,一般索引字段,輸入掩碼為“999999”圖書編號字符型字段寬度6,一般索引字段,輸入掩碼為“AA9999”借閱日期日期型字段寬度8償還日期日期型字段寬度8數(shù)據(jù)表之間的關(guān)系,將在詳細(xì)表單的數(shù)據(jù)環(huán)境中設(shè)置。3.2創(chuàng)立系統(tǒng)主程序VFP應(yīng)用程序系統(tǒng)需要創(chuàng)立一種主程序來驅(qū)動各個表單,在項目管理器的“代碼”選項卡中選中“程序”,單擊“新建”按鈕,即可打開程序編輯窗口本系統(tǒng)中需要創(chuàng)立一種程序main.prg,用來設(shè)置系統(tǒng)的工作環(huán)境,并驅(qū)動其他的程序和表單。將一種文獻(xiàn)設(shè)為項目主文獻(xiàn)的措施是在項目管理器中選中該文獻(xiàn),然后在右鍵快捷菜單中選擇“設(shè)為主文獻(xiàn)”子菜單或者選擇“項目”菜單下“設(shè)為主文獻(xiàn)”子菜單即可。一種文獻(xiàn)設(shè)為項目的主文獻(xiàn)后,該文獻(xiàn)的將以粗體顯示main.prg程序的代碼為:SETTALKOFFSETSAFETYOFF&&覆蓋時不要確認(rèn)SETSTATBAROFF&&將狀態(tài)欄關(guān)閉SETSYSMENUOFF&&可關(guān)掉VFP系統(tǒng)菜單之區(qū)域SETSYSMENUTO&&關(guān)閉系統(tǒng)菜單SETCENTURYON&&顯示四位年代_Screen.VISIBLE=.F.DOFORMLogon3.3創(chuàng)立系統(tǒng)常用類系統(tǒng)主表單中“學(xué)生資料”和“書籍資料”頁框控件中都需要用到“移動記錄工具欄”和“命令按鈕工具欄”,這兩個命令按鈕工具欄假如在表單中分別創(chuàng)立會使工作變得繁瑣,可以采用創(chuàng)立工具欄類,然后在表單中用實例化的方式來簡化工作。3.3.1創(chuàng)立“移動記錄工具欄”類“移動記錄工具欄”類基于“CommandGroup”基類,存儲于“AdminButton”可視類庫中,命名為“MoveRecord”。“移動記錄工具欄”類包括“首記錄”、“上一種”、“下一種”和“末記錄”4個按鈕,在表單中可以運用這4個按鈕定位數(shù)據(jù)表中的記錄指針。創(chuàng)立好的"移動記錄工具欄"類效果如下圖所示。需要指出的是,在本系統(tǒng)中當(dāng)鼠標(biāo)移動到按鈕上時,鼠標(biāo)指針變?yōu)橐环N特定指針,這就需要一種鼠標(biāo)指定文獻(xiàn),在本系統(tǒng)中使用“H_point.cur”文獻(xiàn),將該鼠標(biāo)指針文獻(xiàn)放在系統(tǒng)的根目錄下,添加按鈕“MouseMove”事件如下:LPARAMETERSnButton,nShift,nXCoord,nYCoordThis.MousePointer=99This.MouseIcon=SYS(5)+"h_point.cur"3.3.2創(chuàng)立“命令按鈕工具欄“命令按鈕工具欄”類基于“CommandGroup”基類,存儲于“AadminButton”可視類庫中,命名為“AdmButGrp”?!懊畎粹o工具欄”類中包括“增長”(CmdAdd)、“修改”(Cmdmod)、“刪除”(Cmddel)、“查詢”(CmdSer)、“打印”(Cmdpri)、“保留”(CmdSave)、“取消”(CmdCancel)和“退出”(CmdExit)8個按鈕。由于“命令按鈕工具欄”類中的按鈕在不一樣的表單中的作用不一樣,因此不必在類中添加控鈕的代碼,可以采用在表單中將類實例化后再添加代碼的方式。設(shè)置“命令按鈕工具欄”類及其控件的屬性如表3.6所示。表3.6“命令按鈕工具欄”類及其控件屬性控件屬性屬性取值ambutgrpButtonCount8Height330Width60按鈕控件FontBold.T.FontSize15FontName楷體GB_2312Height35Width60cmdaddCaption新增ToolTipText新增記錄cdmodCapion修改ToolTipText修改目前記錄cmddelCapion刪除ToolTipText刪除目前記錄mdserCapion查詢ToolTipText查詢目前記錄cdsaveCapion保留ToolTipText保留修改cdcancelCapion取消ToolTipText取消修改cmdpriCapion打印ToolTipText打印目前記錄CmdexitCapion退出ToolTipText退出目前表單創(chuàng)立好的表單效果如右圖所示與“移動記錄工具欄”類相似,為了變化鼠標(biāo)停留在按鈕時的指針,還需添加按鈕的“MouseMove”事件,代碼與“移動記錄工具欄”類中的相似。3.4創(chuàng)立系統(tǒng)主表單系統(tǒng)主表單由兩個選項卡構(gòu)成,下面分別簡介這兩個選項卡的創(chuàng)立。3.4.1系統(tǒng)主表單的功能系統(tǒng)主表單在提供系統(tǒng)界面的同步還包括一種具有兩個頁框的頁框控件,系統(tǒng)運用這兩個頁框控件來管理“學(xué)生信息”(Student)數(shù)據(jù)表和“圖書信息”(Book)數(shù)據(jù)表中的數(shù)據(jù),運用這兩個頁框可以對這兩張數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行查看、添加、修改、刪除、查詢和打印等操作。同步,系統(tǒng)主表單還將用來調(diào)用系統(tǒng)的借還書模塊。3.4.2創(chuàng)立系統(tǒng)主表單界面在“表單設(shè)計器”中創(chuàng)立一種表單作為系統(tǒng)主表單,命名為“MainForm”。創(chuàng)立好的表單效果中有兩個頁框,其中“學(xué)生資料”頁面效果如右圖所示。創(chuàng)立好的“書籍資料”頁框效果如右圖所示。將“學(xué)生信息”(Student)數(shù)據(jù)表、“系別信息”(Xibie)數(shù)據(jù)表、“圖書信息”(Book)數(shù)據(jù)表、“讀者借書記錄”(JyRec)數(shù)據(jù)表添加到表單的數(shù)據(jù)環(huán)境中,用“系別信息”(Xibie)數(shù)據(jù)表的“系別號”字段和“學(xué)生信息”(Student)數(shù)據(jù)表的“系別”索引建立關(guān)聯(lián)。在表單的數(shù)據(jù)環(huán)境中,“學(xué)生信息”(Student)數(shù)據(jù)表和“圖書信息”(Book)數(shù)據(jù)表的BufferModeOverRide屬性設(shè)置為“3-開放式緩沖”,Exclusive屬性設(shè)置為“.T.”。設(shè)置系統(tǒng)主表單屬性如表3.7所示。表3.7系統(tǒng)主表單(MainForm)屬性設(shè)置表單屬性取值A(chǔ)utoCenter.T.BorderStyle2-固定對話框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)主表單屬性后向表單中添加兩個頁框控件,將頁框控件的第一種頁面作為“學(xué)生資料”(StuPage)頁面,使頁框控件處在編輯狀態(tài),然后從數(shù)據(jù)環(huán)境中將要在“學(xué)生資料”頁面中顯示的字段拖放到表單中,并將“性別”字段生成的文本框控件刪除,再添加一種選項按鈕組控件來顯示該字段的數(shù)據(jù),將“系別”字段生成的文本框控件刪除,再添加一種組合框控件來顯示該字段的數(shù)據(jù),此外將“系別信息”(Xibie)數(shù)據(jù)表中的“名稱”字段添加到“學(xué)生資料”頁面中。將“移動記錄工具欄”(MoveRecord)和“命令按鈕工具欄”(CmdButGrp)類在“學(xué)生資料”(StuPage)頁面中實例化,并命名為“StuAbg”和“StuMr”。在向頁面中添加控件時一定要注意使頁框處在可編輯狀態(tài),即頁框外一種藍(lán)色的虛框,假如只是選擇了頁框控件,則此時向表單中添加控件只是向表單中添加控件,其在表單構(gòu)造中的位置是與頁框控件平行的。設(shè)置“學(xué)生資料”(StuPage)頁面及其控件的屬性如表3.8所示。表3.8系統(tǒng)主表單“學(xué)生資料”(StuPage)頁面及控件屬性設(shè)置控件屬性屬性取值StuPageCaption學(xué)生資料FontBlod.T.FontSize14FontName隸書PictureBgl.bmp標(biāo)簽控件AutoSize.T.BackStyle0-透明FontBlod.T.ForeColor0,0,0FontSize16FontName楷體GB_2312WordWrap.F.文本框控件FontSize12Height25StuMrHeight35Width320StuAbgHeight132Width168續(xù)表3.8控件屬性屬性取值Txt學(xué)號ControlSourceStudent.學(xué)號IMEMode2-關(guān)閉IMEReadOnly.T.StuogpControlSourceStudent.性別Txt姓名ControlSourceStudent.姓名IMEMode1-打開IMEReadOnly.F.Txt班級ControlSourceStudent.班級IMEMode1-打開IMEReadOnly.F.Cmb系別ControlSourcestudent.系別RowSourcexibie.系編號RowSourceType6-字段Style2-下拉列表框Txt名稱ControlSourceXibie.名稱IMEMode1-打開IMEReadOnly.T.Txt地址ControlSourcestudent.地址IMEMode1-打開IMEReadOnly.F.Txt電話ControlSourcestudent.電話IMEMode1-打開IMEReadOnly.F.Txt郵件ControlSourcestudent.郵件IMEMode1-打開IMEReadOnly.F.CmdjhCaption借還書頁框的兩個頁面中的另一種頁框用來作為“書籍資料”(BookPage)頁面,從表單的數(shù)據(jù)環(huán)境中將需要在“書籍資料”(BookPage)頁面中顯示宇段拖放到頁面中,并添加到頁面中的控件進(jìn)行某些調(diào)整,包括將“與否借出”字段生成的控件刪除,添加一種標(biāo)簽控件,再根據(jù)該字段的值顯示圖書的狀態(tài)。將“移動記錄工具欄”類和“命令按鈕工具欄”類在“書籍資料”(BookPage)頁面中實例化,并重新命名為“BookMr”和“BookAbg”。向表單中添加一種按鈕,再添加一種名為“MicroSoftMonthViewContro1,Verdion6.0”的ActiveX控件,并命名為“SjOleRq”。設(shè)置“書籍資料”(BookPage)頁面及頁面中控件的屬性如表3.9所示。表3.9系統(tǒng)主表單“書籍資料”(BookPage)頁面及控件屬性設(shè)置控件屬性屬性取值BookPageCaption書籍資料FontBold.T.FontSize14ForeName隸書PictureBgl.bmp標(biāo)簽控件AutoSize.T.BackStyle0-透明FontBold.T.ForeColor0,0,0FontSize16ForeName楷體GB_2312WordWrap.F.文本框控件FontSize12Height25BookMrHeight35Width320BookAbgHeight132Width168LblStausAutoSize.T.BackStyle1-不透明Caption在館中續(xù)表3.9控件屬性屬性取值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購置日期ControlSourceBook.購置日期IMEMode2-關(guān)閉IMEReadOnly.F.Txt出版社ControlSourceBook.出版社IMEMode1-打開IMEReadOnly.F.Txt購置價格ControlSourceBook.購置價格IMEMode2-關(guān)閉IMEReadOnly.F.Txt購置價格ControlSourceBook.借閱次數(shù)IMEMode2-關(guān)閉IMEReadOnly.T.CmdrqCaption…SjOleRqVisible.F.3.4.3添加表單代碼為了以便描述,系統(tǒng)主表單中的代碼將分為三部分來簡介,其中主表單中整個表單的代碼和兩個頁面的代碼將分開簡介。3.4.3.1添加表單中的代碼需要在系統(tǒng)主表單中添加4個屬性“StuFM”、“StuOR”、“BookFM”和“BookOR”,分別用來識別表單中“學(xué)生信息”(StuPage)頁面的狀態(tài),頁面中的數(shù)據(jù)記錄的指針的位置,“書籍信息”(BookPage)頁面的狀態(tài)和頁面中數(shù)據(jù)記錄指針的位置。在表單中添加完這4個屬性后,將這4個屬性初始值設(shè)為“cbrowse”、0、“cbrowse”和0。添加4個表單的措施屬性“StuModeBrse”、“StuModeMody”、“BookModeBrse”和“BookModeMody”,分別用來使“學(xué)生信息”(StuPage)和“書籍信息”(BookPage)頁面進(jìn)入瀏覽和非瀏覽狀態(tài)?!癝tuModeBrse”措施屬性用來使“學(xué)生信息”(StuPage)頁面進(jìn)入瀏覽狀態(tài)。“學(xué)生信息”(StuPage)頁面的瀏覽狀態(tài)是指頁面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處在不可編輯狀態(tài),“移動記錄工具欄”處在可用狀態(tài),“命令按鈕工具欄”中除了“保留”和“取消”按鈕外都處在可用狀態(tài),“借還書”按鈕處在可用狀態(tài)?!癝tuModeBrse”措施屬性的代碼如下:*如下代碼使“移動記錄工具欄”可用THISFORM.PF.StuPage.Stumr.ENABLED=.T.*如下代碼控制“命令按鈕工具欄”中按鈕的可用狀態(tài)THISFORM.PF.StuPage.StuAbg.Cmdadd.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdmod.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmddel.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdser.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdpri.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdsave.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdcancel.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdexit.ENABLED=.T.*如下代碼用來控制“學(xué)生信息”頁面與數(shù)據(jù)綁定的控件狀態(tài)THISFORM.PF.StuPage.Stuogp.ENABLED=.F.THISFORM.PF.StuPage.txt姓名.READONLY=.T.THISFORM.PF.StuPage.cmb系別.ENABLED=.F.THISFORM.PF.StuPage.txt班級.READONLY=.T.THISFORM.PF.StuPage.txt地址.READONLY=.T.THISFORM.PF.StuPage.txt電話.READONLY=.T.THISFORM.PF.StuPage.txt郵件.READONLY=.T.*如下代碼用來控制“借還書”按按鈕的可用狀態(tài)THISFORM.PF.StuPage.CmdJh.ENABLED=.T.*如下代碼用來控制表單中頁面的可用狀態(tài)THISFORM.PF.BookPage.ENABLED=.T.THIS.ENABLED=.T.“StuModeMody”措施屬性用來使表單的“學(xué)生信息”(StuPage)頁面進(jìn)入非瀏覽狀態(tài),該頁面的非瀏覽狀態(tài)是指頁面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處在可修改狀態(tài),“移動記錄工具欄”處在不可用狀態(tài),“命令按鈕工具欄”中除了“保留”和“取消”按鈕外其他按鈕都處在不可用狀態(tài),“借還書”按鈕處在可用狀態(tài),“書籍信息”頁面處在不可用狀態(tài)。“StuModeMody”措施屬性的代碼如下:*如下代碼使“移動記錄工具欄”不可用THISFORM.PF.StuPage.Stumr.ENABLED=.F.*如下代碼控制“命令按鈕工具欄”中按鈕的可用狀態(tài)THISFORM.PF.StuPage.StuAbg.Cmdadd.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdmod.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmddel.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdser.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdpri.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdsave.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdcancel.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdexit.ENABLED=.F.*如下代碼用來控制“學(xué)生信息”頁面與數(shù)據(jù)綁定的控件狀態(tài)THISFORM.PF.StuPage.Stuogp.ENABLED=.T.THISFORM.PF.StuPage.txt姓名.READONLY=.F.THISFORM.PF.StuPage.cmb系別.ENABLED=.T.THISFORM.PF.StuPage.txt班級.READONLY=.F.THISFORM.PF.StuPage.txt地址.READONLY=.F.THISFORM.PF.StuPage.txt電話.READONLY=.F.THISFORM.PF.StuPage.txt郵件.READONLY=.F.*如下代碼用來控制“借還書”按按鈕的可用狀態(tài)THISFORM.PF.StuPage.CmdJh.ENABLED=.F.*如下代碼用來控制表單中頁面的可用狀態(tài)THISFORM.PF.BookPage.ENABLED=.F.THIS.ENABLED=.T.“BookModeBrse”措施屬性用來使“書籍信息”(BookPage)頁面進(jìn)入瀏覽狀態(tài)。“書籍信息”(BookPage)頁面的瀏覽狀態(tài)是指頁面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處在不可編輯狀態(tài),“移動記錄工具欄”處在可用狀態(tài),“命令按鈕工具欄”中除了“保留”和“取消”按鈕外都處在可用狀態(tài),“借還書”按鈕處在可用狀態(tài),“學(xué)生信息”(StuPage)頁面處在可用狀態(tài)?!癇ookModeBrse”措施屬性的代碼:*如下代碼使“移動記錄工具欄”可用THISFORM.PF.BookPage.Sjmr.ENABLED=.T.*如下代碼使“...”按鈕不可用THISFORM.PF.BookPage.CmdRq.ENABLED=.F.*如下代碼控制“命令按鈕工具欄”中按鈕的狀態(tài)THISFORM.PF.BookPage.SjAbg.Cmdadd.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdmod.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmddel.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdser.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdpri.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdsave.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdcancel.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdexit.ENABLED=.T.*如下代碼控制頁面中與數(shù)綁定的控件中數(shù)據(jù)的可編輯狀態(tài)THISFORM.PF.BookPage.txt圖書編號.READONLY=.T.THISFORM.PF.BookPage.txt圖書名稱.READONLY=.T.THISFORM.PF.BookPage.txt圖書類別.READONLY=.T.THISFORM.PF.BookPage.txt圖書作者.READONLY=.T.THISFORM.PF.BookPage.txt購置日期.READONLY=.T.THISFORM.PF.BookPage.txt出版社.READONLY=.T.THISFORM.PF.BookPage.txt購置價格.READONLY=.T.*如下代碼用來控制表單中頁面的可用狀態(tài)THISFORM.PF.StuPage.ENABLED=.T.THIS.ENABLED=.T.“BookModeMody”措施屬性用來使“書籍信息”(BookPage)頁面進(jìn)入非瀏覽狀態(tài),“書籍信息”(BookPage)頁的非瀏覽狀態(tài)是指頁面中與數(shù)據(jù)綁定的控件中的數(shù)據(jù)處在可修改狀態(tài),“移動記錄工具欄”處在不可用狀態(tài),“命令按鈕工具欄”中除了“保留”和“取消”按鈕外其他按鈕都處在不可用狀態(tài),“購置日期”欄后的“...”按鈕處在可用狀態(tài),“學(xué)生信息”頁面處在不可用狀態(tài)?!癇ookModeMody”措施屬性的代碼:*如下代碼使“移動記錄工具欄”不可用THISFORM.PF.BookPage.Sjmr.ENABLED=.F.*如下代碼使“...”按鈕可用THISFORM.PF.BookPage.CmdRq.ENABLED=.T.*如下代碼控制“命令按鈕工具欄”中按鈕的狀態(tài)THISFORM.PF.BookPage.SjAbg.Cmdadd.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdmod.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmddel.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdser.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdpri.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdsave.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdcancel.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdexit.ENABLED=.F.*如下代碼控制頁面中與數(shù)綁定的控件中數(shù)據(jù)的可編輯狀態(tài)THISFORM.PF.BookPage.txt圖書編號.READONLY=.T.THISFORM.PF.BookPage.txt圖書名稱.READONLY=.F.THISFORM.PF.BookPage.txt圖書類別.READONLY=.F.THISFORM.PF.BookPage.txt圖書作者.READONLY=.F.THISFORM.PF.BookPage.txt購置日期.READONLY=.F.THISFORM.PF.BookPage.txt出版社.READONLY=.F.THISFORM.PF.BookPage.txt購置價格.READONLY=.F.*如下代碼用來控制表單中頁面的可用狀態(tài)THISFORM.PF.StuPage.ENABLED=.F.THIS.ENABLED=.T.添加完表單的屬性后,由于系統(tǒng)中需要運用幾種全局變量在表單中傳遞數(shù)據(jù),因此需要在主表單中申明這幾種全局變量。添加表單的Init事件代碼如下:PUBLICStudentNO,StuTj,BookTj,DbName這幾種全局變量的作用分別如下:“StudentNO”是當(dāng)系統(tǒng)主表單調(diào)用“讀者借書記錄”表單時,向該表單傳遞系統(tǒng)主表單的“學(xué)生信息”頁面中記錄的學(xué)號值,以便讓“讀者借書記錄”表單顯示該學(xué)號的資料?!癝tuTj”和“BookTj”用在“學(xué)生信息”和“書籍信息”兩個頁面的“輸入查詢條件”表單和“查詢成果”表單之間傳遞查詢條件的值。“DbName”用在“學(xué)生信息”和“書籍信息”兩個頁面共用一種“選擇打印類型”表單時,用于辨別該全局變量是應(yīng)當(dāng)打印那一張報表。4.4.3.2添加“學(xué)生信息”頁面代碼在“學(xué)生信息”(StuPage)被激活時,應(yīng)當(dāng)將“學(xué)生信息”(Student)數(shù)據(jù)表所在工作區(qū)作為表單的目前工作區(qū),取消由其他表單設(shè)置的過慮條件,并且使頁面進(jìn)入瀏覽狀態(tài)。添加“學(xué)生信息”頁面的Activate事件代碼如下:“學(xué)生信息”頁面中的“系別”組合框中選擇某一種系編號后,要在“名稱”欄顯示系統(tǒng)編號所代碼的系別名稱,由于在數(shù)據(jù)環(huán)境中將兩者做了關(guān)連,因此在選擇了某個系編號后只需要刷新表單即可。添加“cmb系別”組合框的Valid事件代碼如下:THISFORM.PF.StuPgge.txt系別.REFRESH()“移動記錄工具欄”中按鈕的代碼已經(jīng)在類中創(chuàng)立,并且這些代碼在各個表單中完全相似,不需要再另行添加?!懊畎粹o工具欄”中“增長”(Cmdadd)按鈕的作用是先保留頁中目前的記錄號,標(biāo)識表單的狀態(tài)為新增狀態(tài),然后在表單的數(shù)據(jù)緩沖區(qū)新建一條記錄,并且使目前頁面進(jìn)入非瀏覽狀態(tài)?!霸鲩L”(Cmdadd)按鈕的Click事件代碼如下:SELECTStudentTHISFORM.StuOR=RECNO()GOBOTTOMAPPENDBLANKTHISFORM.StuModeMody()THISFORM.StuFM="cadd"THISFORM.PF.StuPage.txt學(xué)號.READONLY=.F.THISFORM.REFRESH()“命令按鈕工具欄”中“修改”(Cmdmod)按鈕的作用是保留頁面在目前記錄的記錄號,標(biāo)識表單的狀態(tài)為修改狀態(tài),然后使表單中的目前頁面進(jìn)入非瀏覽狀態(tài)。“修改”(Cmdmod)按鈕的Click事件代碼如下:THISFORM.StuFM="cmod"THISFORM.StuOR=RECNO()THISFORM.StuModeMody()THISFORM.REFRESH()“命令按鈕工具欄”中“刪除”(Cmddel)按鈕的作用首先彈出確認(rèn)對話框,假如確認(rèn)則進(jìn)行刪除操作。由于本系統(tǒng)中學(xué)生的信息也會在別的數(shù)據(jù)表中出現(xiàn),假如在該數(shù)據(jù)表中刪除了學(xué)生的數(shù)據(jù),而在其他數(shù)據(jù)表中保留會導(dǎo)致信息的多出與不便,因此本系統(tǒng)采用的方式是假如在“學(xué)生信息”數(shù)據(jù)表中刪除了某一種學(xué)生的數(shù)據(jù),則在其他的數(shù)據(jù)表(重要是指“讀者借書記錄”數(shù)據(jù)表)刪除與該學(xué)生有關(guān)的一牢記錄,不過假如該學(xué)生在刪除時仍有未償還的圖書,系統(tǒng)將不容許刪除?!皠h除”(Cmddel)按鈕的Click事件代碼如下:YN=MESSAGEBOX("確定刪除",4+32,"圖書管理系統(tǒng)")&&確認(rèn)對話框IFYN=6&&假如確認(rèn)THISFORM.StuOR=RECNO()&&保留記錄指針位置SETEXACTON&&嚴(yán)格比較SELECTJyRecLOCATEFOR學(xué)號=ALLTRIM(THISFORM.PF.StuPage.txt學(xué)號.VALUE)ANDEMPTY(償還日期)&&查找與否有未還圖書IFFOUND()&&假如有MESSAGEBOX("該學(xué)生有未還書,不能刪除",48,"圖書管理系統(tǒng)")&&彈出對話框SELECTStudent&&回到原記錄SETFILTERTOGOTHISFORM.StuORELSE&&假如沒有未還書SELECTJyRec&&選擇“讀者借閱記錄”所在的工作區(qū)GOTOP&&到數(shù)據(jù)表頂部DOWHILENOTEOF()&&刪除與要刪除的學(xué)生有關(guān)的借閱記錄IF學(xué)號=ALLTRIM(THISFORM.PF.StuPage.txt學(xué)號.VALUE)DELETEPACKENDIFSKIPENDDOSELECTStudent&&在“學(xué)生信息”數(shù)據(jù)表中刪除記錄DELETEPACKMESSAGEBOX("刪除成功",64,"圖書管理系統(tǒng)")&&“刪除成功”對話框SELECTStudentGOTOPENDIFTHISFORM.REFRESH()SETEXACTOFFENDIF“命令按鈕工具欄”中“查詢”(CmdSer)按鈕的作用是調(diào)用“輸入查詢條件”表單,其Click事件代碼如下:DOFORMStuSer“命令按鈕工具欄”中“保留”(CmdSave)按鈕的作用是檢查表單中各數(shù)據(jù)欄中數(shù)據(jù)的輸入完整狀況,假如無誤,則保留記錄。“保留”(CmdSave)按鈕的Click事件代碼如下:LOCALOK&&申明一種當(dāng)?shù)刈兞縊K=.T.&&假設(shè)各數(shù)據(jù)欄中數(shù)據(jù)無誤DOCASECASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt學(xué)號.VALUE))&&假如學(xué)號為空MESSAGEBOX("學(xué)號不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.StuPage.txt學(xué)號.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt姓名.VALUE)&&假如姓名為空MESSAGEBOX("姓名不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.StuPage.txt姓名.SETFOCUS()OK=.F.CASEEMPTY(THISFORM.PF.StuPage.Cmb系別.VALUE)&&假如系別為空MESSAGEBOX("系別不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.StuPage.Cmb系別.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt地址.VALUE))&&假如地址為空MESSAGEBOX("地址不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.StuPage.txt地址.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt電話.VALUE))&&假如電話為空MESSAGEBOX("電話不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.StuPage.txt姓名.SETFOCUS()OK=.F.ENDCASEIFOK=.T.&&假如各數(shù)據(jù)欄無誤為空YN=MESSAGEBOX("確定保留",4+32,"圖書管理系統(tǒng)")&&彈出確認(rèn)對話框IFYN=6&&假如確認(rèn)CanSave=TABLEUPDATE(.F.)&&試圖保留IFCanSave=.F.&&假如保留失敗MESSAGEBOX("學(xué)號錯誤",48,"圖書管理系統(tǒng)")THISFORM.PF.StuPage.txt學(xué)號.SETFOCUS()ELSE&&假如保留成功MESSAGEBOX("保留成功",64,"圖書管理系統(tǒng)")THISFORM.StuModeBrse()IFTHISFORM.StuFM="cmod"GOTHISFORM.StuORELSETHISFORM.PF.StuPage.txt學(xué)號.READONLY=.T.ENDIFENDIFTHISFORM.REFRESH()ENDIFENDIF“命令按鈕工具欄”中“取消”(CmdCancel)按鈕的作用是刪除表單的數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),并使目前頁面回到瀏覽狀態(tài)?!叭∠保–mdCancel)按鈕的Click事件代碼如下:YN=MESSAGEBOX("確定取消",4+32,"系統(tǒng)消息")IFYN=6TABLEREVERT(.F.)IFTHISFORM.StuFM="cadd"GOTHISFORM.StuORENDIFTHISFORM.StuModeBrse()THISFORM.PF.StuPage.txt學(xué)號.READONLY=.T.THISFORM.REFRESH()ENDIF“命令按鈕工具欄”中“打印”(Cmdpri)按鈕的作用是將“DbfName”全局變量賦值,表明要進(jìn)行打印的是“學(xué)生信息”數(shù)據(jù)表,并調(diào)用“選擇打印類型”表單?!按蛴 保–mdPri)按鈕的Click事件代碼如下:DbfName=”StuDbf”DOFORMPrintLX“命令按鈕工具欄”中“退出”(Cmdexit)按鈕的作用是彈出確認(rèn)對話框,假如確認(rèn)則是退出目前表單,清除事件循環(huán)并退出系統(tǒng)?!巴顺觥保–mdexti)按鈕的Click事件代碼如下YN=MESSAGEBOX("確定退出",4+32,"圖書管理系統(tǒng)")IFYN=6THISFORM.RELEASE()CLEAREVENTSQUITENDIF“學(xué)生信息”頁面中“借還書”(Cmdjh)按鈕的作用是將頁面中目前記錄的“學(xué)號”值賦給全局變量“StudentNO”,并調(diào)用“讀者借書記錄”表單。“借還書”(Cmdjh)按鈕的Click事件代碼如下:StudentNO=ALLTRIM(THISFORM.PF.StuPage.txt學(xué)號.VALUE)DOFORMJyRec4.4.3.3添加“書籍信息”頁面代碼在“書籍信息”(BookPage)頁面被激活時,表單中的目前數(shù)據(jù)工作期應(yīng)當(dāng)變?yōu)椤皥D書信息”數(shù)據(jù)表所在的工作期,將也許由其他表單對該數(shù)據(jù)表設(shè)置的過慮條件去掉,同步要使該頁面進(jìn)入瀏覽狀態(tài)。添加該頁面的“Activate”事件代碼由于該頁面要在刷新表單時,顯示表單中目前記錄的書籍與否借出,故添加該頁面的Refresh事件代碼在“書籍信息”(BookPage)頁面在通過添加的MonthView控件(SjOleRq)來輸入圖書的購置日期,在該頁面處在非瀏覽狀態(tài)時單擊“...”按鈕即可調(diào)用該控件。添加“...”(Cmdrq)按鈕的Click事件代碼如下:THISFORM.PF.BookPage.Sjolerq.VISIBLE=.T.“命令按鈕工具欄”中“增長”(Cmdadd)按鈕的作用是保留頁面中數(shù)據(jù)記錄的指針位置,將頁面的狀態(tài)標(biāo)識為新增狀態(tài),再在表單事件緩沖區(qū)內(nèi)新建一條記錄,并使頁面進(jìn)入非瀏覽狀態(tài)。“添加”(Cmdadd)按鈕的Click事件代碼如下:SELECTBookTHISFORM.SjOR=RECNO()GOBOTTOMAPPENDBLANKTHISFORM.SjFM="cadd"THISFORM.SjModeMody()THISFORM.PF.BookPage.txt圖書編號.READONLY=.F.THISFORM.REFRESH()“命令按鈕工具欄”中“刪除”(Cmdadd)按鈕的作用是彈出確認(rèn)對話框,假如確認(rèn),則檢查要刪除的圖書與否在庫中,如查不在則彈出出錯對話框,假如在庫中則首先刪除“讀者借書記錄”(Jyrec)數(shù)據(jù)表中的與要刪除的圖書有關(guān)的所有記錄,再刪除該圖書記錄,刪除成功后彈出“刪除成功”對話框?!皠h除”(Cmddel)按鈕的Click事件代碼如下:YN=MESSAGEBOX("確定刪除",4+32,"圖書管理系統(tǒng)")&&確認(rèn)對話框IFYN=6&&假如確認(rèn)THISFORM.SjOR=RECNO()&&保留記錄號IFTHISFORM.PF.BookPage.LblStatus.CAPTION="借出中"&&假如該圖書不在庫中MESSAGEBOX("該圖書尚未償還",48,"圖書管理系統(tǒng)")&&不能刪除ELSE&&假如在庫中SELECTJyRec&&對圖書借閱登記表進(jìn)行修改SETEXACTON&&精確比較GOTOP&&到數(shù)據(jù)表的頂部DOWHILENOTEOF()&&刪除所有與要刪除的圖書有關(guān)的記錄IF圖書編號=ALLTRIM(THISFORM.PF.BookPage.txt圖書編號.VALUE)DELETEPACKENDIFSKIPENDDOSELECTBook&&刪除圖書記錄GOTHISFORM.SjORDELETEPACKMESSAGEBOX("刪除成功",64,"圖書管理系統(tǒng)")&&“刪除成功”對話框SETEXACTOFFTHISFORM.REFRESH()ENDIFENDIF“命令按鈕工具欄”中“查詢”(CmdSer)按鈕的作用是調(diào)用“輸入查詢條件”表單,該按鈕的Click事件代碼如下:DOFORMBookSer“命令按鈕工具欄”中“保留”(CmdSave)按鈕的作用是在單擊按鈕時,檢查頁面中數(shù)據(jù)的輸入狀況,假如無誤則保留數(shù)據(jù),并彈出“保留成功”對話框,否則指出錯誤,并將光標(biāo)定位在錯誤處,等待顧客修改。“保留”(CmdSave)按鈕的Click事件代碼如下:LOCALOKOK=.T.DOCASECASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt圖書編號.VALUE))&&假如圖書編號為空MESSAGEBOX("圖書編號不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt圖書編號.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt圖書名稱.VALUE))&&假如圖書名稱為空MESSAGEBOX("圖書名稱不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt圖書名稱.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt圖書類別.VALUE))&&假如圖書類別為空MESSAGEBOX("圖書類別不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt圖書類別.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt圖書作者.VALUE))&&假如圖書作者為空MESSAGEBOX("圖書作者不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt圖書作者.SETFOCUS()OK=.F.CASEEMPTY(THISFORM.PF.BookPage.txt購置日期.VALUE)&&假如購置日期為空MESSAGEBOX("購置日期不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt購置日期.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt出版社.VALUE))&&假如出版社為空MESSAGEBOX("出版社不能為空",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt出版社.SETFOCUS()OK=.F.CASETHISFORM.PF.BookPage.txt購置價格.VALUE<=0&&假如購置價格不不小于或者為0MESSAGEBOX("購置價格錯誤",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt購置價格.SETFOCUS()OK=.F.ENDCASEIFOK=.T.&&假如各數(shù)據(jù)項無誤YN=MESSAGEBOX("確定保留",4+32,"圖書管理系統(tǒng)")&&確認(rèn)對話框IFYN=6&&假如確認(rèn)SaveOk=TABLEUPDATE(.F.)&&試圖保留IFSaveOk=.T.&&假如保留成功MESSAGEBOX("保留成功",64,"圖書管理系統(tǒng)")THISFORM.SjModeBrse()THISFORM.PF.BookPage.txt圖書編號.READONLY=.T.ELSE&&假如保留失敗MESSAGEBOX("圖書編號錯誤",48,"圖書管理系統(tǒng)")THISFORM.PF.BookPage.txt圖書編號.SETFOCUS()ENDIFENDIFENDIF“命令按鈕工具欄”中“取消”(CmdCancel)按鈕的作用是將表單的數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)刪除并使表單回到瀏覽狀態(tài)。“取消”(CmdCancel)按鈕的Click事件代碼如下:YN=MESSAGEBOX("確定取消",4+32,"系統(tǒng)消息")IFYN=6TABLEREVERT(.F.)IFTHISFORM.SjFM="cadd"GOTHISFORM.SjORENDIFTHISFORM.SjFM="cbrowse"THISFORM.SjModeBrse()THISFORM.PF.BookPage.txt圖書編號.READONLY=.T.THISFORM.REFRESH()ENDIF“命令按鈕工具欄”中“打印”(Cmdpri)按鈕的作用是將全局變量“DbfName”賦值,并調(diào)用“選擇打印類型”表單?!按蛴 保–mdpri)按鈕的Click事件代碼如下:DbfName=”BookDbf”DOFORMPrintLX“命令按鈕工具欄”中“退出”(Cmdexit)按鈕的作用是彈出確認(rèn)對話框,假如確認(rèn)則退出目前表單,清除事件循環(huán)并退出系統(tǒng)?!巴顺觥保–mdexit)按鈕的Click事件代碼如下:YN=MESSAGEBOX("確定退出",4+32,"圖書管理系統(tǒng)")IFYN=6THISFORM.RELEASE()CLEARQUITENDIF3.4.4系統(tǒng)主表單的輔助表單重要包括“學(xué)生信息”頁面和“圖書信息”頁面的查詢功能和一種“選擇打印類型”表單。3.4.4.1創(chuàng)立“學(xué)生信息”“學(xué)生信息”(StuPage)頁面的查詢功能由“輸入查詢條件”和“學(xué)生信息查詢成果”表單構(gòu)成。下面簡介這兩個表單的創(chuàng)立過程。(1)創(chuàng)立“輸入查詢條件”表單“輸入查詢條件”表單用來向顧客搜集要查詢的條件,查詢的條件可以是根據(jù)某一種字段進(jìn)行查詢,也可以指定多種查詢條件,這些條件將以“AND”連接,然后根據(jù)條件查詢。在“表單設(shè)計器”中創(chuàng)立一種表單作為“輸入查詢條件”表單,命名為“StuSer”。創(chuàng)立好的“輸入查詢條件”表單效果如右圖所示。在表單中添加4個標(biāo)簽控件、4個文本框控件和2個按鈕控件,設(shè)置表單及其控件的屬性如表3.10所示。表3.10“輸入查詢條件”(StuSer)表單控件屬性設(shè)置控件屬性屬性取值StuSerAutoCenter.T.BorderStyle2-固定對話框ControlBox.F.Caption輸入查詢條件Closable.F.Hight200Width300NameStuSerMdiForm.T.MaxButton.F.MinButton.F.ShowWindow1-在頂層表單中ShowTips.T.windowType1-模式標(biāo)簽控件AutoSize.T.BackStyle0-透明FontBold.T.FontSize16ForeColor255,0,0FontName楷體GB_2312WordWarp.F.文本框控件FontSize12Hight25Width240按鈕控件FontBold.T.FontSize16FontName楷體GB_2312Hight30續(xù)表3.10控件屬性屬性取值Width50Txt姓名IMEMode1-打開IMETxt郵件IMEMode2-關(guān)閉IMETxt地址IMEMode1-打開IMECmdSerCaption查詢Default.T.ToolTipText執(zhí)行查詢CmdextCaption退出Cancel.T.ToolTipText取消查詢該表單中的作用是向顧客搜集查詢條件,而這個作用也重要由“查詢”(CmdSer)按鈕來完畢,當(dāng)顧客單擊該按鈕時檢查表單的文本框中數(shù)據(jù)的輸入狀況,假如文本框中有數(shù)據(jù)則將該文本框中的數(shù)據(jù)作一種查詢條件,假如有多種查詢條件則用“AND”將這些條件連接起來,然后調(diào)用“學(xué)生信息查詢成果”表單?!安樵儭保–mdSer)按鈕的Click事件代碼如下:StuTJ=".T."IFNOTEMPTY(ALLTRIM(THISFORM.txt學(xué)號.VALUE))&&假如學(xué)號欄非空StuTJ="'"+ALLTRIM(Thisform.txt學(xué)號.Value)+"'$學(xué)號"ENDIFIFNOTEMPTY(ALLTRIM(THISFORM.txt姓名.VALUE))&&假如姓名欄非空StuTJ=StuTJ+"AND"+"'"+ALLTRIM(THISFORM.txt姓名.VALUE)+"'$姓名"ENDIFIFNOTEMPTY(ALLTRIM(THISFORM.txt郵件.VALUE))&&假如郵件欄非空StuTJ=StuTJ+"AND"+"'"+ALLTRIM(THISFORM.txt郵件.VALUE)+"'$郵件"ENDIFIFNOTEMPTY(ALLTRIM(THISFORM.txt地址.VALUE))&&假如地址欄非空StuTJ=StuTJ+"AND"+"'"+ALLTRIM(THISFORM.txt地址.VALUE)+"'$地址"ENDIFTHISFORM.RELEASE()DOFORMStuSerout“退出”(Cmdext)按鈕的作用是退出目前表單,其Click事件代碼如下:THISFORM.RELEASE()(2)創(chuàng)立“學(xué)生信息查詢成果”表單“學(xué)生信息查詢成果”表單用來顯示“學(xué)生信息”數(shù)據(jù)表中符合查詢條件的記錄。在“表單設(shè)計器”中創(chuàng)立一種表單作為“學(xué)生信息查詢成果”表單,命名為StuSerout。創(chuàng)立好的表單效果如右圖所示。將“學(xué)生信息”(Student)數(shù)據(jù)表和“系別信息”(Xibie)數(shù)據(jù)表添加到表單的數(shù)據(jù)環(huán)境中,并用“系別信息”(Xibie)數(shù)據(jù)表的“系編號”字段與“學(xué)生信息”(Student)數(shù)據(jù)表的“系別”索引建立關(guān)系。在表單中添加1個標(biāo)簽控件、1個表格控件和2個按鈕控件。其中表格控件可以用“表格生成器”來創(chuàng)立,運用表格生成器創(chuàng)立完畢后將“系別”列的數(shù)據(jù)源更改為“Xibie.名稱”。表格的屬性與“輸入查詢添加”的表單屬性大體相似,這里不再反復(fù)列舉。要使表單中只顯示符合查詢條件的記錄,需要在對表單的數(shù)據(jù)環(huán)境設(shè)置過慮條件,此外假如沒有符合查詢條件的記錄,則“打印”按鈕不可用,添加表單的Init事件代碼如下:SELECTStudentSETFILTERTO&StuTJCOUNTFOR&StuTJTOnNumberIFnNumber=0THISFORM.Cmdpri.ENABLED=.F.ENDIF表單中的“打印”(Cmdpri)按鈕的作用是將查詢成果以報表的形式輸出,并以瀏覽的方式查看打印成果。添加“打印”(Cmdpri)按鈕的Click事件代碼如下:REPORTFORMStuInfoFOR&StuTJPREVIEW表單中的“退出”(CmdExt)按鈕的作用是彈出確認(rèn)對話框,假如確認(rèn)則退出表單,并取消數(shù)據(jù)環(huán)境設(shè)置的過慮條件?!巴顺觥保–mdEx

溫馨提示

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

最新文檔

評論

0/150

提交評論