一個比較規範的VFP主程式,適合初學者參考。

來源:互聯網
上載者:User
* 程式名:main.prg
* 作用:整個系統的入口
* 路徑:/你的程式目錄/prgs

Set Talk off
Set Escap off

* 開始,程式錯誤處理
ON ERROR DO Err.PRG With Error(), Message(), Message(1), Program(), Lineno(1)
* 第一步,清理環境
Close All        && 關閉所有工作區中開啟的資料庫、表和索引,並選擇工作區 1。
Clear Menus && 從記憶體中釋放所有的記憶體變數和數組以及所有使用者自訂功能表列、
                      && 菜單和視窗的定義。 還從記憶體中刪除所有用 DECLARE-ALL 註冊
                      && 的外部 Windows 32 位動態連結程式庫 (.DLLS)。
* 關閉系統功能表
* 如果在發出 SET SYSMENU SAVE 命令之後修改了菜單系統,可以通過發出
* SET SYSMENU TO DEFAULT 命令來恢複前面的設定。
Set Sysmenu Save

* 在程式執行期間廢止 Visual FoxPro 主功能表列。
Set Sysmenu Off
Set Sysmenu To

* 第二步,設定環境

* 退出Read時儲存資料緩衝區內容
Set Autosave On

* 使用 INSERT、APPEND 和 BROWSE 命令建立新記錄時,不將目前記錄資料複製到新記錄中。
Set Carry Off

* 指定是否可以用在文字框中鍵入最後一個字元的方法退出文字框。
Set Confirm Off

* 日期不顯示世紀部分
Set Century Off

* 設定日期格式為"YY.MM.DD" 格式
Set Date Ansi

* 不顯示已經刪除的記錄
Set Delete On

* 決定能否使用 LOCK ( )或 RLOCK ( ) 鎖定多個記錄。
Set Multilocks On && 網路編程專用

* 確定 ATLTER TABLE、CREATE TABLE 和 INSERT - SQL 命令如何處理 null 值。
Set Null On

* 指定當欄位是空值(NUll)顯示的文本為
Set NullDisplay To ''

* 改寫已有檔案之前不顯示對話方塊
Set Safety Off

* 移去圖形狀態列。
Set Status Bar Off

* 第三步,設定你的程式路徑

* 設定程式主目錄
Public gcMainPath
gcMainPath = Sys(5)+Sys(2003)+"/"
Set Default To &gcMainPath

* 資料目錄(本機資料庫和表)
Public   ataPath
ataPath =gcMainPath+"Data/"

* 程式目錄
Public gcPrgsPath
gcPrgsPath =gcMainPath+"Prgs/"

* 圖片目錄
Public gcPicsPath
gcPicsPath=gcMainPath + "pics/"

* 表單目錄
Public gcFormsPath
gcFormsPath = gcMainPath+"forms/"

* 菜單目錄
Public gcMenusPath
gcMenusPath = gcMainPath+"menus/"

* 標籤目錄
Public gcLabelsPath
gcLabelsPath = gcMainPath+"labels/

* 報表目錄
Public gcReportsPath
gcReportsPath =gcMainPath+"Reports/"

* 第四步 初始化鍵盤
Capslock(.F.)
IMEStatus(0)
Insmode(.T.)
Numlock(.T.)

* 第五步 開啟自訂類庫、過程檔案
Set Classlib To gcMainPath+"vcx/MyVCX.vcx"
Set Procedure To gcPrgsPath +"Myproc.prg"

* 設定不顯示ODBC登入對話方塊
SQLSETPROP(0,"DispLogin",3) && 網路專用

* 第六步 聲明其他全域變數
* 資料來源名稱
Public   SN
SN = ‘’

* 使用者登入名稱
Public gcUID
gcUID = ‘’

* 使用者登入口令
Public gcPWD
gcPWD=‘’

* 當前登入使用者姓名(中文)
PUBLIC gcName
gcName=''

* 前後端資料庫名
Public gcSQLDatabase,gcFoxDatabase
gcSQLDatabase = ‘資料管理’ && 後端 SQL 資料庫
gcFoxDatabase = ‘資料管理’   && 前端 VFP資料庫

* 串連控制代碼
Public gnHandleMaster &&與後端 master 系統資料庫的串連控制代碼
gnHandleMaster = 0

Public gnHandleUser && 與後端使用者資料庫“gcSQLDatabase ”的串連控制代碼
gnHandleUser = 0

* 第七步,檢查登入帳號

* 調用登入表單"login.scx"
Do Form gcFormsPath+"login.scx" To gnHandleUser

結果如所示

* 如果登入成功 gnHandleUser > 0 表示登入成功,反之,失敗

If gnHandleUser <= 0 && 登入失敗
    Quit && 退出
Endif

* 指定當試圖退出VFP時要執行的程式
ON SHUTDOWN DO gcPrgsPath +"FileExit.prg" && 代碼如下樓所示。

* 第八步,調用程式主菜單
Do gcMenusPath+"mainmenu.mpr"

* 第九步,顯示程式封面,案頭
Do Form gcFormsPath+"title.scx" && 封面

Do Form gcFormsPath+"Desktop.scx" && 案頭,也就是你的程式背景(圖片略)

* 第十步 開啟或建立本機資料庫
cFoxDb=***ataPath+ gcFoxDatabase + ".dbc"

If Not Files(cFoxDb) && 如果指定的資料庫不存在
    Create Database &cFoxDb             && 建立它
Endif

* 啟動事件處理
Read Events

* 將釋放當前的 ON SHUTDOWN 命令
ON SHUTDOWN

* 程式:FileExit
* 作用:解決程式運行後,點擊主視窗關閉按鈕[X]不能退出VFP的問題

If Messagebox('您真要退出本系統嗎?',4+32+256,'退出確認')<>6 AND gnHandleUser > 0
    Return
Endif

*Do While Txnlevel()>0
* Rollback
*Enddo
Clear Events
ON SHUTDOWN

* 恢複環境
Set Sysmenu To Default

With _Screen
         .WindowState=2 &&最大化
        .BackColor=Rgb(255,255,255)
        .Caption="Microsoft Visual FoxPro"
        .Icon =''
Endwith

* 關閉資料庫及表
If Used("cfg")
    Use In cfg
Endif

If Used("dsn")
    Use In dsn
Endif

If Used("uid")
    Use In uid
Endif

Close Database All   &&關閉所有資料庫
Close All                   &&關閉各種類型的檔案,但不關閉命令視窗、調試視窗、協助、跟蹤視窗。
Clear Menus             &&釋放記憶體中所有的菜單定義。
Clear Popups           &&釋放記憶體中所有用DEFINE POPUP命令建立的菜單定義。
Clear Windows         &&釋放記憶體中所有使用者自訂視窗的定義,並從VFP主視窗或活動的使用者自訂視窗中清除視窗。
Clear                       &&清屏
Set Safe On
_Screen.Picture=""
=SQLDISCONNECT(0)
Quit
&& 完畢。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.