




已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)五 Visual Foxpro編程實(shí)踐一. 實(shí)驗(yàn)?zāi)康呐c要求掌握利用Visual Foxpro編制開(kāi)發(fā)自己的應(yīng)用程序的實(shí)踐知識(shí),并學(xué)會(huì)在程序調(diào)試中自行發(fā)現(xiàn)問(wèn)題和修改程序代碼,最終完成應(yīng)用程序的無(wú)錯(cuò)運(yùn)行。二. 相關(guān)知識(shí)利用Visual Foxpro自行開(kāi)發(fā)編制應(yīng)用程序的步驟:1設(shè)置好系統(tǒng)的工作環(huán)境(尤其注意工作目錄的默認(rèn)設(shè)置)。2如果是初次進(jìn)行,應(yīng)當(dāng)先建立一個(gè)項(xiàng)目,為該項(xiàng)目命名,激活項(xiàng)目管理器。如果是接著上次的工作進(jìn)行,則打開(kāi)上次工作的本項(xiàng)目,同樣也激活項(xiàng)目管理器。3在項(xiàng)目管理器的“數(shù)據(jù)”“數(shù)據(jù)庫(kù)”下面創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),并命名(如已創(chuàng)建,則跳過(guò)本步驟)。4在項(xiàng)目管理器的“數(shù)據(jù)”“數(shù)據(jù)庫(kù)”“表”下面進(jìn)行數(shù)據(jù)表的創(chuàng)建或修改工作,并輸入少量的正確數(shù)據(jù)以便將來(lái)的運(yùn)行調(diào)試(如果已經(jīng)創(chuàng)建了數(shù)據(jù)表,則跳過(guò)本步驟)。5在項(xiàng)目管理器的“文檔”下面創(chuàng)建該應(yīng)用程序所用到的所有表單,設(shè)計(jì)好各表單的界面并為表單里的控件填寫(xiě)程序代碼.(注意為表單添加各自的數(shù)據(jù)環(huán)境,否則會(huì)出錯(cuò)!)6試運(yùn)行各表單,發(fā)現(xiàn)問(wèn)題后重新修改有問(wèn)題的表單的代碼,反復(fù)調(diào)試和修改直至最后能無(wú)錯(cuò)運(yùn)行。7將應(yīng)用程序打包發(fā)布或制作成安裝文件。三. 實(shí)驗(yàn)內(nèi)容與步驟本次實(shí)驗(yàn)以一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)為例。首先,對(duì)該系統(tǒng)作一個(gè)簡(jiǎn)單的介紹:該應(yīng)用系統(tǒng)為完成學(xué)生信息和成績(jī)的管理系統(tǒng),主要有以下幾個(gè)應(yīng)用模塊:(1) 用戶(hù)登錄管理: 系統(tǒng)具有管理員功能,只有取得管理員權(quán)限的人才能使用本系統(tǒng)。(2) 數(shù)據(jù)添加功能: 對(duì)學(xué)生基本信息、教師基本信息、班級(jí)信息、課程信息、學(xué)生成績(jī)信息進(jìn)行添加錄入。(3) 數(shù)據(jù)查詢(xún)功能: 對(duì)上述信息的基本查詢(xún)。(4) 數(shù)據(jù)修改功能: 對(duì)上述信息可進(jìn)行修改工作。(5) 統(tǒng)計(jì)操作: 可分別按個(gè)人成績(jī)、單科成績(jī)統(tǒng)計(jì)出最高成績(jī)、最低成績(jī)和平均成績(jī)等。(6) 打印功能: 對(duì)上述信息可進(jìn)行打印。實(shí)驗(yàn)步驟如下:1數(shù)據(jù)庫(kù)設(shè)計(jì):首先設(shè)置好系統(tǒng)的運(yùn)行環(huán)境和工作目錄,然后建立項(xiàng)目,為項(xiàng)目命名為“學(xué)生成績(jī)管理系統(tǒng)”,激活項(xiàng)目管理器,并在在項(xiàng)目管理器的“數(shù)據(jù)”“數(shù)據(jù)庫(kù)”下面創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),命名為“學(xué)生成績(jī)管理”,在“數(shù)據(jù)庫(kù)”的“表”下面創(chuàng)建以下各數(shù)據(jù)表:(1) 用戶(hù)信息表user (表名命名為user即可,不要加漢字。以下同。)字段名稱(chēng)類(lèi)型寬度用戶(hù)名字符型10密碼字符型10(2) 學(xué)生信息表 student字段名稱(chēng)類(lèi)型寬度學(xué)號(hào)字符型8姓名字符型10性別字符型2班級(jí)編號(hào)字符型6出生日期日期型8(3) 教師信息表 teacher字段名稱(chēng)類(lèi)型寬度教師代碼字符型4姓名字符型10性別字符型2職稱(chēng)字符型10部門(mén)字符型10出生日期日期型8(4) 班級(jí)信息表 classes字段名稱(chēng)類(lèi)型寬度班級(jí)編號(hào)字符型6年級(jí)字符型4專(zhuān)業(yè)字符型10系代碼字符型2學(xué)制字符型2類(lèi)型字符型4(5) 課程信息表 course字段名稱(chēng)類(lèi)型寬度課程代碼字符型6課程名稱(chēng)字符型16類(lèi)別字符型4教師代碼字符型4(6) 分?jǐn)?shù)信息表 score字段名稱(chēng)類(lèi)型寬度學(xué)號(hào)字符型8課程代碼字符型6成績(jī)數(shù)值型4創(chuàng)建好以上數(shù)據(jù)表以后,應(yīng)該向每個(gè)表中添加適量合法數(shù)據(jù)以便后面的測(cè)試。2.表單設(shè)計(jì)2.1登錄模塊功能描述: 實(shí)現(xiàn)只有指定的用戶(hù)才能訪問(wèn)系統(tǒng)的功能。并且,只有身份為“管理員”的用戶(hù)才可以調(diào)用修改模塊修改數(shù)據(jù)。界面設(shè)計(jì):表單名稱(chēng): login文件名: login.scx數(shù)據(jù)環(huán)境: user.dbf對(duì)象設(shè)置: 對(duì) 象 屬 性 值說(shuō) 明Form1Caption歡迎使用學(xué)生成績(jī)管理系統(tǒng)Lable1Caption學(xué)生成績(jī)管理系統(tǒng)Lable2Caption請(qǐng)輸入用戶(hù)名:Lable3Caption請(qǐng)輸入密碼:Combo1RowSourceType6-字段指定數(shù)據(jù)值來(lái)源類(lèi)型RowSourceUser.用戶(hù)名指定數(shù)據(jù)值來(lái)源Cammand1Caption登錄Cammand2Caption退出函數(shù)與方法聲明:(1) Command1中的Click事件功能:完成在登錄時(shí)對(duì)輸入的用戶(hù)名和密碼的檢驗(yàn),如果數(shù)據(jù)表user中存在輸入的用戶(hù)名和密碼信息,則調(diào)用主窗口(如果是管理員則不但調(diào)用主窗口,還允許執(zhí)行主窗口的修改功能),否則提示輸入錯(cuò)誤。程序清單:private kl,yh,stst=密碼不正確,請(qǐng)重新輸入!use userkl=alltrim(thisform.text1.value)yh=alltrim(bo1.value)*將用戶(hù)輸入的用戶(hù)名和密碼的值分別保存在yh和kl變量中l(wèi)ocate for alltrim(bo1.value)= =alltrim(user.用戶(hù)名)*在user表中查找是否有與yh和kl匹配的記錄if found() and alltrim(user.密碼)= =kl*正確的用戶(hù)名和密碼 thisform.visible=.f. close tables all do form main.scx if yh= =admin *如果是超級(jí)用戶(hù)管理員,則允許他使用main表單中的第三組按鈕(即修改模塊) main.optiongroup1.option3.enabled=.t. endif this.parent.text1.value=else*錯(cuò)誤的用戶(hù)名和密碼,系統(tǒng)給出提示,延遲2秒wait window st timeout 2thisform.text1.value=thisform.text1.setfocusendif(2) Command2中的Click事件功能:退出學(xué)生成績(jī)管理系統(tǒng)程序清單:clear eventsquit(3) Form1的Destroy事件功能:意外關(guān)閉程序窗口時(shí)的處理程序清單:clear events2.2 主界面模塊功能描述: 主要是提供本系統(tǒng)各功能模塊的入口.界面設(shè)計(jì):表單名稱(chēng): main文件名: main.scx數(shù)據(jù)環(huán)境: 無(wú)對(duì)象設(shè)置:對(duì) 象 屬 性 值Form1Caption學(xué)生成績(jī)管理系統(tǒng)Lable1Caption歡迎使用學(xué)生成績(jī)管理系統(tǒng)Lable2Caption請(qǐng)選擇要操作的內(nèi)容:Optiongroup1ButtonCount6Optiongroup1.Option1Caption添加記錄Optiongroup1.Option2Caption查詢(xún)記錄Optiongroup1.Option3Caption修改記錄Optiongroup1.Option3Enabled.F.Optiongroup1.Option4Caption統(tǒng)計(jì)數(shù)據(jù)Optiongroup1.Option5Caption打印報(bào)表Optiongroup1.Option6Caption退出系統(tǒng)函數(shù)與方法聲明:(1) Optiongroup1中的IntelactiveChange事件:功能: 根據(jù)Optiongroup1中的選擇單擊按鈕,調(diào)用各重要功能模塊.程序清單:do case case this.value=1 do form 添加 case this.value=2 do form 查詢(xún) case this.value=3 do form 修改 case this.value=4 do form 統(tǒng)計(jì) case this.value=5 do form 打印 case this.value=6 thisform.release quitendcase(2) Optiongroup1中的每一個(gè)Option的Click事件:功能: 與(1)中不同,(1)是指在Optiongroup中的各個(gè)Option切換時(shí)才觸發(fā)的程序,僅這樣還不夠,還要編寫(xiě)每個(gè)Option被單擊時(shí)觸發(fā)的程序才完整。程序清單:對(duì)應(yīng)Optiongroup1.Option1的Click事件: do form 添加(其余類(lèi)推)2.3 數(shù)據(jù)添加模塊功能描述: 用戶(hù)通過(guò)5個(gè)不同的頁(yè)面來(lái)完成對(duì)學(xué)生信息表、教師信息表、班級(jí)表、課程表和成績(jī)表的數(shù)據(jù)添加操作。界面設(shè)計(jì):表單名稱(chēng): 添加文件名: 添加.scx數(shù)據(jù)環(huán)境: student.dbf, class.dbf, score.dbf, teacher.dbf, course.dbf對(duì)象設(shè)置: 對(duì) 象 屬 性 值說(shuō) 明Form1Caption添加PageFrame1PageCount5Command1Caption返回主菜單主表單中的Command1Page1Caption學(xué)生表Page2Caption教師表Page3Caption班級(jí)表Page4Caption課程表Page5Caption成績(jī)表Command1Caption添加與上面的Command1不同,這是在各個(gè)頁(yè)面中的Command1Command2Caption清空函數(shù)與方法聲明:因?yàn)樘砑颖韱沃袑?duì)于5個(gè)表的操作方法類(lèi)似,所以這里只給出學(xué)生表的添加部分,其余4個(gè)頁(yè)面的程序請(qǐng)同學(xué)們自己對(duì)照思考和編制。(1) Form1中的Active事件功能: 設(shè)置焦點(diǎn)位置程序清單:this.pageframe1.page1.text1.setfocus(2) Form1中的Command1的Click事件功能: 釋放當(dāng)前窗口程序清單: thisform.release(3) Page1中Command1的Click事件功能: 將輸入的新記錄信息添加到學(xué)生表中,完成新記錄的添加工作程序清單:num1=alltrim(thisform.pageframe1.page1.text1.value)num2=alltrim(thisform.pageframe1.page1.text2.value)num3=alltrim(thisform.pageframe1.page1.text3.value)num4=alltrim(thisform.pageframe1.page1.text4.value)num5=alltrim(dtoc(thisform.pageframe1.page1.text5.value) &并非是alltrim(thisform.pageframe1.page1.text5.value)set exact ondo case case num1= messagebox(學(xué)號(hào)不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page1.text1.setfocus case num2= messagebox(姓名不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page1.text2.setfocus case num3= messagebox(性別不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page1.text3.setfocus case num4= messagebox(班級(jí)編號(hào)不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page1.text4.setfocus case num5= messagebox(出生日期不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page1.text5.setfocusotherwise a=messagebox(確認(rèn)添加么?,1+64+0,系統(tǒng)提示!) if a=1 select student go bottom insert into student(學(xué)號(hào),姓名,性別,班級(jí)編號(hào),出生日期) values(num1,num2,num3,num4,ctod (num5) messagebox(添加成功!) else thisform.pageframe1.page1.text1.setfocus endifendcase(4) Page1中的Command2的Click事件:功能: 清空當(dāng)前頁(yè)面上輸入的數(shù)據(jù)程序清單:this.parent.text1.value=this.parent.text2.value=this.parent.text3.value=this.parent.text4.value=this.parent.text5.value=由于其它各個(gè)頁(yè)面上的添加數(shù)據(jù)的操作大同小異,這里不再贅述。比如:num1=alltrim(thisform.pageframe1.page2.text1.value)num2=alltrim(thisform.pageframe1.page2.text2.value)num3=alltrim(thisform.pageframe1.page2.text3.value)num4=alltrim(thisform.pageframe1.page2.text4.value)num5=alltrim(thisform.pageframe1.page2.text5.value)num6=alltrim(dtoc(thisform.pageframe1.page2.text6.value) &并非是alltrim(thisform.pageframe1.page2.text6.value)set exact ondo case case num1= messagebox(教師代碼不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page2.text1.setfocus case num2= messagebox(姓名不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page2.text2.setfocus case num3= messagebox(性別不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page2.text3.setfocus case num4= messagebox(職稱(chēng)不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page2.text4.setfocus case num5= messagebox(部門(mén)不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page2.text5.setfocus case num6= messagebox(出生日期不能為空!,0+48,系統(tǒng)提示!) thisform.pageframe1.page2.text6.setfocus otherwise a=messagebox(確認(rèn)添加么?,1+64+0,系統(tǒng)提示!) if a=1 select student go bottom insert into student(教師代碼,姓名,性別,職稱(chēng),部門(mén),出生日期) values(num1,num2,num3,num4,num5,ctod(num6) messagebox(添加成功!) else thisform.pageframe1.page2.text1.setfocus endifendcase2.4 數(shù)據(jù)查詢(xún)模塊功能描述: 用戶(hù)可以通過(guò)不同的頁(yè)面完成對(duì)5個(gè)不同表中的數(shù)據(jù)的查詢(xún)操作界面設(shè)計(jì):表單名稱(chēng): 查詢(xún)文件名: 查詢(xún).scx數(shù)據(jù)環(huán)境: student.dbf, class.dbf, score.dbf, teacher.dbf, course.dbf對(duì)象設(shè)置: 查詢(xún)主表單中的對(duì)象設(shè)置:對(duì) 象 屬 性 值說(shuō) 明Form1Caption查詢(xún)PageFrame1PageCount3Command1Caption返回主菜單主表單中的Command1PageFrame1.Page1中的對(duì)象設(shè)置:對(duì) 象 屬 性 值Combo1RowSourceType6-字段RowSourceClassese.班級(jí)編號(hào)Combo2RowSourceType6-字段RowSourceStudent.姓名Label1Caption請(qǐng)選擇班級(jí)代碼和姓名Label2Caption班級(jí)代碼Label3Caption姓名Label4Caption學(xué)號(hào)Label5Caption姓名Label6Caption性別Label7Caption出生日期PageFrame1.Page2用來(lái)對(duì)數(shù)據(jù)表進(jìn)行瀏覽,其界面為:其中的對(duì)象設(shè)置:對(duì) 象 屬 性 值Combo1RowSourceType1-值RowSource學(xué)生表,教師表,班級(jí)表,課程表,成績(jī)表Style2-下拉列表框Value1Label1Caption請(qǐng)選擇要瀏覽的表Grid1RecordSourceType0-表PageFrame1.Page3用來(lái)進(jìn)行課程瀏覽.其界面為:其中的對(duì)象設(shè)置:對(duì) 象 屬 性 值CommandGroup1ButtonCount5Label1Caption課程代碼Label2Caption課程名稱(chēng)Label3Caption類(lèi)別Label4Caption教師代碼函數(shù)與方法聲明:(1) Thisform.PageFrame1.Page1中的Deactive事件:功能: 當(dāng)前學(xué)生情況查詢(xún)頁(yè)面被釋放時(shí),使數(shù)據(jù)查詢(xún)?cè)O(shè)置過(guò)濾條件為空.程序清單:set filter to(2) Thisform.PageFrame1.Page1.Combo1中的InteractiveChange事件:功能: 根據(jù)下拉列表框的選擇,設(shè)置班級(jí)信息的過(guò)濾條件,同時(shí)清空文本框信息.程序清單:public mm=bo1.valueselect studentset filter to 班級(jí)編號(hào)=mthisform.pageframe1.page1.text1.value=thisform.pageframe1.page1.text2.value=thisform.pageframe1.page1.text3.value=thisform.pageframe1.page1.text4.value=(3) Thisform.PageFrame1.page1.Combo2中的InteractiveChange事件:功能: 根據(jù)前面設(shè)置的班級(jí)過(guò)濾條件對(duì)學(xué)生信息進(jìn)行查詢(xún),并將結(jié)果在當(dāng)前頁(yè)面顯示程序清單:locate for 姓名=this.value *用組合框中的值進(jìn)行查找if found()thisform.pageframe1.page1.text1.value=學(xué)號(hào)thisform.pageframe1.page1.text2.value=姓名thisform.pageframe1.page1.text3.value=性別thisform.pageframe1.page1.text4.value=出生日期bo2.value=endif(4) Thisform.PageFrame1.page2中的Init事件:功能: 在“數(shù)據(jù)表瀏覽”頁(yè)顯示時(shí)進(jìn)行相關(guān)的初始化工作.程序清單:with this.grid1 .recordsourcetype=6 .recordsource=student .refresh .columncount=5 .column1.width=60 .column2.width=65 .column3.width=40 .column4.width=70 .column5.width=60 .column1.header1.caption=學(xué)號(hào) .column2.header1.caption=姓名 .column3.header1.caption=性別 .column4.header1.caption=出生日期 .column5.header1.caption=班級(jí)編號(hào) .readonly=.t. .deletemark=.f.endwith(5) Thisform.PageFrame1.Page2.Combo1中的IntelactiveChange事件功能: 在“數(shù)據(jù)表瀏覽”頁(yè)中根據(jù)下拉組合框中的選擇對(duì)不同的表進(jìn)行數(shù)據(jù)內(nèi)容顯示程序清單:&加入如下代碼,可防止由字段少的表往字段多的表切換時(shí)造成數(shù)據(jù)字段丟失無(wú)法顯示的問(wèn)題with this.parent.grid1 .columncount=6 .column1.width=60 .column2.width=65 .column3.width=50 .column4.width=66 .column5.width=70 .column6.width=70endwith&即每次都事先把grid先刷新成行數(shù)教多的表.do case case this.value=1 with this.parent.grid1 .recordsourcetype=6 .recordsource=student .columncount=5 .column1.width=60 .column2.width=65 .column3.width=40 .column4.width=70 .column5.width=60 .column1.header1.caption=學(xué)號(hào) .column2.header1.caption=姓名 .column3.header1.caption=性別 .column4.header1.caption=出生日期 .column5.header1.caption=班級(jí)編號(hào) .refresh .readonly=.t. .deletemark=.f. endwith case this.value=2 with this.parent.grid1 .columncount=6 .recordsource=teacher .column1.header1.caption=教師代碼 .column2.header1.caption=姓名 .column3.header1.caption=性別 .column4.header1.caption=出生日期 .column5.header1.caption=部門(mén) .column6.header1.caption=技術(shù)職務(wù) .column1.width=60 .column2.width=65 .column3.width=50 .column4.width=66 .column5.width=70 .column6.width=70 .refresh .readonly=.t. .deletemark=.f. endwith case this.value=3 with this.parent.grid1 .recordsourcetype=6 .recordsource=classes .columncount=6 .column1.width=60 .column2.width=65 .column3.width=50 .column4.width=70 .column5.width=60 .column6.width=60 .column1.header1.caption=班級(jí)編號(hào) .column2.header1.caption=年級(jí) .column3.header1.caption=專(zhuān)業(yè) .column4.header1.caption=系代碼 .column5.header1.caption=學(xué)制 .column6.header1.caption=類(lèi)別 .refresh .readonly=.t. .deletemark=.f. endwith case this.value=4 with this.parent.grid1 .recordsourcetype=6 .recordsource=course .columncount=4 .column1.width=60 .column2.width=100 .column3.width=50 .column4.width=50 .column1.header1.caption=課程代碼 .column2.header1.caption=課程名稱(chēng) .column3.header1.caption=類(lèi)別 .column4.header1.caption=教師代碼 .refresh .readonly=.t. .deletemark=.f. endwith case this.value=5 with this.parent.grid1 .recordsourcetype=6 .recordsource=score .columncount=3 .column1.width=60 .column2.width=100 .column3.width=50 .column1.header1.caption=學(xué)號(hào) .column2.header1.caption=課程代碼 .column3.header1.caption=成績(jī) .refresh .readonly=.t. .deletemark=.f. endwithendcase(6) Thisform.PageFrame1.Page3中的Init事件功能: 當(dāng)“課程瀏覽”頁(yè)面被顯示出來(lái)時(shí),進(jìn)行相關(guān)的初始化工作.程序清單:select coursethis.text1.value=課程代碼this.text2.value=課程名稱(chēng)this.text3.value=類(lèi)別this.text4.value=教師代碼(7) Thisform.PageFrame1.Page3中的Refresh事件功能: 在“課程瀏覽”頁(yè)面中刷新當(dāng)前的數(shù)據(jù)顯示程序清單:select coursethis.text1.value=課程代碼this.text2.value=課程名稱(chēng)this.text3.value=類(lèi)別this.text4.value=教師代碼(8) Thisform.PageFrame1.Page3中的CommandGroup1的Click事件功能: 利用按鈕組完成對(duì)數(shù)據(jù)庫(kù)中的記錄瀏覽程序清單:select coursedo case case this.value=1 go top case this.value=2 skip -1 if bof() messagebox(已到首部!,0+48,系統(tǒng)提示) go top endif case this.value=3 skip if eof() messagebox(已到末尾!,0+48,系統(tǒng)提示) go bottom endif case this.value=4 go bottom case this.value=5 thisform.releaseendcasethisform.refresh2.5 數(shù)據(jù)修改模塊功能描述: 用戶(hù)可以通過(guò)不同的頁(yè)面完成對(duì)5個(gè)不同表中的數(shù)據(jù)的修改操作界面設(shè)計(jì):由于修改表單中對(duì)于5個(gè)表的操作方法類(lèi)似,這里只給出第一個(gè)頁(yè)面即“學(xué)生表”的設(shè)計(jì)部分。其余4個(gè)頁(yè)面的設(shè)計(jì)及相關(guān)的程序代碼請(qǐng)同學(xué)們自己思考并完成。表單名稱(chēng): 修改文件名: 修改.scx數(shù)據(jù)環(huán)境: student.dbf, class.dbf, score.dbf, teacher.dbf, course.dbf對(duì)象設(shè)置: 對(duì) 象 屬 性 值Form1Caption修改PageFrame1PageCount5Command1Caption返回:Page1.Combo1RowSourceType6-字段RowSourceStudent.學(xué)號(hào)Page2.Combo1RowSourceType6-字段RowSourceTeacher.教師代碼Page3.Combo1RowSourceType6-字段RowSourceClassess.班級(jí)編號(hào)Page4.Combo1RowSourceType6-字段RowSourceCourse.課程代碼Page5.Combo1RowSourceType6-字段RowSourceScore.學(xué)號(hào)Page1.Command1Caption確定Page1.Command2Caption退出函數(shù)與方法聲明:(1) Thisform.PageFrame1.Page1中的Activate事件:功能: 在學(xué)生信息修改頁(yè)面顯示時(shí)進(jìn)行初始化操作程序清單:select studentgo topthis.text1.value=學(xué)號(hào)this.text2.value=姓名this.text3.value=性別this.text4.value=出生日期this.text5.value=班級(jí)編號(hào)(2) Thisform.PageFrame1.Page1.Combo1中的IntelactiveChange事件:功能: 根據(jù)學(xué)號(hào),查找對(duì)應(yīng)的學(xué)生信息程序清單:select studentlocate for 學(xué)號(hào)=this.valueif found() thisform.pageframe1.page1.text1.value=學(xué)號(hào) thisform.pageframe1.page1.text2.value=姓名 thisform.pageframe1.page1.text3.value=性別 thisform.pageframe1.page1.text4.value=出生日期 thisform.pageframe1.page1.text1.value=班級(jí)編號(hào)endif(3) Thisform.PageFrame1.Page1.Command1中的Click事件:功能: 當(dāng)用戶(hù)單擊“確定”按鈕后,將當(dāng)前修改的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中.程序清單:select studenta=alltrim(thisform.pageframe1.page1.text1.value)b=alltrim(thisform.pageframe1.page1.text2.value)c=alltrim(thisform.pageframe1.page1.text3.value)d=alltrim(dtoc(thisform.pageframe1.page1.text4.value)e=alltrim(thisform.pageframe1.page1.text5.value)set exact ondo case case a= messagebox(學(xué)生學(xué)號(hào)不能為空,0+48,系統(tǒng)提示) thisform.pageframe1.page1.text1.setfocus case b= messagebox(學(xué)生姓名不能為空,0+48,系統(tǒng)提示) thisform.pageframe1.page1.text2.setfocus case c= messagebox(學(xué)生性別不能為空,0+48,系統(tǒng)提示) thisform.pageframe1.page1.text3.setfocus case d= messagebox(學(xué)生出生日期不能為空,0+48,系統(tǒng)提示) thisform.pageframe1.page1.text4.setfocus case e= messagebox(學(xué)生班級(jí)編號(hào)不能為空,0+48,系統(tǒng)提示) thisform.pageframe1.page1.text5.setfocus otherwise m=messagebox(確定要修改學(xué)生記錄嗎?,0+48,系統(tǒng)提示) if m=1 select student replace 學(xué)號(hào) with a replace 姓名 with b replace 性別 with c replace 出生日期 with ctod(d) replace 班級(jí)編號(hào) with e messagebox(修改成功!) endifendcase(4) Thisform.PageFrame1.Pmand2中的Click事件:功能: 釋放當(dāng)前窗口程序清單:thisform.release2.6 數(shù)據(jù)統(tǒng)計(jì)模塊功能描述: 用戶(hù)可以通過(guò)不同的頁(yè)面完成對(duì)5個(gè)不同表中的數(shù)據(jù)的修改操作界面設(shè)計(jì):表單名稱(chēng): 統(tǒng)計(jì)文件名: 統(tǒng)計(jì).scx數(shù)據(jù)環(huán)境: student.dbf, score.dbf, course.dbf對(duì)象設(shè)置:對(duì) 象屬 性值Form1Caption統(tǒng)計(jì)OptionGroup1ButtonCount2Label1Caption最高成績(jī)Label2Caption最低成績(jī)Label3Caption平均成績(jī)List1RowSourceType6-字段Label4Label6(空白標(biāo)簽用于顯示運(yùn)算結(jié)果)Command1Caption返回函數(shù)與方法聲明:(1) Form1中的Init事件功能: 在窗體被調(diào)用時(shí),進(jìn)行顯示的初始化工作程序清單:this.label5.caption=this.label6.caption=this.label7.caption=(2) Thisform.OptionGroup1中的IntelactiveChange事件功能: 根據(jù)單選框的選擇情況,進(jìn)行數(shù)據(jù)源的設(shè)置程序清單:do case case this.value=0 thisform.list1.rowsource= *無(wú)選項(xiàng)時(shí)不設(shè)置數(shù)據(jù)源 thisform.list1.refresh case this.value=1 thisform.list1.rowsource=student.姓名 thisform.list1.refresh case this.value=2 thisform.list1.rowsource=course.課程名稱(chēng) thisform.list1.refreshendcase(3) Thisform.List1中的IntelactiveChange事件功能: 如果選項(xiàng)被改變,則根據(jù)用戶(hù)指定的新選項(xiàng)重新統(tǒng)計(jì)并顯示結(jié)果程序清單:do casecase thisform.optiongroup1.value=1 xm=alltrim(t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編一下《操場(chǎng)上》教學(xué)設(shè)計(jì)
- 眼眶骨折的臨床護(hù)理
- 體表腫瘤的臨床護(hù)理
- 做操教學(xué)設(shè)計(jì)
- 2025年合同制度對(duì)企業(yè)的戰(zhàn)略?xún)r(jià)值
- 生理學(xué)第一章試卷及答案
- 上屆初三中考試卷及答案
- 山東一年級(jí)試卷及答案
- 2025陜西核工業(yè)工程勘察院有限公司招聘21人筆試參考題庫(kù)附帶答案詳解
- 2025長(zhǎng)治租房合同范本參考
- 四肢與關(guān)節(jié)檢查
- 產(chǎn)后抑郁癥講課課件
- 低碳生活 主題班會(huì)課件-2篇
- 會(huì)下金蛋的鵝課件
- 實(shí)驗(yàn)室組織機(jī)構(gòu)圖
- 2024年河南省鄭州市中考一模語(yǔ)文試題(含答案解析)
- 2024年《金融市場(chǎng)基礎(chǔ)知識(shí)》沖刺復(fù)習(xí)講義
- GB/T 4706.10-2024家用和類(lèi)似用途電器的安全第10部分:按摩器具的特殊要求
- DL∕T 860.10-2018 電力自動(dòng)化通信網(wǎng)絡(luò)和系統(tǒng) 第10部分:一致性測(cè)試
- 2024多級(jí)AO工藝污水處理技術(shù)規(guī)程
- 電影鑒賞評(píng)論智慧樹(shù)知到期末考試答案章節(jié)答案2024年山東藝術(shù)學(xué)院
評(píng)論
0/150
提交評(píng)論