vfp中.prg程序怎么做怎么用

vfp中.prg程序怎么做怎么用,第1张

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 Procedure 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

prg是什么意思

1. PRG是PointsRankingGame的缩写。它被称为排名银慎顷游戏,自诞生以来就是互联网企业的秘密武器之一。

2. 源程序是一个文本文件锋陆,因此可以修改其内容。只要孝搏有源程序文件,程序员就可以生成编译器FXP、应用程序APP和可执行的EXE程序文件。

prg文件可以用任何文本编辑器来修改。

但是还是建议使用VPF修改(在VFP下用岩碰历过程编辑器粗搜编辑修改时可以自动校验其中的大部分语法错误。)

运行VFP ,点击“打开”按钮,选程序文件,找到要打开的文件,打开即可

fxp是prg文件的备注文件,不吵芹需要查看,

望采纳~


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8208706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存