導航:首頁 > 程序命令 > 如何在vf中顯示prg命令

如何在vf中顯示prg命令

發布時間:2024-02-08 07:56:47

1. VFP資料庫中所有的命令及文件擴展名是什麼

VFP原程序文件擴展名為prg


VFP用到的其它文件的擴展名如下所示:


.act 向導操作圖的文檔


.app 生成的應用程序或 Active Document


.cdx 復合索引


.chm 編譯的HTML Help


.dbc 資料庫


.dbf 表


.dbg 調試器配置


.dct 資料庫備注


.dcx 資料庫索引


.dep 相關文件(由「安裝向導」創建)


.dll Windows動態鏈接庫


.err 編譯錯誤


.esl Visual FoxPro支持的庫


.exe 可執行程序


.fky 宏


.frx 報表


.fxp 編譯後的程序


.idx 索引,壓縮索引


.lbx 標簽



.log 代碼范圍日誌


.lst 向導列表的文檔


.mem 內存變數


.mnt 菜單備注


.mnx 菜單


.mpr 生成的菜單程序


.mpx 編譯後的菜單程序


.ocx ActiveX 控制項


.pjt 項目備注


.pjx 項目


.pqr 生成的查詢程序


.prg Visual FoxPro程序


.qpx 編譯後的查詢程序


.sct 表單備注


.scx 表單


.tbk 備注備份


.txt 文本

2. vfp中.prg程序怎麼做怎麼用

VFP+SQL主程序編程

這是給初學者推薦一種格式,不一定最好,但它卻實能正常運行

* 程序名: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 gcDataPath
gcDataPath =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 Procere To gcPrgsPath +"Myproc.prg"

* 設置不顯示ODBC登錄對話框
SQLSETPROP(0,"DispLogin",3) && 網路專用

* 第六步 聲明其他全局變數
* 數據源名稱
Public gcDSN
gcDSN = 『』

* 用戶登錄名
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=gcDataPath+ 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

* 程序:錯誤處理,由梅子提供,未驗證。
*****************
err.prg
*****************
PARAMETER NERROR , CMESSAGE , CMESSAGE1 , CPROGRAM , NLINENO
SET TEXTMERGE DELIMITERS to
SET TEXTMERGE ON
SET TEXTMERGE TO ErrorLog.txt ADDITIVE NOSHOW
\---------------------------------------------------------------------
\<<DATE( )>> <<TIME( )>> 錯誤記錄
\程序標題: <<_Screen.Caption>>
\程序開發版本: <<VERSION(1)>>
DO CASE
CASE _SCREEN.WINDOWSTATE = 0
\窗口狀態: 普通
CASE _SCREEN.WINDOWSTATE = 1
\窗口狀態: 最小化
CASE _SCREEN.WINDOWSTATE = 2
\窗口狀態: 最大化
ENDCASE
\窗口可視: <<IIF(_Screen.Visible= .T. , "可見" , "不可見")>>
\窗口集合數: <<_Screen.FormCount>>
\網路機器信息: <<SYS(0)>>
\執行程序: <<JUSTFNAME(SYS(16,1))>>
\執行程序所在目錄: <<JUSTPATH(SYS(16,1))>>
\執行程序所在目錄磁碟空間: <<DISKSPACE(JUSTDRIVE(SYS(16,1)))>>
\默認目錄: <<SYS(5)>><<SYS(2003)>>
\默認目錄磁碟空間: <<DISKSPACE(SYS(5))>>
\文件搜尋路徑: <<SET("PATH")>>
\系統臨時目錄: <<SYS(2023)>>
\虛擬內存池大小: <<SYS(1001)>>
\正在使用的工作區: <<Alias()>>
\活動欄位: <<VARREAD()>>
IF TYPE('_Screen.ActiveForm.Name') = 'C'
\活動表單: <<_Screen.ActiveForm.Name>>
\表單標題: <<_Screen.ActiveForm.Caption>>
\表單基類: <<_Screen.ActiveForm.BaseClass>>
\表單派生: <<_Screen.ActiveForm.Class>>
\表單派生庫: <<_Screen.ActiveForm.ClassLibrary>>
\表單位置: <<SYS(1271, _Screen.ActiveForm)>>
ELSE
\無活動表單
ENDIF
IF TYPE('_Screen.ActiveForm.ActiveControl') = 'O'
\活動控制: <<_Screen.ActiveForm.ActiveControl.Name>>
IF TYPE('_Screen.ActiveForm.ActiveControl.Caption') = 'C'
\控制標題: <<_Screen.ActiveForm.ActiveControl.Caption>>
ENDIF
\控制項基類: <<_Screen.ActiveForm.ActiveControl.BaseClass>>
\控制項派生: <<_Screen.ActiveForm.ActiveControl.Class>>
\控制項派生庫: <<_Screen.ActiveForm.ActiveControl.ClassLibrary>>
\控制項位置: <<SYS(1271, _Screen.ActiveForm.ActiveControl)>>
ELSE
\無活動控制
ENDIF
\錯誤代號: <<nError>>
\錯誤信息: <<cMessage>>
\產生錯誤的位置: <<cProgram>>
\所在行號: <<nLineno>>
\產生錯誤的代碼: <<cMessage1>>
\輸出內存使用情況 -> MemoryLog.txt
\輸出工作環境到 -> StatusLog.txt
SET SAFETY OFF
DISPLAY MEMORY TO File MemoryLog.txt NOCONSOLE
DISPLAY STATUS TO File StatusLog.txt NOCONSOLE
\---------------------------------------------------------------------
SET TEXTMERGE TO
Nvalue = ;
MESSAGEBOX('程序發生錯誤!詳細信息如下:' + CHR(13) + CHR(13) + '錯誤代號: ' + ;
LTRIM(STR(NERROR)) + ;
CHR(13) + ;
'錯誤行號: ' + ;
LTRIM(STR(NLINENO)) + ;
CHR(13) + ;
'錯誤信息: ' + ;
CMESSAGE + ;
CHR(13) + ;
'錯誤代碼: ' + ;
CMESSAGE1 + ;
CHR(13) + ;
'錯誤位置: ' + ;
CPROGRAM + ;
CHR(13) + ;
CHR(13) + ;
'該錯誤已經記錄到文件:Errorlog.txt,Memorylog.txt,Statuslog.txt。',50,'信息')
DO CASE
CASE Nvalue = 3
QUIT
CASE Nvalue = 4
RETRY
CASE Nvalue = 5
RETURN
ENDCASE

閱讀全文

與如何在vf中顯示prg命令相關的資料

熱點內容
半圓形計演算法 瀏覽:392
手機建立文件夾用什麼軟體 瀏覽:730
oss壓縮上傳 瀏覽:980
藍色學校網站源碼 瀏覽:827
androidgridview表格 瀏覽:604
壓縮怎麼eq閃 瀏覽:740
流密碼演算法openssl 瀏覽:262
怎麼數黃豆個數python 瀏覽:799
混沌序列加密的結論 瀏覽:224
最新脫單app哪個好 瀏覽:638
如何用自己電腦做伺服器做網頁 瀏覽:140
伺服器安全配置要考什麼證書 瀏覽:633
ipadpro可以編程 瀏覽:541
外國的程序員和中國的程序員 瀏覽:153
抖音小店app如何聯系客服 瀏覽:977
linux打開多個終端 瀏覽:502
linux中的命令 瀏覽:582
優化小米6相機演算法 瀏覽:261
ak47pdf 瀏覽:151
人與文化pdf 瀏覽:642