導航:首頁 > 程序命令 > 如何在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命令相關的資料

熱點內容
解放戰爭pdf王樹增 瀏覽:683
python壓測app介面 瀏覽:951
抖音app怎麼推薦 瀏覽:98
歌庫伺服器能做其他什麼用途 瀏覽:95
安卓44虛擬機怎麼root 瀏覽:38
程序員瘦身c盤空間 瀏覽:243
dell伺服器溫度怎麼看 瀏覽:303
游戲伺服器地址是什麼 瀏覽:69
C語言經過編譯之後的程序是 瀏覽:160
編程設計一個簡易計算機界面 瀏覽:516
游戲壓縮包損壞 瀏覽:485
壓縮包圖標下載 瀏覽:229
日本解壓喜劇 瀏覽:38
蕪湖程序員兼職如何接 瀏覽:368
句譯app怎麼用 瀏覽:342
vs2010編譯c怎麼用 瀏覽:104
摩拜單車沒app怎麼退款 瀏覽:469
蘋果手機下載的app怎麼變色了 瀏覽:903
韻母app怎麼寫 瀏覽:603
命令提示符是中文 瀏覽:167