周明紅
(山西大學商務學院,山西 太原 030001)
VisualFoxPro作為關系型數據庫管理系統及應用軟件開發工具,它獨有的特點、良好的性能、強大的功能、簡單易學的優勢,成為開發數據庫應用程序最廣泛使用的工具之一,并推動著數據庫軟件技術更加蓬勃地發展。
VisualFoxPro是一個關系型數據庫管理系統(RDBMS:Relation Database Management System),是一種較早的面向對象的、由事件驅動的程序設計工具。它預定義了一大批基類供開發者使用,并允許開發者定義新的類和子類,可以利用類的繼承性減少編程的工作量,加快軟件的開發。
VisualFoxPro提供了更多的諸如向導(Wizard)、設計器(Designer)、生成器(Builder)等可視化設計和操作工具,采用圖形界面使設計更加直觀,許多窗口操作可自動生成對應程序代碼,減輕設計人員的工作量。利用項目管理器全面管理項目中的數據庫、應用程序、各種文檔,并能進行應用程序的編譯。其自帶有數據庫并能提供對數據庫的管理,保證數據庫的數據完整性,更為有利的是它完全支持關系型數據庫的標準語言SQL。不僅如此,VisualFoxPro的視圖和表單既可以訪問本地數據庫中的數據,也可訪問遠程網絡服務器中的數據,同時有效地控制對數據的共享。它的程序調試工具可以簡化程序的調試和修改過程,并能自動檢查程序是否存在錯誤,確定錯誤出現的位置,提示錯誤出現的原因,如果發現錯誤可當場切入程序進行修改。正是由于它的許多特點和功能,使它成為開發中小型數據庫應用系統比較理想的工具。
應用程序開發前開發者要與用戶之間廣泛溝通,作大量的調查研究和分析工作,從而明確用戶的要求、程序應具備的功能及可以完成的任務。為此要進行兩方面的分析,數據分析和功能分析。數據分析的目的是收集系統應包含的數據、數據的真實性、有效性,為后續的數據庫設計做準備;功能分析的目的主要為應用程序的設計提供依據,從而劃分系統的模塊及子模塊,所有應用程序模塊的設計將會以此為依據進行。
將分析階段調查收集到的數據進行綜合、歸納、抽象處理,形成符合該系統的概念模型,并畫出相應的E-R圖(實體-聯系圖),再將E-R圖轉換為符合VisualFoxPro要求的數據庫和數據表,定義每個表的表結構、字段屬性、字段有效性、數據完整性,表間關聯關系等。
按照系統分析階段功能分析的結果畫出系統的樹形總體框架圖,該圖一般不超過三層。同時必須考慮到整個程序中各模塊間的調用關系,一般的調用順序是:進入系統的主控程序調用啟動界面、啟動界面調用登錄界面、登錄界面調用主界面、在主界面中調用主菜單、最后由主菜單中的各個菜單項調用各個子模塊界面。
使用VisualFoxPro創建面向對象的由事件驅動的應用程序時,可以每次只建立一個功能模塊。這種模塊化構造應用程序的方法,可以在每完成一個組件后就對其進行檢驗,在完成所有的功能組件后就可以進行應用程序的編譯了。
根據系統設計的結果,利用VisualFoxPro中的各種設計器或向導工具創建數據庫、數據表、表間聯系、視圖、查詢、表單、報表、菜單等各種對象。在建立系統各文件之前,要先在指定盤中創建一個根目錄文件夾,例如D:SJKGL(此名稱的含義是數據庫管理),將這個文件夾指定為默認路徑,在該文件夾中再建立幾個子文件夾,分別用于存儲各類文件,如可分別命名為DBS(用于存放數據表和數據庫類文件)、FORM(用于存放表單類文件)、MENU(存放菜單類文件)、REPORT(存放報表類文件)、PRG文件夾(用于存放程序文件)、IMAGE文件夾(存放圖像文件)、CLASS文件夾(存放類文件)等,且各個文件名及字段名等名稱最好用字母表示。這樣在一些過程或命令中調用文件時,路徑可以簡寫為以下形式:
.FORMDLBD.SCX 它等價于命令:D:SJKGLFORMDLBD.SCX
在此重點說明以下幾個文件的建立要點,它們具有通用性,所有VisualFoxPro應用程序開發時都可用到。
2.3.1 主程序文件
這是要作為整個應用系統切入點的主控文件,系統就是由此啟動并逐級調用的,它的主要任務是設置應用程序的起始點、初始化環境、聲明系統中使用的公共變量、顯示初始界面、控制事件的循環等。其中,初始化環境用到的許多設置命令可以這樣獲得:在VisualFoxPro界面中,打開“工具”菜單下的“選項”命令,按住【shift】鍵的同時單擊“確定”按鈕,則在命令窗口中出現系統目前設置的相關命令,可以從中選取有用的命令復制到主程序文件中。除了初始化環境用到的設置命令外,一般情況下主程序中必須要包含下面幾條命令,其他命令可根據系統要求取舍。
Set sysmenu off &&關閉VFP的菜單
PUBLICMYPATH &&定義全局變量MYPATH
MYPATH=LEFT(SYS(16),RAT(“”,SYS(16))) && 提取當前路徑,sys(16)是獲取當前程序所在的全路徑(包括當前運行程序名)
SET DEFA TO (MYPATH) &&設置默認路徑_screen.visible=.f.
Do form主界面表單 &&調用主界面
Read events &&開始事件循環
2.3.2 主菜單文件
主菜單在系統中用于集中體現系統的功能并進行相應的操作,通過執行菜單中相應的菜單項來調用對應的各文件和各模塊。其中的“退出”菜單項是每個主菜單必須包含的,在其過程命令中要包含以下幾條命令:
Close all && 關閉所有文件
Set sysmenu to default && 恢復VFP系統菜單
Clear events && 結束事件循環
Quit && 退出本應用系統
此處的“結束事件循環”命令是對應主程序中的“開始事件循環”的,當開始事件循環后,用戶可反復調用系統中的各個文件進行操作,但要退出系統時必須先結束事件循環。菜單設計完成后,必須打開“顯示”菜單下的“常規選項”對話框,選定“頂層表單”復選框,意味著將該菜單加到頂層表單中,最后一定要將該菜單生成菜單程序文件。
2.3.3 頂層表單
如果系統不需要登錄就可直接進入,則可將主界面表單作為頂層表單,如果需要登錄才能進入,則需單獨設置頂層表單。頂層表單是用戶應用該系統的主要界面,要在這個表單中調用主菜單文件,所以除表單的一般設置外,還必須進行以下幾項設置,見表1。
2.3.4 其他功能性表單
用于實現系統各模塊功能的界面表單如數據維護表單、查詢統計表單等,除每個表單的功能設置等要求外,還要將每個表單的showwindow屬性值設置為3-在頂層表單中,以保證調用的這些界面表單在頂層表單中顯示。

表1 表單設置
利用VisualFoxPro數據庫管理系統具體實現上述的系統設計和實施,用項目管理器組織管理系統各類文件并編譯程序。
首先,要將系統所涉及到的文件添加到項目管理器中對應的容器中,對于沒有被命令調用或引用過的文件必須手動添加到項目中,而在程序或表單中被調用或引用了的文件,連編時VFP會將它們自動添加進來,但是圖片文件及由宏代換命令引用的文件要手動添加到項目中,圖片和聲音文件可加入到項目的“其他”容器中。
然后,設置文件的“包含”與“排除”,設置為“包含”的文件在項目連編后將作為只讀文件,而設置為“排除”的文件在項目連編后仍可以由用戶修改。所以類似表文件一般設置為“排除”,而表單、程序等只可供用戶使用而不允許修改的文件設置為“包含”。
再將添加到項目中的主程序文件設置為“主控文件”,以作為連編后應用程序的起始點,一個應用程序只能有一個主控文件。此外還可以打開“項目”菜單下的“項目信息”對話框,在其中設置開發者信息、系統使用的圖標、是否加密等內容。
最后,將項目連編成一個應用程序,此過程的最終結果是將所有在項目中引用的文件(除了標記為排除的文件)組合為一個單一的應用程序文件。選定主控文件圖標,單擊項目中的“連編”按鈕,在“連編選項”對話框中,選擇“連編應用程序”項,生成.app文件;或者選擇“連編可執行文件”項以建立一個.exe文件,選擇所需的其他選項并單擊“確定”按鈕。若計算機中安裝有VFP程序,就可運行.app文件;若沒有,需要運行.exe文件,但這時還需要將兩個VFP動態鏈接庫文件(VFP6R.DLL)和(VFP6ENU.DLL)復制到文件夾中供連接使用,至此應用程序連編完成。
如果要發布應用程序,需要啟動“工具”菜單下的“向導”之“安裝”命令,在安裝的第二步中選定“VisualFoxPro運行時刻組件”復選框,以便在新環境下能夠正常運行;在第六步中選定.exe文件的“程序管理器”復選框,并在打開的“程序組菜單項”對話框中命令行輸入命令:%s應用程序文件名.exe,其中%s是為了軟件安裝在不同目錄中也能正常運行。其余選項按需要設置,安裝完成后系統會在該目錄中產生一個磁盤映象文件setup。在整個系統開發完畢后,為方便用戶使用,還應編寫出系統功能及具體操作說明的文檔資料。