




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VisualFoxPro9.0項(xiàng)目開發(fā)案例教程
VisualFoxPro9.0應(yīng)用基礎(chǔ)VisualFoxPro(簡稱VFP),起源于xBase系列的dBASEⅡ、dBASEⅢ、Clipper、FoxBase以及FoxPro,是為數(shù)據(jù)庫管理和應(yīng)用程序開發(fā)而設(shè)計(jì)的功能強(qiáng)大的面向?qū)ο蟓h(huán)境。
VisualFoxPro9.0是Microsoft公司系列軟件的最新版本,是一種優(yōu)秀的數(shù)據(jù)庫管理系統(tǒng)和開發(fā)工具。
VisualFoxPro9.0可以和其他應(yīng)用程序(如MicrosoftExcel、MicrosoftWord、MicrosoftVisualBasic等)進(jìn)行交互,也可以創(chuàng)建基于Web的應(yīng)用程序。VisualFoxPro9.0應(yīng)用基礎(chǔ)VisualFoxPro9.0可以更好地支持ActiveX控件和面向?qū)ο蟪绦蛟O(shè)計(jì),使得開發(fā)數(shù)據(jù)庫的工具更加完善與快捷,從而成為功能強(qiáng)大、可靠的數(shù)據(jù)庫管理系統(tǒng)。它提供了大量的系統(tǒng)開發(fā)工具和向?qū)В╓izard),使以往費(fèi)時(shí)費(fèi)力的開發(fā)工作變得輕松自如。它提供了全新的智能感知技術(shù),能夠自動(dòng)填寫屬性和參數(shù),提高了代碼錄入速度和質(zhì)量。1.1VFP環(huán)境與項(xiàng)目管理器VFP工作界面
系統(tǒng)界面主要包括以下幾部分:命令窗口、菜單和工具欄定制VFP環(huán)境項(xiàng)目管理器項(xiàng)目管理器是VFP中各種數(shù)據(jù)和對象的主要組織工具。1.2數(shù)據(jù)庫和表建立數(shù)據(jù)庫建立數(shù)據(jù)表設(shè)置字段屬性瀏覽和編輯數(shù)據(jù)表給數(shù)據(jù)表添加記錄刪除或還原記錄建立索引
1.3查詢與視圖
查詢是將數(shù)據(jù)表中滿足某些條件的記錄和字段篩選出來形成的一個(gè)子表,此子表可以像其他數(shù)據(jù)表一樣保存起來以供隨時(shí)使用。視圖和查詢類似,數(shù)據(jù)都來源于一個(gè)或幾個(gè)表,這些表稱之為基表。查詢就是對基表進(jìn)行“查看”,不能通過它來修改基表。而視圖可以修改數(shù)據(jù),并將修改后的數(shù)據(jù)傳回給基表。1.3查詢與視圖建立和運(yùn)行查詢建立多表查詢建立視圖1.4表單設(shè)計(jì)與應(yīng)用
表單(Form),是VisualFoxPro提供的一種功能強(qiáng)大的界面。各種對話框和窗口都是表單的不同表現(xiàn)形式。它可以使用戶在簡單明了的界面中查看數(shù)據(jù)或?qū)?shù)據(jù)記錄輸入到表中。表單以文件的形式存于磁盤,其擴(kuò)展名為.scx。它可以屬于某個(gè)項(xiàng)目,也可以游離于任何項(xiàng)目之外。在項(xiàng)目管理器中創(chuàng)建的表單自動(dòng)隸屬于該項(xiàng)目。
1.4表單設(shè)計(jì)與應(yīng)用創(chuàng)建和運(yùn)行表單表單常用屬性AlwaysOnTopAutoCenterBackColorBorderStyleCaptionClosableDataSessionMaxButtonMinButtonMovableScrollbarsWindowStateWindowType1.4表單設(shè)計(jì)與應(yīng)用表單常用方法
Release方法
Refresh方法
Show方法
Hide方法
SetFocus方法
1.4表單設(shè)計(jì)與應(yīng)用表單及控件的常用事件
Init事件Destroy事件
Load事件Unload事件
GotFocus事件Click事件
DblClick事件RightClick事件
InteractiveChange事件
1.4表單設(shè)計(jì)與應(yīng)用編輯方法或事件代碼設(shè)置表單屬性表單控件工具欄控件的操作與布局1.5報(bào)表與標(biāo)簽
報(bào)表是各種數(shù)據(jù)最常用的輸出形式,VFP9.0中的報(bào)表不僅可以輸出數(shù)據(jù)表內(nèi)容,還提供了數(shù)據(jù)統(tǒng)計(jì)、自動(dòng)布局等功能。使用報(bào)表向?qū)г陧?xiàng)目管理器中,選擇Documents選項(xiàng)卡的Reports項(xiàng),單擊New按鈕,在打開的對話框中單擊ReportWizard按鈕,在彈出的WizardSelection對話框中選擇ReportWizard。然后按報(bào)表向?qū)нx擇數(shù)據(jù)表、輸出字段、排序字段、分組字段、報(bào)表風(fēng)格、布局,最后保存為報(bào)表文件(.frx)。1.5報(bào)表與標(biāo)簽建立快速報(bào)表報(bào)表的加工調(diào)整帶區(qū)寬度移動(dòng)控件修改控件1.5報(bào)表與標(biāo)簽設(shè)計(jì)標(biāo)簽
標(biāo)簽是一種特殊類型的報(bào)表。如職工工資發(fā)放條、學(xué)生補(bǔ)考通知書、職工人事情況表等,都是為了滿足用戶實(shí)際需要而設(shè)計(jì)的報(bào)表,可以用標(biāo)簽實(shí)現(xiàn)。在項(xiàng)目管理器的Documents選項(xiàng)卡中選擇Labels項(xiàng),單擊New按鈕,再單擊LabelWizard按鈕,然后就可以按向?qū)?chuàng)建標(biāo)簽了。1.6菜單的設(shè)計(jì)與應(yīng)用
在Windows下運(yùn)行的軟件一般都使用菜單,菜單是各種軟件的主要操作手段。它可以幫助使用者按照分級(jí)選擇方式,逐步選擇命令,并取得最終服務(wù)的方便快捷的手段。了解VisualFoxPro系統(tǒng)菜單的結(jié)構(gòu)、特點(diǎn)和行為,則是設(shè)計(jì)用戶自己的菜單系統(tǒng)的基礎(chǔ)。菜單結(jié)構(gòu)
典型的菜單系統(tǒng)一般是一個(gè)下拉式菜單,由一個(gè)條形菜單(菜單欄)和一組彈出式菜單(子菜單)組成。其中條形菜單作為主菜單,彈出式菜單作為子菜單。當(dāng)選擇一個(gè)條形菜單選項(xiàng)時(shí),激活相應(yīng)的彈出式菜單。快捷菜單是一種單擊鼠標(biāo)右鍵才出現(xiàn)的彈出式菜單。1.6菜單的設(shè)計(jì)與應(yīng)用下拉式菜單設(shè)計(jì)打開菜單設(shè)計(jì)器進(jìn)行菜單設(shè)計(jì)常規(guī)選項(xiàng)設(shè)置菜單選項(xiàng)設(shè)置菜單選項(xiàng)設(shè)置為頂層表單添加菜單快捷菜單設(shè)計(jì)
1.7類的創(chuàng)建與使用
在開發(fā)應(yīng)用軟件過程中,有時(shí)相似的對象會(huì)多次用到。比如,多個(gè)表單的Windowtype屬性都為“1-模式”,表單中都有“確定”和“取消”兩個(gè)按鈕,“取消”按鈕中都有“thisform.release”這樣的語句,等等。我們可以創(chuàng)建具有某些共同特性的對象,在需要時(shí)調(diào)用,共同的部分就不需要設(shè)置了,只需設(shè)置那些獨(dú)特的部分。“類”就可以起到這樣的作用。代表了一類對象,就好像模板一樣。我們可以根據(jù)需要建立各種各樣的類,并將它們保存起來,供以后調(diào)用,這樣可以大大提高軟件開發(fā)效率和質(zhì)量。1.7類的創(chuàng)建與使用創(chuàng)建類在項(xiàng)目管理器上選擇Classes選項(xiàng)卡,單擊New按鈕。使用類1.7類的創(chuàng)建與使用
對于一般控件做的類,使用起來非常簡單。進(jìn)入表單設(shè)計(jì)器,打開表單控件工具欄,單擊上面的ViewClasses按鈕,在快捷菜單中選Add項(xiàng),在打開的對話框中選擇類庫文件,這時(shí)的工具欄顯示出該類庫中的類對應(yīng)的按鈕。這時(shí)就可以像使用標(biāo)準(zhǔn)控件一樣使用類控件。若要使用標(biāo)準(zhǔn)控件,可單擊表單控件工具欄上面的ViewClasses按鈕,在快捷菜單中選Standard項(xiàng)。
1.7類的創(chuàng)建與使用類特征的繼承與變異子類將繼承該類所有的屬性,也可以有自己的特性。調(diào)用類的方法程序類的代碼可能不適合特定的對象,我們就需要寫入自己的代碼,根據(jù)類的變異特性,這時(shí)類原來的代碼就不起作用了。屏蔽基類方法程序1.8常用語句IF...ENDIFDOCASE...ENDCASEDOWHILE...ENDDOFOR...ENDFORSCAN...ENDSCANSTORE表達(dá)式TO變量名表READEVENTSCLEAREVENTSCOPYFILE文件名1TO文件名2COPYSTRUCTUREEXTENDEDTO表文件名[FIELDS字段名表]1.8常用語句11.ONERROR[命令]12.ONESCAPE[命令]13.ONKEYLABEL鍵名[命令]14.SETCONFIRMON|OFF15.SETDEFAULTTO[路徑]16.FLUSH17.CANCEL18.BLANK[FIELDS字段名列表][范圍][FOR條件][WHILE條件][NOOPTIMIZE]19.RETURN20.CALCULATE表達(dá)式列表[范圍][FOR條件][WHILE條件][TO變量列表|TOARRAY數(shù)組名][NOOPTIMIZE]1.9常用函數(shù)數(shù)值處理函數(shù)
1.INT(數(shù)值表達(dá)式)2.ROUND(數(shù)值表達(dá)式,小數(shù)位數(shù))3.RAND([種子值])4.MOD(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2)5.ABS(數(shù)值表達(dá)式)字符處理函數(shù)
1.9常用函數(shù)1.TRIM(字符表達(dá)式)2.LTRIM(字符表達(dá)式)3.ALLTRIM(字符表達(dá)式)4.LEFT(字符表達(dá)式,數(shù)值表達(dá)式)5.SUBSTR(字符表達(dá)式,開始截取的位置[,截取的長度])6.LEN(字符表達(dá)式)7.LIKE(字符表達(dá)式1,字符表達(dá)式2)8.RAT(要搜索的字符,被搜索的字符串[,N])9.STUFF(原字符串,開始替換的位置,被替換的字符數(shù),用于替換的字符串)10.CHRTRAN(字符表達(dá)式1,字符表達(dá)式2,字符表達(dá)式3)
VisualFoxPro9.0應(yīng)用技巧
本章通過若干實(shí)例介紹軟件開發(fā)中涉及到的一些常見技巧,主要包括數(shù)據(jù)輸入、數(shù)據(jù)查詢、數(shù)據(jù)輸出、與Excel交互、使用圖形、工具欄、進(jìn)度條等內(nèi)容。2.1數(shù)據(jù)輸入2.1.1中英文自動(dòng)切換原理以文本框或組合框?yàn)楦割愋陆ㄒ粋€(gè)子類,同時(shí)為這個(gè)新建的類添加一個(gè)屬性,根據(jù)此屬性的值分別調(diào)整imestatus()函數(shù)的值為0或1,以此來控制系統(tǒng)的輸入法狀態(tài)。2.1數(shù)據(jù)輸入2.1.2組合框的記憶選擇原理對組合框的每一次選擇都作以記載,把選擇的值存儲(chǔ)到公共變量中,并把此變量的值保存到內(nèi)存變量文件里。這樣,每次進(jìn)入組合框時(shí)從內(nèi)存變量文件中恢復(fù)保存的變量,就可以記憶以往的選擇,從而提高操作效率。2.1數(shù)據(jù)輸入2.1.3編輯框中實(shí)現(xiàn)自動(dòng)更正的方法原理1、把word的自動(dòng)更正資料庫文件mso.acl中的漢字詞組正誤信息轉(zhuǎn)換為.dbf文件2、對允許輸入漢字的控件的Keypress事件編寫代碼,對輸入的漢字詞組在資料庫中進(jìn)行校驗(yàn),自動(dòng)把錯(cuò)誤的詞組轉(zhuǎn)換為對應(yīng)正確詞組。2.1數(shù)據(jù)輸入2.1.4VFP智能感應(yīng)的二次開發(fā)
VFP從7.0版開始增加了智能感應(yīng)(IntelliSense)功能。當(dāng)我們輸入命令縮寫及空格后,命令會(huì)自動(dòng)擴(kuò)展。輸入函數(shù)名及左括弧、對象名及點(diǎn)之后,系統(tǒng)會(huì)自動(dòng)提示相應(yīng)的參數(shù)、屬性、方法名等供選擇。原理智能感應(yīng)的所有內(nèi)容及方案都在一個(gè)表中定義,表的文件名默認(rèn)為foxcode.dbf,在系統(tǒng)變量_foxcode中存放。修改或擴(kuò)展這個(gè)表的內(nèi)容就可以改變智能感應(yīng)的內(nèi)容。2.2數(shù)據(jù)查詢2.2.1熱點(diǎn)跟蹤和懸停效果在一個(gè)表單的各個(gè)控件之間進(jìn)行焦點(diǎn)的轉(zhuǎn)移時(shí),控件能夠在鼠標(biāo)滑過的時(shí)候突出顯示,實(shí)現(xiàn)的既是熱點(diǎn)跟蹤的效果。原理1、利用SpeciaEffect屬性設(shè)置熱點(diǎn)跟蹤效果2、用_mouseoverfx類突出顯示效果3、利用MouseEnter和MouseLeave事件進(jìn)一步設(shè)置動(dòng)態(tài)效果4、對Grid的記錄進(jìn)行控制2.2數(shù)據(jù)查詢2.2.2系統(tǒng)的查詢類及其應(yīng)用原理1、VFP提供了進(jìn)行查詢的類庫(_dataquery.vcx),應(yīng)用其中的類_qbf,可以在表單的文本框中輸入查詢條件并顯示查詢結(jié)果。所有用于顯示字段內(nèi)容的文本框都可以用來輸入相關(guān)的查詢值,使用起來簡單方便。2、利用了事務(wù)回滾技術(shù)2.2數(shù)據(jù)查詢2.2.3用VFP設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)瀏覽器
原理利用COPYSTRUCTUREEXTENDED命令生成一個(gè)數(shù)據(jù)表的結(jié)構(gòu)描述文件,并把結(jié)構(gòu)描述文件的前四個(gè)主要字段送給表格控件作為數(shù)據(jù)源,從而實(shí)現(xiàn)在一個(gè)交互界面中隨意選擇表文件進(jìn)行結(jié)構(gòu)瀏覽2.3輸出報(bào)表2.3.1VFP9.0中的多細(xì)節(jié)帶區(qū)VisualFoxPro9.0的新增功能:執(zhí)行多細(xì)節(jié)帶區(qū)功能,實(shí)現(xiàn)一對多關(guān)系打印。通過打開報(bào)表設(shè)計(jì)器的屬性窗口,單擊OptionalBands選項(xiàng)卡中的Add按鈕添加一個(gè)細(xì)節(jié)帶區(qū)到列表中。在建立多細(xì)節(jié)帶區(qū)報(bào)表時(shí),應(yīng)當(dāng)按一對多關(guān)系中的父表的某個(gè)具有惟一值的字段進(jìn)行分組。2.3輸出報(bào)表2.3.2在報(bào)表中實(shí)現(xiàn)每頁打印指定記錄數(shù)原理可以采用數(shù)據(jù)分組的方法來實(shí)現(xiàn)每頁打印指定記錄數(shù),而數(shù)據(jù)分組則可以使用臨時(shí)表或設(shè)置報(bào)表變量的兩種方法實(shí)現(xiàn)。使用臨時(shí)表的方法設(shè)置一個(gè)局部變量DetailNum的值為每頁打印的記錄數(shù),根據(jù)它對記錄分組,形成分組號(hào)保存到自定義字段別名GroupCount中,把所有記錄的分組號(hào)以及原有字段內(nèi)容保存到臨時(shí)表Temp2,作為報(bào)表的數(shù)據(jù)源。2.3輸出報(bào)表2.3.2在報(bào)表中實(shí)現(xiàn)每頁打印指定記錄數(shù)使用報(bào)表變量的方法數(shù)據(jù)環(huán)境的Init事件定義一個(gè)全局變量tobePrint,保存每頁要打印的記錄數(shù)。新建兩個(gè)報(bào)表變量nCount和nGroup。nCount用于統(tǒng)計(jì)已經(jīng)打印的記錄個(gè)數(shù)。nGroup的值來自一個(gè)表達(dá)式,表示當(dāng)前記錄已經(jīng)滿足一頁最大打印記錄數(shù)時(shí),則用于代表頁碼的變量nGroup就會(huì)增加1。2.3輸出報(bào)表2.3.3在VFP中處理JPG文件原理不將圖像文件保存到GENERAL型字段中,而是把圖像文件保存到一個(gè)二進(jìn)制的Memo型字段,當(dāng)需要顯示圖像時(shí),則將該二進(jìn)制Memo型字段的內(nèi)容輸出到一個(gè)臨時(shí)文件中,然后再將臨時(shí)文件名賦給Image控件或OLEBound控件對應(yīng)屬性來顯示圖像。2.3輸出報(bào)表2.3.3在VFP中處理JPG文件將圖像文件保存到二進(jìn)制Memo型字段中的ftom函數(shù);將二進(jìn)制Memo型字段中的圖像保存到一個(gè)外部文件中的mtof函數(shù)。2.4其他技術(shù)2.4.1表單Grid容器中控件的動(dòng)態(tài)增刪及屬性設(shè)置原理1、用AddObject(zd,'Column')方法在表單的Grid1容器中添加一個(gè)“列”控件(文本框),以zd的值(選取的字段名)為控件名。2、然后,設(shè)置控件的屬性。包括寬度(Width)、可見性(Visible)、控制源(ControlSource)、列標(biāo)題(Header1.Caption)等。2.4其他技術(shù)2.4.2工具欄的制作原理1、如果不脫離VFP系統(tǒng)環(huán)境(應(yīng)用程序擴(kuò)展名為APP),可通過定制工具欄或“object.show”指令,來使用VFP系統(tǒng)提供的各種工具欄。2、利用VFP系統(tǒng)提供的一個(gè)工具欄類tbrEditing來創(chuàng)建工具欄,位于…\Samples\Classes\Samples.vcx類庫中,可用于任意程序。3、指定工具欄停放位置的命令ToolBar.Dock[nLocation[,X,Y]]2.4其他技術(shù)2.4.3進(jìn)度條的實(shí)現(xiàn)原理1、使用ActiveX控件實(shí)現(xiàn)進(jìn)度條選定表單控件工具欄的ActiveX控件,在表單上添加一個(gè)MicrosoftProgressBarControlVersion6.0控件,并設(shè)置其Max屬性值,反映查詢的最大次數(shù)。2、使用_thermometer類實(shí)現(xiàn)進(jìn)度條
_thermometer類位于“……\MicrosoftVisualFoxPro9\Ffc\_therm.vcx類庫中,基類為Form,該類用于提供一個(gè)標(biāo)準(zhǔn)的進(jìn)度顯示。2.4其他技術(shù)2.4.4VFP與Excel交互
在VFP中控制Excel操作利用CREATEOBJECT("Excel.Application")命令生成excel對象,然后利用對象變量設(shè)置Excel的各項(xiàng)屬性及其復(fù)制數(shù)據(jù)。在VFP中獲取Excel數(shù)據(jù)利用APPENDFROM<文件名>TYPEXLS命令從EXCEL文件獲取數(shù)據(jù)。個(gè)人通訊錄管理器目的:
1.把親友、同學(xué)、同事的通訊錄信息集中統(tǒng)一管理,及時(shí)維護(hù)和更新,通過計(jì)算機(jī)提高檢索速度。
2.將收集的信息打印裝訂成“個(gè)人通訊錄”,便于平時(shí)使用。技術(shù):
1、“篩選”子程序的定義和調(diào)用
2、輸出報(bào)表樣式的設(shè)計(jì)和使用。3.1軟件基本要求及設(shè)計(jì)方案要求:
1.軟件精巧,功能實(shí)用,界面友好。
2.?dāng)?shù)據(jù)維護(hù)方便。
3.信息檢索簡便、高效。
4.打印的“個(gè)人通訊錄”便于使用。3.2數(shù)據(jù)庫和表的設(shè)計(jì)數(shù)據(jù)庫表文件Txl三個(gè)索引,索引標(biāo)識(shí)名字分別為“姓名”、“單位或地址”和“群組”。3.3表單外觀設(shè)計(jì)表單要具有對表信息的增、刪、改、排序、查找和打印功能。3.4表單及其控件的編碼3.4.1與查詢功能相關(guān)的代碼1、建立表單新“方法”——sx2、定義“篩選”過程把在對應(yīng)文本框中輸入的“群組”、“姓名”、“電話”、“單位或地址”內(nèi)容作為過濾條件,通過過程把滿足條件的記錄篩選出來,達(dá)到查詢目的。3.4表單及其控件的編碼3.4.1與查詢功能相關(guān)的代碼3、調(diào)用“篩選”過程對Text1、Text2、Text3、Text4每個(gè)文本框的InteractiveChange事件編寫一條語句thisform.sx。“全部”命令按鈕的作用是清除過濾條件,顯示全部記錄,所以把全部條件清空后,也需調(diào)用“篩選”方法。3.4表單及其控件的編碼3.4.2
與排序有關(guān)的代碼根據(jù)選項(xiàng)按鈕組的值,通過SETORDERTO語句設(shè)置不同的索引順序3.4.3添加記錄功能的實(shí)現(xiàn)3.4表單及其控件的編碼3.4.3添加記錄功能的實(shí)現(xiàn)利用SCATTER和GATHER命令把某一條記錄原有的值傳遞到新記錄中去,這樣可以只做少量修改就完成了一條新記錄的輸入。3.4表單及其控件的編碼3.4.4切換刪除標(biāo)記用函數(shù)DELETED()測試當(dāng)前記錄是否帶有刪除標(biāo)記,如果已作了刪除標(biāo)記,則執(zhí)行命令RECALL取消刪除標(biāo)記,否則用命令DELETE添加刪除標(biāo)記。
3.4表單及其控件的編碼3.4.5打印和預(yù)覽——報(bào)表文件txl_bb
3.4表單及其控件的編碼3.4.6主程序設(shè)計(jì)
設(shè)置必要的環(huán)境狀態(tài),然后執(zhí)行表單Txl_screen是系統(tǒng)窗口,可通過代碼對它的一些屬性進(jìn)行設(shè)置。READEVENTS命令執(zhí)行后可以接受用戶事件。3.4表單及其控件的編碼3.4.7表單上“退出”按鈕的代碼
計(jì)算帶有刪除標(biāo)記的記錄個(gè)數(shù)送給變量cnt,如果cnt大于0,則用PACK命令刪除帶有標(biāo)記的記錄。釋放(關(guān)閉)表單。恢復(fù)系統(tǒng)狀態(tài),清用戶事件,退出系統(tǒng)。3.5生成可執(zhí)行文件項(xiàng)目管理器中單擊Build按鈕編譯軟件光盤目錄檢索與維護(hù)工具功能:家庭用光盤目錄檢索與維護(hù)工具技術(shù):
1、光盤類別從代碼到類別名稱的自動(dòng)轉(zhuǎn)換
2、表的獨(dú)占方式打開
3、模態(tài)表單來實(shí)現(xiàn)對話框效果4.1系統(tǒng)設(shè)計(jì)目標(biāo)目標(biāo):1、設(shè)計(jì)一個(gè)表單,作為人機(jī)交互界面,要求實(shí)現(xiàn)對信息的增、刪、改、排序、查詢和打印(特殊格式)功能,這樣就可以省去菜單、工具欄等對象,使軟件更加簡潔。2、由于“類別”信息具有一定的規(guī)律性,屬于枚舉型數(shù)據(jù),并且在基礎(chǔ)信息錄入時(shí)需要大量的重復(fù)式的操作,所以我們要設(shè)法提高輸入效率。這里我們采用一種直接代換式輸入方法,即用代號(hào)表示類別信息進(jìn)行輸入。4.2數(shù)據(jù)表設(shè)計(jì)兩個(gè)自由表,一個(gè)叫tab_cd(光盤信息表),另一個(gè)叫tab_lb(光盤類別表)表tab_cd建立一個(gè)升序索引,索引名為“盤序號(hào)”,索引類型為Regular,索引表達(dá)式為“盤號(hào)+序號(hào)”4.3主表單設(shè)計(jì)4.3.1主表單外觀設(shè)計(jì)4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
表單的Init事件代碼
1、生成編輯框(Edit1)中對應(yīng)的類別提示信息。
2、表tab_cd中的記錄按預(yù)先定義的索引“盤序號(hào)”排序
3、調(diào)用表單的篩選子程序sx,將光盤信息表的內(nèi)容顯示出來4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
表單的自定義方法sx及其代碼把在對應(yīng)文本框中輸入的“盤號(hào)”、“內(nèi)容”、“編演者”、“喜歡程序”內(nèi)容和在組合框中選擇“類別”組合起來作為過濾條件,通過SETFILTERTO把滿足條件的記錄篩選出來,達(dá)到查詢的目的。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
調(diào)用“篩選”過程除了在表單的Init事件中,通過語句thisform.sx調(diào)用篩選子程序sx以外,當(dāng)文本框Text1、Text2、Text3、Text5和組合框Combo1的內(nèi)容發(fā)生改變時(shí),即當(dāng)它們的內(nèi)容通過鍵盤或鼠標(biāo)修改后,激活其InteractiveChange事件,這時(shí)也需要對表tab_cd的記錄進(jìn)行篩選,即執(zhí)行sx過程。“全部”命令按鈕的作用是清除過濾條件,顯示全部記錄,也許調(diào)用“篩選”過程。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
添加記錄功能的實(shí)現(xiàn)利用SCATTER和GATHER命令把某一條記錄原有的值傳遞到新記錄中去,這樣可能只需做少量修改就完成了一條新記錄的輸入。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
切換刪除標(biāo)記“刪除”按鈕的Click事件可對當(dāng)前記錄添加或取消刪除標(biāo)記。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
與排序有關(guān)的代碼用語句“SETORDERto盤序號(hào)”將表中的記錄按“盤序號(hào)”進(jìn)行排序,然后把光標(biāo)定位到第一條記錄,最后用語句thisform.Grid1.Column1.Text1.SetFocus將光標(biāo)定位到表單上表格Grid1第一列的文本框上。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
打印和預(yù)覽通過“預(yù)覽”和“打印”按鈕對報(bào)表文件tab_cd進(jìn)行預(yù)覽和打印。“類別”按鈕對應(yīng)代碼調(diào)用表單form_lb對類別信息進(jìn)行維護(hù)。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
“退出”按鈕對應(yīng)代碼
1、計(jì)算帶有刪除標(biāo)記的記錄個(gè)數(shù)送給變量jls,如果jls大于0,則用PACK命令刪除帶有標(biāo)記的記錄。
2、釋放(關(guān)閉)表單。
3、恢復(fù)原有狀態(tài),清除用戶事件,退出系統(tǒng)。4.3主表單設(shè)計(jì)4.3.2主表單及控件的編碼
Grid1中第六列文本Text1的相關(guān)代碼
1、第六列文本Text1的GotFocus使光標(biāo)定位在第六列(類別)時(shí),類別與代號(hào)提示信息出現(xiàn)在編輯框Edit1中,光標(biāo)離開第六列時(shí),提示信息消失。
2、第六列文本Text1的InteractiveChange事件能將輸入的類別代號(hào)自動(dòng)轉(zhuǎn)換成相應(yīng)的類別名稱。4.4類別信息維護(hù)表單設(shè)計(jì)4.4.1類別信息維護(hù)表單外觀設(shè)計(jì)4.4類別信息維護(hù)表單設(shè)計(jì)4.4.2類別信息維護(hù)表單及其控件代碼表單的Init事件將記錄數(shù)送給文本框Text4,作為Value值顯示出來。“添加”、“刪除”、“退出”按鈕對應(yīng)代碼各按鈕的代碼與主表單的對應(yīng)按鈕代碼類似或相同。4.5打印報(bào)表設(shè)計(jì)建立報(bào)表文件tab_cb.frx,預(yù)覽結(jié)果如圖所示4.6主程序設(shè)計(jì)主程序的主要作用是對環(huán)境進(jìn)行設(shè)置,然后執(zhí)行表單form_cd.scx。_screen是系統(tǒng)窗口,可通過代碼對它的一些屬性進(jìn)行設(shè)置。READEVENTS命令執(zhí)行后可以接受用戶事件。常用類的設(shè)計(jì)與應(yīng)用
本章首先介紹一下面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)知識(shí),然后給出兩個(gè)常用類的設(shè)計(jì)和應(yīng)用方法。這兩個(gè)類可實(shí)現(xiàn)對任意表的記錄進(jìn)行修改、增刪和查詢,對提高程序的可重用性,提高軟件的適應(yīng)性和軟件開發(fā)效率具有重要意義。5.1面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)1.對象(Object)2.屬性(Property)3.事件(Event)和方法(Method)4.類(Class)5.繼承(Inherit)7.面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)8.VisualFoxPro基類9.容器與控件5.2“分頁增刪改”類的設(shè)計(jì)用于實(shí)現(xiàn)對任意數(shù)據(jù)表記錄的輸入、增添、刪除和修改操作,界面上可以顯示和修改任意一條記錄的全部字段,每次顯示一條記錄。在進(jìn)行數(shù)據(jù)維護(hù)時(shí),可以隨時(shí)按指定的字段或記錄號(hào)定位記錄,以提高操作效率。5.2“分頁增刪改”類的設(shè)計(jì)5.2.1類的創(chuàng)建與屬性設(shè)置
基類(BasedOn)為Form,指定要保存到(StoreIn)的類庫為page_form,指定類名(ClassName)為fyzsg,5.2“分頁增刪改”類的設(shè)計(jì)5.2.2添加類的“方法”和“屬性”新的方法u_show用來“顯示查詢控件組”,設(shè)置可見性(Visibility)為Public。方法u_hide用來隱藏查詢控件組和u_rcd方法用來顯示或隱藏記錄的刪除標(biāo)記,顯示當(dāng)前記錄號(hào)、記錄數(shù),可見性均為Public。新的屬性u(píng)_key用來“指定關(guān)鍵字段名(兩個(gè)漢字)”,設(shè)置可見性(Visibility)為Public,默認(rèn)的初始值為“??”。
5.2“分頁增刪改”類的設(shè)計(jì)5.2.3表單類的編碼
init事件代碼u_show代碼u_hide代碼u_rcd代碼5.2“分頁增刪改”類的設(shè)計(jì)5.2.4控件的編碼在表單類上,我們放置了十二個(gè)命令按鈕。記錄翻閱按鈕代碼“首頁”、“前頁”、“后頁”和“尾頁”分別用來控制記錄指針到第一條記錄、上一條記錄、下一條記錄和最后一條記錄。5.2“分頁增刪改”類的設(shè)計(jì)與查詢相關(guān)的按鈕代碼單擊“查內(nèi)容”或“查頁號(hào)”按鈕時(shí),要調(diào)整條件提示信息并顯示查詢控件組。記錄增刪與退出按鈕代碼“添加”命令按鈕的作用是在當(dāng)前數(shù)據(jù)表中追加一條新的記錄,“刪除”命令按鈕用來對當(dāng)前記錄添加或取消刪除標(biāo)記,“退出”命令按鈕對加了刪除標(biāo)記的記錄物理刪除,并釋放表單。5.3“分頁增刪改”類的應(yīng)用添加類庫page_form.vcx到表單創(chuàng)建基于fyzsg類的表單,在表單集中刪除不必要的默認(rèn)表單Form1,只留下基于fyzsg類的表單并保存。修改表單運(yùn)行表單5.4“通用查詢”類的設(shè)計(jì)5.4.1基本設(shè)計(jì)思想
屬于通用的數(shù)據(jù)庫查詢模塊,要能夠?qū)θ我庵付ǖ谋恚〝?shù)據(jù)庫中的表或自由表)確定查詢條件、指定輸出字段和排序字段,并要能夠?qū)敵鼋Y(jié)果進(jìn)行控制。5.4“通用查詢”類的設(shè)計(jì)5.4.2類的創(chuàng)建與屬性設(shè)置基類為Form,保存到的類庫為class_lsz,指定類名(ClassName)為u_serch。設(shè)置類的屬性為三個(gè)頁面添加控件和設(shè)置屬性
5.4“通用查詢”類的設(shè)計(jì)5.4.3表單類的屬性定義及init事件代碼添加表單類的屬性表單類中添加一個(gè)自定義屬性tname作為入口參數(shù),存放要查詢的數(shù)據(jù)表名。5.4“通用查詢”類的設(shè)計(jì)5.4.3表單類的屬性定義及init事件代碼表單類的init事件代碼聲明全局變量,用來保存程序所需的信息和數(shù)據(jù);從表單的自定義屬性tname中取出數(shù)據(jù)表名;設(shè)置系統(tǒng)狀態(tài);打開指定的數(shù)據(jù)表,利用AFIELDS()函數(shù)將表的結(jié)構(gòu)信息存入全局?jǐn)?shù)組stru_mem、字段數(shù)送fcnt;。5.4“通用查詢”類的設(shè)計(jì)5.4.4頁框中Page1上按鈕及其相關(guān)代碼命令按鈕“>”代碼將列表框List1中選中的字段移動(dòng)到列表框List2
命令按鈕“>>”代碼將列表框List1中所有字段移動(dòng)到列表框List2命令按鈕“<”代碼將列表框List2中選中的字段移動(dòng)到列表框List15.4“通用查詢”類的設(shè)計(jì)5.4.4頁框中Page1上按鈕及其相關(guān)代碼命令按鈕“<<”代碼將列表框List2中所有字段移回到列表框List1表單類自定義方法qhkd代碼如果查找的字段存在,則①取字段名和字段值寬度的最大值,保存到數(shù)組stru_mem對應(yīng)行第6列的元素當(dāng)中,作為字段的輸出寬度。②在數(shù)組stru_mem對應(yīng)行第5列的元素中,設(shè)置輸出標(biāo)記.T.(此前已設(shè)置為.F.)。③累加所有輸出字段的寬度,得到輸出字段的總寬度,保存到全局變量HKD中。5.4“通用查詢”類的設(shè)計(jì)5.4.5頁框中Page2上控件及其相關(guān)代碼
文本框代碼用于輸入查詢條件關(guān)系表達(dá)式的組成部分——值。表單類自定義方法tjzts的代碼能夠根據(jù)當(dāng)前字段類型、關(guān)系運(yùn)算符描述信息進(jìn)行相應(yīng)的條件值提示5.4“通用查詢”類的設(shè)計(jì)5.4.5頁框中Page2上控件及其相關(guān)代碼
“選中”和“清除”命令按鈕代碼“選中”按鈕將兩個(gè)子條件和邏輯運(yùn)算符合成為總條件(邏輯表達(dá)式字符串),送給編輯框edit1,作為它的value屬性值保存并顯示出來。“清除”命令按鈕的作用是清除編輯框edit1的內(nèi)容5.4“通用查詢”類的設(shè)計(jì)5.4.5頁框中Page2上控件及其相關(guān)代碼
表單類自定義方法ztj的代碼這段代碼的功能是由調(diào)用參數(shù)zd(字段名)、gx(關(guān)系運(yùn)算符描述信息)、nr(值),形成子條件(關(guān)系表達(dá)式),送給全局變量jstj。5.4“通用查詢”類的設(shè)計(jì)5.4.6頁框中Page3上命令按鈕代碼
“選中”命令按鈕的作用是,從列表框中取出選中的字段名,形成排序表達(dá)式送到編輯框。5.4“通用查詢”類的設(shè)計(jì)5.4.7表單類命令按鈕及其相關(guān)代碼
表單類“顯示”按鈕代碼“顯示”按鈕的作用是根據(jù)指定的輸出字段、檢索條件和排序字段將數(shù)據(jù)表的內(nèi)容在屏幕上顯示出來。表單類自定義方法zdtjpx的代碼形成輸出字段表列送變量sczd,取出檢索條件jstj,進(jìn)行排序處理。5.4“通用查詢”類的設(shè)計(jì)表單類“到txt”按鈕代碼根據(jù)指定的輸出字段、檢索條件和排序字段將數(shù)據(jù)表的內(nèi)容按一定格式輸出到文本文件中表單類自定義方法“l(fā)ine1”、“l(fā)ine2”和“l(fā)ine3”代碼方法“l(fā)ine1”的功能是輸出一條橫線,長度為各輸出字段寬度之和。方法“l(fā)ine2”的功能是輸出選定的字段名并控制中間的空格數(shù)以調(diào)整輸出寬度與橫線匹配。方法“l(fā)ine3”的功能是輸出選定字段的值并控制中間的空格數(shù)以調(diào)整輸出寬度與橫線匹配。5.4“通用查詢”類的設(shè)計(jì)表單類“到Excel”和“取消”按鈕代碼“到Excel”按鈕的作用是根據(jù)指定的輸出字段、檢索條件和排序字段將數(shù)據(jù)表的內(nèi)容輸出到Excel工作簿文件中。“取消”命令按鈕的作用是關(guān)閉表單。5.5“通用查詢”類的應(yīng)用①選擇輸出字段②設(shè)置查詢條件③設(shè)置排序字段④開始查詢購房打分排隊(duì)軟件目標(biāo):人工輸入申請購房者的基礎(chǔ)信息,由計(jì)算機(jī)自動(dòng)求出各項(xiàng)分?jǐn)?shù)和總分?jǐn)?shù),進(jìn)行排序,打印輸出結(jié)果,提高工作效率和質(zhì)量。技術(shù):用到了第5章介紹的“分頁增刪改”類和“通用查詢”類,在動(dòng)態(tài)信息提示、即時(shí)求值、宏代換應(yīng)用等方面采用了比較特殊的技術(shù)。6.1數(shù)據(jù)表與菜單6.1.1數(shù)據(jù)表設(shè)計(jì)——自由表house.dbf6.1數(shù)據(jù)表與菜單
6.1.2菜單設(shè)計(jì)系統(tǒng)的主要功能是輸入基本信息,計(jì)算各項(xiàng)分?jǐn)?shù)和總分?jǐn)?shù),查詢,排序和打印輸出。其中,輸入和計(jì)算由一個(gè)模塊完成,查詢、排序、打印輸出由另一個(gè)模塊(通用查詢)完成。6.2主程序和“退出”程序軟件的入口程序:主程序.prg
這段代碼首先設(shè)置系統(tǒng)窗口的一些屬性。包括標(biāo)題、圖標(biāo)、背景顏色,取消最大化按鈕、關(guān)閉按鈕,使用窗口最大化。然后設(shè)置系統(tǒng)的開關(guān)或狀態(tài)。最后關(guān)閉所有文件,清除所有變量,執(zhí)行主菜單并讀取用戶事件。
軟件的結(jié)束程序:退出.prg
這段代碼首先恢復(fù)系統(tǒng)窗口的默認(rèn)屬性。包括標(biāo)題、圖標(biāo)、最大化按鈕、關(guān)閉按鈕。然后關(guān)閉所有文件,清所有變量,釋放窗口和表單,恢復(fù)系統(tǒng)菜單,退出VFP。6.3“輸入計(jì)算”表單表單可以在第5章介紹的“分頁增刪改”類的基礎(chǔ)上創(chuàng)建。將第5章創(chuàng)建的類庫page_form.vcx復(fù)制到本章源代碼所在的文件夾,并將類庫page_form.vcx添加到本章的項(xiàng)目文件house.pjx中。6.3“輸入計(jì)算”表單6.3“輸入計(jì)算”表單
表單上與數(shù)據(jù)表對應(yīng)有19個(gè)字段,為了使光標(biāo)定位到每個(gè)字段的文本框時(shí),能夠在表單的文本框Text4中顯示或清除提示信息,或者自動(dòng)計(jì)算并填寫該字段的值,需要分別對字段所在的文本框編寫GotFocus事件代碼。6.3“輸入計(jì)算”表單需要顯示提示信息的字段需要顯示提示信息的有“職別”、“住戶類別”、“排序類別”、“申請戶型”、“學(xué)齡分”、“人口結(jié)構(gòu)分”和“照顧分”,共7個(gè)字段。需要清除提示信息的字段需要清除提示信息的有“姓名”、“工資”和“獎(jiǎng)勵(lì)分”,共3個(gè)字段。6.3“輸入計(jì)算”表單需要自動(dòng)計(jì)算并填寫內(nèi)容的字段需要自動(dòng)計(jì)算并填寫內(nèi)容(可能同時(shí)需要顯示或清除提示信息)的有“工作時(shí)間”、“高校時(shí)間”、“截止時(shí)間”、“職別分”、“工資分”、“工齡分”、“高校校齡分”、“面積補(bǔ)差分”和“總分”,共9個(gè)字段。6.3“輸入計(jì)算”表單表單自定義方法及其編碼自定義方法bdsqz相當(dāng)于表單中的一個(gè)函數(shù)。它將一個(gè)算術(shù)表達(dá)式字符串作為自變量,對表達(dá)式進(jìn)行處理并求值,得到一個(gè)等式字符串或一個(gè)數(shù)值字符串作為函數(shù)值返回。在“面積補(bǔ)差分”和“照顧分”兩個(gè)字段中,允許輸入表達(dá)式,當(dāng)光標(biāo)離開該字段時(shí),系統(tǒng)自動(dòng)計(jì)算出表達(dá)式的值,并形成一個(gè)等式字符串或一個(gè)數(shù)值字符串重新填寫到當(dāng)前字段中。為此,我們對這兩個(gè)字段的LostFocus事件編寫代碼來調(diào)用表單的自定義方法完成對表達(dá)式處理和求值操作。6.3“輸入計(jì)算”表單運(yùn)行表單
打開“購房打分排隊(duì).輸入計(jì)算”窗口。此時(shí),可以輸入或修改當(dāng)前記錄各個(gè)字段的值6.4“查詢輸出”表單
為實(shí)現(xiàn)對購房打分信息的查詢、排序、輸出和打印功能,我們設(shè)計(jì)一個(gè)“查詢輸出”表單。該表單可以直接使用第5章介紹的“通用查詢”類,只修改部分屬性即可。6.4“查詢輸出”表單6.4.1創(chuàng)建表單并設(shè)置屬性設(shè)置自定義屬性tname的值為house,作為入口參數(shù),也就是指定了要查詢的數(shù)據(jù)表。此外,設(shè)置表單的Caption屬性為“購房打分排隊(duì).查詢輸出”作為窗口標(biāo)題,設(shè)置表單的icon(圖標(biāo))屬性為house.ico。設(shè)置標(biāo)簽Label1(TXT類別)和選項(xiàng)按鈕組Optiongroup1的Visible屬性為.F.,使它們不可見,因?yàn)檫@里用不著“多表頭”的TXT文本文件類型。6.4“查詢輸出”表單6.4.2運(yùn)行表單打開“購房打分排隊(duì).查詢輸出”窗口,可選擇輸出字段、排序字段,指定條件進(jìn)行查詢和輸出。圖書資料管理系統(tǒng)目標(biāo):主要針對于小型資料室,比如高校的院系資料室,中等學(xué)校以及企事業(yè)單位的圖書資料室等,用于管理圖書、期刊信息,進(jìn)行資料查詢和借閱等處理。技術(shù):用到了第5章介紹的“分頁增刪改”類,創(chuàng)建并使用了新的“借閱者”和“瀏覽增刪改”類,采用了“直接代換式輸入”、“多表關(guān)聯(lián)查詢”等特殊技術(shù),提高了輸入效率和查詢質(zhì)量。7.1菜單與主程序設(shè)計(jì)7.1.1菜單設(shè)計(jì)
7.1菜單與主程序設(shè)計(jì)7.1.2主程序設(shè)計(jì)——main.prg
代碼首先設(shè)置系統(tǒng)窗口的一些屬性。包括標(biāo)題、圖標(biāo)、背景顏色,取消最大化按鈕、關(guān)閉按鈕,使用窗口最大化。然后設(shè)置系統(tǒng)的開關(guān)或狀態(tài),關(guān)閉所有文件,清所有變量。最后聲明必要的全局變量和數(shù)組,恢復(fù)存于文件的內(nèi)存變量,執(zhí)行主菜單并讀取用戶事件。7.2數(shù)據(jù)表與視圖設(shè)計(jì)數(shù)據(jù)庫:資料庫.dbc
7.2.1數(shù)據(jù)表設(shè)計(jì)
“圖書”、“圖書流通”、“期刊”、“期刊流通”、“借閱者”五個(gè)數(shù)據(jù)庫表。7.2.2視圖設(shè)計(jì)
“圖書借閱”和“期刊借閱”兩個(gè)本地視圖。
7.3類的設(shè)計(jì)與類庫管理7.3.1借閱者組合框類設(shè)計(jì)基類為ComboBox,保存到類庫wizstyle.vcx,指定類名為jyz
。Init事件:首先清除自身(組合框)的項(xiàng)目。然后選擇“借閱者”數(shù)據(jù)表的工作區(qū),按“姓名”索引排序,依次將每條記錄的“姓名”字段內(nèi)容添加到組合框,作為組合框的項(xiàng)目。7.3類的設(shè)計(jì)與類庫管理LostFocus事件:取出組合框中顯示的借閱者姓名。然后選擇“借閱者”數(shù)據(jù)表的工作區(qū),用Locate語句進(jìn)行記錄定位。如果數(shù)據(jù)表中沒有指定的借閱者姓名,則添加一條記錄,并將新的姓名作為記錄的內(nèi)容。最后,調(diào)用init事件代碼,刷新組合框項(xiàng)目。7.3類的設(shè)計(jì)與類庫管理7.3.2瀏覽增刪改類設(shè)計(jì)
基類為Form,保存到類庫wizstyle.vcx,指定類名為llzsg。
7.3類的設(shè)計(jì)與類庫管理7.3.3類庫管理第5章介紹的“分頁增刪改”類將用于本章的“圖書資料管理系統(tǒng)”,對“圖書”和“期刊”數(shù)據(jù)表內(nèi)容進(jìn)行分頁增刪改,我們可以將類庫page_form中的fyzsg類復(fù)制到本章創(chuàng)建的類庫wizstyle中。
7.4表單設(shè)計(jì)
對照7.1.1節(jié)的菜單項(xiàng),我們應(yīng)該設(shè)計(jì)11個(gè)表單:
圖書分頁增刪改表單:“圖書登記_a”
圖書瀏覽增刪改表單:“圖書登記_b”
期刊分頁訂閱登記表單:“期刊登記_a”
期刊瀏覽訂閱登記表單:“期刊登記_b”
期刊到刊登記表單:“到刊登記”借閱者名單維護(hù)表單:“借閱者”圖書借還處理表單:“圖書借還”期刊借還處理表單:“期刊借還”圖書查詢表單:“圖書查詢”期刊查詢表單:“期刊查詢”借閱清單查詢表單:“借閱信息”7.4表單設(shè)計(jì)7.4.1圖書分頁增刪表單
本表單用于實(shí)現(xiàn)以分頁(每頁一條記錄)方式對圖書信息進(jìn)行錄入、修改、添加和刪除操作,在“分頁增刪改”類的基礎(chǔ)上創(chuàng)建。
7.4表單設(shè)計(jì)7.4.2期刊分頁訂閱登記表單
與圖書分頁增刪表單類似,本表單用于實(shí)現(xiàn)以分頁方式對期刊信息的維護(hù)操作,也是在“分頁增刪改”類的基礎(chǔ)上創(chuàng)建。表單的創(chuàng)建方法與圖書增刪改表單相同。7.4表單設(shè)計(jì)7.4.3圖書瀏覽增刪改表單
本表單用于實(shí)現(xiàn)以瀏覽(表格)方式對圖書信息進(jìn)行維護(hù)管理,在“瀏覽增刪改”類的基礎(chǔ)上創(chuàng)建。7.4表單設(shè)計(jì)7.4.4期刊瀏覽訂閱登記表單
本表單用于實(shí)現(xiàn)以瀏覽方式對期刊訂閱信息進(jìn)行維護(hù)管理,在“瀏覽增刪改”類的基礎(chǔ)上創(chuàng)建。7.4表單設(shè)計(jì)7.4.5借閱者名單維護(hù)表單
本表單用于實(shí)現(xiàn)以瀏覽方式對借閱者名單進(jìn)行維護(hù)管理,也在“瀏覽增刪改”類的基礎(chǔ)上創(chuàng)建。7.4表單設(shè)計(jì)7.4.6期刊到刊登記表單這個(gè)表單用于對已訂閱的期刊進(jìn)行到刊登記,在指定刊號(hào)或刊名、年份后,顯示出當(dāng)前已經(jīng)登記的各期“期號(hào)”,單擊“添加”按鈕,自動(dòng)按順序添加新的“期號(hào)”,同時(shí)應(yīng)具備“期號(hào)”刪除和當(dāng)前記錄號(hào)顯示功能。7.4表單設(shè)計(jì)7.4.7圖書借還處理表單這個(gè)表單用于進(jìn)行圖書借閱和歸還處理。在指定書號(hào)或書名、借閱者后,單擊“借閱”按鈕,進(jìn)行圖書借閱登記。雙擊“圖書流通”數(shù)據(jù)表某條記錄的“還期”字段,自動(dòng)填寫當(dāng)前日期,進(jìn)行歸還處理。具備“取消借閱”功能。本表單使用了7.3節(jié)創(chuàng)建的jyz(借閱者組合框)類。7.4表單設(shè)計(jì)7.4.8期刊借還處理表單這個(gè)表單用于進(jìn)行期刊借閱和歸還處理。在指定刊號(hào)或刊名、年份、期號(hào)、借閱者后,單擊“借閱”按鈕,進(jìn)行期刊借閱登記。雙擊“期刊流通”數(shù)據(jù)表某條記錄的“還期”字段,自動(dòng)填寫當(dāng)前日期,進(jìn)行歸還處理。具備“取消借閱”功能。本表單使用了7.3節(jié)創(chuàng)建的jyz(借閱者組合框)類。7.4表單設(shè)計(jì)7.4.9圖書查詢表單這個(gè)表單用于對圖書信息進(jìn)行查詢,同時(shí)可以查詢指定圖書的借閱情況。采用了多表關(guān)聯(lián)查詢技術(shù)。7.4表單設(shè)計(jì)7.4.10期刊查詢表單這個(gè)表單用于對期刊信息進(jìn)行查詢,同時(shí)可以查詢指定期刊的借閱情況。采用了多表關(guān)聯(lián)查詢技術(shù)。7.4表單設(shè)計(jì)7.4.11借閱信息查詢表單這個(gè)表單用于查詢每位借閱者的借閱清單,使用了7.3節(jié)創(chuàng)建的jyz(借閱者組合框)類。7.5軟件的使用軟件運(yùn)行后,可以通過菜單項(xiàng)使用相應(yīng)的功能數(shù)據(jù)維護(hù):圖書分頁增刪改、圖書瀏覽增刪改、期刊分頁訂閱登記、期刊瀏覽訂閱登記、期刊到刊登記、借閱者信息維護(hù)借還處理:圖書借還、期刊借還查詢:查閱圖書、查閱期刊、借閱清單通用工資管理系統(tǒng)目標(biāo):建立適用于各企事業(yè)單位、各類人員的通用工資管理系統(tǒng),能夠管理月工資、日工資、計(jì)時(shí)工資和計(jì)件工資。技術(shù):在數(shù)據(jù)表結(jié)構(gòu)的定義、數(shù)據(jù)的維護(hù)、統(tǒng)計(jì)、查詢、打印等方面都采用了通用技術(shù)。尤其是結(jié)構(gòu)描述文件和宏代換起到了至關(guān)重要的作用。8.1數(shù)據(jù)表設(shè)計(jì)創(chuàng)建表的結(jié)構(gòu)描述文件
COPYSTRUCTURETO<文件名>extended利用結(jié)構(gòu)描述文件生成表
CREATE<數(shù)據(jù)表>FROM<結(jié)構(gòu)描述文件>對結(jié)構(gòu)描述文件的結(jié)構(gòu)進(jìn)行有限修改,比如添加若干字段,仍然可以用來創(chuàng)建數(shù)據(jù)表。利用結(jié)構(gòu)描述文件的這些特性,我們可以在程序運(yùn)行時(shí),讓用戶修改結(jié)構(gòu)描述文件的記錄,然后創(chuàng)建數(shù)據(jù)表,達(dá)到動(dòng)態(tài)修改表結(jié)構(gòu)的目的。8.1數(shù)據(jù)表設(shè)計(jì)結(jié)構(gòu)描述文件
ygz_j.dbf、rgz_j.dbf、jsgz_j.dbf和jjgz_j.dbf四個(gè)擴(kuò)充的結(jié)構(gòu)描述文件。數(shù)據(jù)表
ygz.dbf、rgz.dbf、jsgz.dbf和jjgz.dbf,分別用來保存月工資、日工資、計(jì)時(shí)工資和計(jì)件工資的有關(guān)信息。數(shù)據(jù)表gzlb.dbf——在軟件運(yùn)行時(shí)供用戶能夠選擇和設(shè)置不同的工資類型。8.2菜單與主程序設(shè)計(jì)8.2.1菜單設(shè)計(jì)“退出”菜單主程序.prg8.2菜單與主程序設(shè)計(jì)8.2.2主程序設(shè)計(jì)主程序.prg
設(shè)置系統(tǒng)窗口的一些屬性。包括標(biāo)題、圖標(biāo)、背景顏色,取消最大化按鈕、關(guān)閉按鈕,使用窗口最大化。然后設(shè)置系統(tǒng)的開關(guān)或狀態(tài),關(guān)閉所有文件,清所有變量。最后聲明三個(gè)全局變量,恢復(fù)存于文件SYS.MEM的內(nèi)存變量,執(zhí)行主菜單并讀取用戶事件。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.1工資類別設(shè)置
——類別設(shè)置.scx
在表單中通過下拉列表來指定工資類型,把工資類別名、工資類別符號(hào)、結(jié)構(gòu)描述文件名放到全局變量s_lbm、s_lbf、s_lbfj中,以便在系統(tǒng)的各個(gè)模塊中引用。并且工資類別設(shè)置具有記憶功能。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.2工資數(shù)據(jù)表結(jié)構(gòu)定義——結(jié)構(gòu)定義.scx
添加Grid1控件,其RecordSource屬性設(shè)置為“&s_lbfj”。這樣數(shù)據(jù)源就不再是固定的,而是用變量s_lbfj的值作為數(shù)據(jù)源,達(dá)到動(dòng)態(tài)指定數(shù)據(jù)源的效果,表格中反映對應(yīng)的表結(jié)構(gòu)描述文件。利用當(dāng)前結(jié)構(gòu)描述文件修改對應(yīng)的工資數(shù)據(jù)表結(jié)構(gòu)。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.2工資數(shù)據(jù)表結(jié)構(gòu)定義——結(jié)構(gòu)定義.scx
表單的Load事件:以獨(dú)占方式打開由全局變量s_lbfj所指定的擴(kuò)充結(jié)構(gòu)描述文件,并將表單標(biāo)題修改為“XX庫結(jié)構(gòu)”。表單的Activate事件:顯示當(dāng)前數(shù)據(jù)表(結(jié)構(gòu)描述文件)的記錄總數(shù)Grid1每一列文本對象的GotFocus事件:動(dòng)態(tài)地顯示出相應(yīng)的提示信息“插入”按鈕的作用是在當(dāng)前結(jié)構(gòu)描述文件中插入一條記錄“取消”按鈕用來關(guān)閉當(dāng)前打開的數(shù)據(jù)表(結(jié)構(gòu)描述文件)和表單“確認(rèn)”按鈕的主要功能是利用當(dāng)前結(jié)構(gòu)描述文件修改對應(yīng)的工資數(shù)據(jù)表結(jié)構(gòu)8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.3瀏覽修改工資表數(shù)據(jù)
——瀏覽修改.prg系統(tǒng)提供了“瀏覽修改”、“選字段修改”、“統(tǒng)一替換”和“條件修改”四種方式,以適應(yīng)不同需求。瀏覽修改方式與在VFP環(huán)境中使用BROWSE命令效果相仿。但為了在軟件運(yùn)行時(shí)對特定的工資數(shù)據(jù)的內(nèi)容進(jìn)行修改,開辟自己的瀏覽窗口,對字段進(jìn)行控制。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.4選字段修改工資表數(shù)據(jù)
——選項(xiàng)修改.scx首先把組合框Combo1的顯示值(也就是字段類別名)取出來放到變量zdlb中,用DOCASE語句根據(jù)字段類別建立相應(yīng)的過濾條件表達(dá)式字符串,送給變量gltj。然后利用全局變量s_lbfj和宏代換打開當(dāng)前結(jié)構(gòu)描述文件,把滿足gltj條件的記錄過濾出來。再用循環(huán)語句把這些記錄Field_name字段的值(也就是對應(yīng)工資數(shù)據(jù)表中指定類別的字段名)添加到組合框Combo2中,作為其列表項(xiàng),以此達(dá)到對工資數(shù)據(jù)表字段進(jìn)行篩選的目的。這里用到了擴(kuò)充的結(jié)構(gòu)描述文件中“類別”字段的內(nèi)容。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.5統(tǒng)一替換字段內(nèi)容
——統(tǒng)一替換.scx
利用“通用查詢”類,可以對任意數(shù)據(jù)表指定輸出字段和限制條件進(jìn)行查詢輸出。這里我們利用其指定輸出字段功能來指定要替換內(nèi)容的字段名,添加一個(gè)文本框來輸入替換表達(dá)式,直接利用它本身的功能設(shè)置限制條件,再修改某個(gè)命令按鈕的代碼,就可以完成統(tǒng)一替換字段內(nèi)容的操作。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.6條件修改工資表數(shù)據(jù)
——條件修改.scx這與利用“通用查詢”模塊進(jìn)行查詢,并把查詢結(jié)果顯示在屏幕上的效果相當(dāng)。因此可以引用“通用查詢”類,創(chuàng)建一個(gè)表單,再對表單進(jìn)行必要的修改。設(shè)置表單的自定義屬性tname的值為“&s_lbf”,作為入口參數(shù),通過全局變量s_lbf和宏代換指定工資數(shù)據(jù)表。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.7數(shù)據(jù)計(jì)算
——數(shù)據(jù)計(jì)算.prg在工作區(qū)a和工作區(qū)b分別打開特定的工資數(shù)據(jù)表和對應(yīng)的結(jié)構(gòu)描述文件。用循環(huán)語句對結(jié)構(gòu)描述文件的每條記錄進(jìn)行掃描。如果該記錄定義了公式,則取出field_name和“公式”字段的值保存到變量zdm和gs中,選擇工資數(shù)據(jù)表工作區(qū),用“REPLACEALL&zdmWITH&gs”語句計(jì)算并填寫工資數(shù)據(jù)表對應(yīng)字段的值,再返回結(jié)構(gòu)描述文件工作區(qū)。8.3系統(tǒng)功能的實(shí)現(xiàn)如果該記錄“類別”字段的內(nèi)容為“1”,說明對應(yīng)的工資數(shù)據(jù)表的字段是收入項(xiàng),則把該記錄field_name字段的值(也就是對應(yīng)的工資數(shù)據(jù)表的字段名)拼接到變量SRX中。如果該記錄“類別”字段的內(nèi)容為“2”,說明對應(yīng)的工資數(shù)據(jù)表的字段是支出項(xiàng),則把該記錄field_name字段的值拼接到變量ZCX中。最后選擇工資數(shù)據(jù)表工作區(qū),用REPLACE語句和宏代換功能計(jì)算并填寫“應(yīng)發(fā)工資”、“扣款合計(jì)”和“實(shí)發(fā)工資”字段的內(nèi)容,完成數(shù)據(jù)計(jì)算任務(wù)。8.3系統(tǒng)功能的實(shí)現(xiàn)8.3.8查詢輸出
——查詢輸出.scx
直接引用“通用查詢”類,創(chuàng)建一個(gè)表單,進(jìn)行必要的參數(shù)設(shè)置即可。8.4軟件的使用類別設(shè)置結(jié)構(gòu)定義瀏覽修改選項(xiàng)修改統(tǒng)一替換條件修改數(shù)據(jù)計(jì)算查詢輸出小區(qū)住戶信息管理系統(tǒng)目標(biāo):建立一個(gè)小區(qū)住戶信息管理系統(tǒng),用于對小區(qū)的樓棟信息和住戶信息進(jìn)行存儲(chǔ)和查詢。能夠顯示小區(qū)布局圖,自動(dòng)生成樓棟視圖。技術(shù):圖形中熱區(qū)的定義,樓棟視圖的自動(dòng)生成。在表單上動(dòng)態(tài)添加控件和設(shè)置屬性,動(dòng)態(tài)調(diào)整位置和大小。對象之間參數(shù)傳遞,標(biāo)簽控件Tag屬性的應(yīng)用,類的創(chuàng)建與應(yīng)用,宏代換的應(yīng)用等。9.1數(shù)據(jù)表設(shè)計(jì)建立一個(gè)自由表“樓棟信息.dbf”,按字段“編號(hào)”建立一個(gè)取名為“編號(hào)”的升序普通索引。在“樓棟信息”數(shù)據(jù)表中,每條記錄保存一棟住宅樓的基本信息。字段“層數(shù)”和“單元數(shù)”表示對應(yīng)的住宅樓有多少層,多少個(gè)單元(樓梯)。小區(qū)的所有住戶信息用一個(gè)數(shù)據(jù)表“住戶信息.dbf”保存,每條記錄為一個(gè)住戶的基本信息。按字段“編號(hào)”建立一個(gè)名為“編號(hào)”升序普通索引,。“編號(hào)”用8位數(shù)字符號(hào),前兩位代表樓棟編號(hào),3~4位代表單元號(hào),5~6位代表樓層。最后兩位代表同層、同單元的戶號(hào),我們稱之為梯戶號(hào)。梯戶號(hào)與數(shù)據(jù)表中的“門號(hào)”相對應(yīng)。9.1數(shù)據(jù)表設(shè)計(jì)“樓棟信息.dbf”數(shù)據(jù)表結(jié)構(gòu)“住戶信息.dbf”數(shù)據(jù)表結(jié)構(gòu)9.2菜單與主程序設(shè)計(jì)9.2.1菜單設(shè)計(jì)9.2菜單與主程序設(shè)計(jì)9.2.2主程序設(shè)計(jì)這段代碼首先設(shè)置系統(tǒng)窗口的一些屬性,然后設(shè)置系統(tǒng)的開關(guān)或狀態(tài),關(guān)閉所有文件,清所有變量,聲明必要的全局變量。接下來用數(shù)組元素定義不同梯戶數(shù)中每一梯戶號(hào)對應(yīng)的門號(hào),設(shè)置1~10小寫數(shù)字所對應(yīng)的大寫數(shù)字。最后執(zhí)行主菜單并讀取用戶事件。9.3類的設(shè)計(jì)與類庫管理9.3.1透明標(biāo)簽類的設(shè)計(jì)為了使鼠標(biāo)移動(dòng)到任意一棟住宅樓的圖標(biāo)時(shí),改變指針形狀,單擊鼠標(biāo)后打開該樓的視圖,需要在每個(gè)住宅樓的圖標(biāo)上建立熱區(qū)。創(chuàng)建一個(gè)透明標(biāo)簽類,設(shè)置適當(dāng)?shù)膶傩圆⒕帉懘a后,把它放到每個(gè)住宅樓的圖標(biāo)上作為一個(gè)控件,實(shí)現(xiàn)熱區(qū)和相應(yīng)的操作。
9.3類的設(shè)計(jì)與類庫管理9.3.2編輯框類和容器類的設(shè)計(jì)
每一棟樓的視圖由表單上若干個(gè)單元格組成,每個(gè)單元格是一個(gè)編輯框控件或容器控件。樓棟視圖樣式圖中左側(cè)的樓層標(biāo)注(一、二、三、四、五、六層)以及下邊的單元標(biāo)注(一單元、二單元、三單元、四單元)為容器控件,其余每個(gè)單元格都是一個(gè)編輯框控件。9.3.3類庫管理9.4表單設(shè)計(jì)9.4.1樓棟信息維護(hù)表單樓棟信息維護(hù)功能由該表單實(shí)現(xiàn),本表單用于實(shí)現(xiàn)以分頁方式對樓棟信息進(jìn)行錄入、修改、添加和刪除操作,在“分頁增刪改”類的基礎(chǔ)上創(chuàng)建。9.4表單設(shè)計(jì)9.4.2住戶信息維護(hù)表單本表單用于實(shí)現(xiàn)以瀏覽方式對住戶信息進(jìn)行維護(hù)管理,在“瀏覽增刪改”類的基礎(chǔ)上創(chuàng)建。9.4表單設(shè)計(jì)9.4.3住戶信息查詢表單
用于對“住戶信息”數(shù)據(jù)表進(jìn)行查詢,設(shè)置查詢條件,指定輸出字段、排序字段進(jìn)行查詢,將結(jié)果輸出到屏幕、文本文件或Excel工作簿,引用“通用查詢”類,創(chuàng)建一個(gè)表單,進(jìn)行必要的參數(shù)設(shè)置即可。9.4表單設(shè)計(jì)9.4.4小區(qū)布局表單在表單的快捷菜單中選擇DataEnvironment項(xiàng),打開數(shù)據(jù)環(huán)境對話框,將數(shù)據(jù)表“樓棟信息”添加到數(shù)據(jù)環(huán)境中。在表單上放置一個(gè)Image控件Image1,使其顯示繪制的小區(qū)布局圖。在表單中小區(qū)布局圖的每棟住宅樓圖標(biāo)上邊放置一個(gè)自定義類li_lb控件,根據(jù)圖標(biāo)調(diào)整位置和大小,使之盡可能覆蓋樓棟的圖標(biāo)。9.4表單設(shè)計(jì)9.4.5樓棟視圖表單該表單在設(shè)計(jì)時(shí)不需要放置任何控件,運(yùn)行時(shí)由程序根據(jù)參數(shù)自動(dòng)添加若干個(gè)編輯框控件和容器控件,自動(dòng)調(diào)整大小和位置,形成特定樓棟的視圖。表單的Init事件代碼可實(shí)現(xiàn)在表單上動(dòng)態(tài)添加控件形成樓棟視圖,Resize事件代碼可對表單上各控件重新定位并調(diào)整大小。9.4表單設(shè)計(jì)9.4.6單個(gè)住戶表單本表單可實(shí)現(xiàn)在軟件運(yùn)行時(shí),當(dāng)用戶在“樓棟視圖”的任意一個(gè)住戶標(biāo)示控件上右擊鼠標(biāo),將打開“單個(gè)住戶”表單,來顯示或修改對應(yīng)的住戶信息。數(shù)據(jù)表“住戶信息”和數(shù)據(jù)表“樓棟信息”添加到數(shù)據(jù)環(huán)境中。
9.5軟件的使用1.樓棟信息維護(hù)2.住戶信息維護(hù)3.住戶信息查詢4.小區(qū)布局圖、樓棟視圖和單個(gè)住戶信息操作通用學(xué)生成績管理系統(tǒng)目標(biāo):建立一個(gè)通用學(xué)生成績管理系統(tǒng),作為一個(gè)教學(xué)管理軟件,用于管理高校各級(jí)、各類學(xué)生的各門課程成績、量化分?jǐn)?shù)、綜合分?jǐn)?shù)。能方便地進(jìn)行信息的輸入、修改、統(tǒng)計(jì)、排序、查詢和打印。技術(shù):該系統(tǒng)在數(shù)據(jù)錄入,數(shù)據(jù)表結(jié)構(gòu)的創(chuàng)建與修改,課程類別標(biāo)識(shí),成績的統(tǒng)計(jì),特別是數(shù)據(jù)表的橫向統(tǒng)計(jì)等方面都采用了比較特殊的技術(shù),使軟件具有很強(qiáng)的通用性。10.1數(shù)據(jù)表設(shè)計(jì)在設(shè)計(jì)數(shù)據(jù)表時(shí),把高等學(xué)校同一院系(或?qū)I(yè))、同一年級(jí)、同一層次的學(xué)生作為一個(gè)學(xué)生群組(或稱學(xué)生對象),每個(gè)學(xué)生群組分別建立三個(gè)數(shù)據(jù)表:成績數(shù)據(jù)表、成績數(shù)據(jù)表的結(jié)構(gòu)描述文件、課程統(tǒng)計(jì)結(jié)果數(shù)據(jù)表。成績數(shù)據(jù)表是主體,它與結(jié)構(gòu)描述文件對應(yīng)并通過結(jié)構(gòu)描述文件建立,用來存放學(xué)生基本信息、各門課成績、各學(xué)期量化分、綜合分、總平均分、專業(yè)課平均分、名次等數(shù)據(jù)。不同學(xué)生群組所對應(yīng)的成績數(shù)據(jù)表結(jié)構(gòu)不同。10.1數(shù)據(jù)表設(shè)計(jì)課程統(tǒng)計(jì)結(jié)果數(shù)據(jù)表用來存放成績數(shù)據(jù)表中各門課程的優(yōu)秀人數(shù)、良好人數(shù)、及格人數(shù)、及格率等統(tǒng)計(jì)信息。建立一個(gè)臨時(shí)自由表tmp.dbf,隨便定義一個(gè)字段后保存。執(zhí)行命令COPYSTRUCTURETOjgextended,建立表tmp.dbf的一個(gè)結(jié)構(gòu)描述文件jg.dbf。修改結(jié)構(gòu)描述文件jg的結(jié)構(gòu),在后面添加三個(gè)字段“課程類別”、“學(xué)期”和“數(shù)據(jù)有效”,得到具有21個(gè)字段的擴(kuò)充結(jié)構(gòu)描述文件。10.1數(shù)據(jù)表設(shè)計(jì)擴(kuò)充的結(jié)構(gòu)描述文件jg.dbf結(jié)構(gòu)
10.1數(shù)據(jù)表設(shè)計(jì)創(chuàng)建一個(gè)僅用于課程定義的結(jié)構(gòu)描述文件jg_k.dbf。用這個(gè)結(jié)構(gòu)描述文件的記錄定義與課程相關(guān)的課程名稱、課程類別、開課學(xué)期信息后,把它同名追加到結(jié)構(gòu)描述文件jg.dbf中,并用程序自動(dòng)填寫field_type、field_len、field_dec等字段的內(nèi)容,就可以生成對應(yīng)的成績數(shù)據(jù)表。建立兩個(gè)數(shù)據(jù)表xibie.dbf和xslx.dbf,分別用來保存院系信息和學(xué)生類別信息建立一個(gè)課程統(tǒng)計(jì)結(jié)果數(shù)據(jù)表tj.dbf10.2
菜單、工具欄、主程序與退出程序10.2.1菜單設(shè)計(jì)10.2
菜單、工具欄、主程序與退出程序10.2.2工具欄設(shè)計(jì)新建類在NewClass對話框中選擇基類為Toolbar,指定要保存到的類庫為wizstyle,指定類名為cj_toolbar。
10.2
菜單、工具欄、主程序與退出程序創(chuàng)建工具欄對象在cj_toolbar類的基礎(chǔ)上建立一個(gè)工具欄。設(shè)置工具欄按鈕屬性工具欄按鈕編碼10.2
菜單、工具欄、主程序與退出程序10.2.3主程序這段代碼首先設(shè)置系統(tǒng)窗口的一些屬性。然后設(shè)置系統(tǒng)的開關(guān)或狀態(tài),關(guān)閉所有文件,清所有變量。最后聲明必要的全局變量和全局?jǐn)?shù)組,恢復(fù)存于文件XSZ.MEM的內(nèi)存變量,打開工具欄,執(zhí)行主菜單,在狀態(tài)欄中顯示當(dāng)前學(xué)生對象信息,讀取用戶事件。10.2.4退出程序恢復(fù)系統(tǒng)窗口狀態(tài),清事件,關(guān)閉所有文件,清所有變量,釋放窗口和表單,恢復(fù)系統(tǒng)菜單,退出系統(tǒng)。10.3系統(tǒng)服務(wù)功能的實(shí)現(xiàn)10.3.1查看學(xué)生對象可以使用戶隨時(shí)了解系統(tǒng)當(dāng)前存在哪些學(xué)生對象,以便有針對性地選擇需要的學(xué)生群組進(jìn)行數(shù)據(jù)處理,或者建立新的學(xué)生對象數(shù)據(jù)表。10.3系統(tǒng)服務(wù)功能的實(shí)現(xiàn)10.3.2指定學(xué)生對象
用來指定學(xué)生對象組10.3系統(tǒng)服務(wù)功能的實(shí)現(xiàn)10.3.3修改學(xué)生類型和院系信息
修改學(xué)生類型通過在“系統(tǒng)服務(wù)|修改學(xué)生類型”菜單項(xiàng)中建立一個(gè)過程來實(shí)現(xiàn)修改xslx.dbf數(shù)據(jù)表的內(nèi)容。修改院系信息通過在“系統(tǒng)服務(wù)|修改院系信息”菜單項(xiàng)中建立一個(gè)過程來實(shí)現(xiàn)修改xibie.dbf數(shù)據(jù)表的內(nèi)容。10.4創(chuàng)建和修改表結(jié)構(gòu)功能
的實(shí)現(xiàn)10.4.1菜單項(xiàng)過程設(shè)計(jì)
1.“建新表結(jié)構(gòu)”菜單項(xiàng)過程當(dāng)前學(xué)生對象成績數(shù)據(jù)表文件名保存到全局變量CJK_WJM中。可以用FILE(CJK_WJM)函數(shù)檢測數(shù)據(jù)表是否已經(jīng)建立。如果數(shù)據(jù)表已經(jīng)建立,則只能查看或修改表結(jié)構(gòu)如果該學(xué)生對象的數(shù)據(jù)表尚未建立,則調(diào)用“表結(jié)構(gòu)創(chuàng)建”表單來創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)。
10.4創(chuàng)建和修改表結(jié)構(gòu)功能
的實(shí)現(xiàn)10.4.1菜單項(xiàng)過程設(shè)計(jì)
2.“改原表結(jié)構(gòu)”菜單項(xiàng)過程如果數(shù)據(jù)表已經(jīng)存在,并且在確認(rèn)對話框中選擇了“是”,則通過全局變量CJK和宏代換打開指定的學(xué)生對象的數(shù)據(jù)表,將數(shù)據(jù)備份到臨時(shí)數(shù)據(jù)表TMP中。然后打開用于課程定義的結(jié)構(gòu)描述文件JG_K,清除原有記錄,再把當(dāng)前學(xué)生對象成績數(shù)據(jù)表結(jié)構(gòu)描述文件中課程定義相關(guān)的記錄追加過來,達(dá)到提取原表結(jié)構(gòu)的目的。最后,關(guān)閉所有數(shù)據(jù)表,調(diào)用“表結(jié)構(gòu)創(chuàng)建”表單。10.4創(chuàng)建和修改表結(jié)構(gòu)功能
的實(shí)現(xiàn)10.4.2“表結(jié)構(gòu)創(chuàng)建”表單設(shè)計(jì)本表單要對課程定義結(jié)構(gòu)描述文件JG_K的內(nèi)容進(jìn)行修改,然后通過代碼將JG_K的記錄追加到成績數(shù)據(jù)表結(jié)構(gòu)描述文件樣板JG中,并利用JG創(chuàng)建當(dāng)前學(xué)生對象的數(shù)據(jù)表。10.5顯示表結(jié)構(gòu)功能的實(shí)現(xiàn)顯示表結(jié)構(gòu)創(chuàng)建一個(gè)過程,編寫相應(yīng)的代碼。通過代碼檢測數(shù)據(jù)表文件存在后,調(diào)用“表結(jié)構(gòu)顯示”表單來顯示當(dāng)前學(xué)生對象成績數(shù)據(jù)表結(jié)構(gòu)。10.6成績數(shù)據(jù)表信息管理10.6.1“學(xué)生名冊輸入”表單這個(gè)表單用來輸入或修改指定學(xué)生對象數(shù)據(jù)表中“學(xué)號(hào)”、“班級(jí)”、“姓名”三個(gè)字段的內(nèi)容。10.6.2“成績單科輸入”表單
這個(gè)表單用來輸入或修改指定的某一門課成績、某一學(xué)期的量化分或補(bǔ)考課程門數(shù)。10.6成績數(shù)據(jù)表信息管理10.6.3“成績?yōu)g覽修改”表單
對當(dāng)前學(xué)生對象的成績數(shù)據(jù)表進(jìn)行瀏覽修改。10.6.4“成績檢測”表單
檢測當(dāng)前學(xué)生對象成績數(shù)據(jù)表的異常數(shù)據(jù),給出信息提示,同時(shí)設(shè)置成績數(shù)據(jù)表結(jié)構(gòu)描述文件的“數(shù)據(jù)有效”字段值。10.7數(shù)據(jù)統(tǒng)計(jì)功能的實(shí)現(xiàn)在“數(shù)據(jù)統(tǒng)計(jì)”菜單下,我們設(shè)計(jì)了“成績統(tǒng)計(jì)”、“課程統(tǒng)計(jì)”和“排列名次”三個(gè)菜單項(xiàng),每個(gè)菜單項(xiàng)對應(yīng)一個(gè)過程。10.7.1“成績統(tǒng)計(jì)”過程設(shè)計(jì)系統(tǒng)要能夠自動(dòng)求出每個(gè)學(xué)生的總平均分、專業(yè)必修課平均分,各學(xué)期的課程平均分、專業(yè)必修課平均分、綜合分,并將結(jié)果保存到當(dāng)前學(xué)生對象成績數(shù)據(jù)表中。同時(shí),要在對應(yīng)的結(jié)構(gòu)描述文件中填寫“數(shù)據(jù)有效”字段的內(nèi)容。10.7數(shù)據(jù)統(tǒng)計(jì)功能的實(shí)現(xiàn)10.7.2“課程統(tǒng)計(jì)”過程設(shè)計(jì)
能夠自動(dòng)求出每門課的實(shí)考人數(shù)、課程平均分,優(yōu)秀、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國紐扣花行業(yè)投資前景及策略咨詢報(bào)告001
- 2025至2030年中國純棉平紋拉架布行業(yè)投資前景及策略咨詢報(bào)告
- 二維磁性異質(zhì)結(jié)的構(gòu)筑及其近鄰相關(guān)光電特性的研究
- 240nm-280nm日盲紫外濾光片設(shè)計(jì)、制備及激光損傷特性研究
- 2025至2030年中國立式無壓熱水鍋爐行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國立體停車庫配件市場分析及競爭策略研究報(bào)告
- 2025至2030年中國移膜革上漿用膠輥行業(yè)投資前景及策略咨詢報(bào)告001
- 2025至2030年中國堿溶增稠劑市場現(xiàn)狀分析及前景預(yù)測報(bào)告
- 2025至2030年中國研盅行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國直付式直管熒光燈行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年職業(yè)技能“大數(shù)據(jù)考試”專業(yè)技術(shù)人員繼續(xù)教育考試題庫與答案
- 中醫(yī)類新技術(shù)新項(xiàng)目
- 國家高新技術(shù)企業(yè)評(píng)定打分表
- 臺(tái)球俱樂部股份轉(zhuǎn)讓協(xié)議
- 一例精神分裂癥患者的護(hù)理查房
- 安徽省安慶市懷寧縣2023-2024學(xué)年八年級(jí)下學(xué)期期中數(shù)學(xué)試卷
- 第24課《詩詞曲五首-南鄉(xiāng)子 登京口北固亭有懷》課件共34張
- 環(huán)水保專項(xiàng)施工方案樣本
- 2024版醫(yī)療廢物分類目錄解讀
- 市場營銷策劃(本)-形考任務(wù)三(第八~十章)-國開(CQ)-參考資料
- 2024-2030年中國情趣用品行業(yè)市場全景分析及投資前景展望報(bào)告
評(píng)論
0/150
提交評(píng)論