新手入门,编个小程序

时间:2022-06-17 20:11:16
刚学VF想编个小程序,实现类似于票具似的打印功能,做了一点,运行起来,主窗口按打印按钮后总是被报表的内容影响,不明白了,如何使他不受影响,一直前端显示。还有就是表单的存储按钮,存储后如何实现数据表序号字段的递增。还有一个大问题,为什么我的程序连编以后生成的可执行文件不能独立运行,请各位大侠帮忙,50积分奖励。

8 个解决方案

#1


1
VFP中"DeskTop、WindowType、ShowWindow三个表单属性的用法

1."ShowWindow"是规定表单在"显示方面的从属关系"的属性 ShowWindow属性实际上仅有两种选择:"作为顶层表单"与"在顶层表单中"。为了表达方便,我们把具有前者属性值的表单称为"顶层表单",后者称为"从属表单"。二者在显示方面的不同地位是:顶层表单在Windows任务栏上有一席之地,从属表单却没有这种待遇;顶层表单最小化时,从属表单随之被隐藏,当顶层表单关闭后,从属表单随之关闭。 ShowWindow的第三种选择"在屏幕中(默认)"仅是"在顶层表单中"的一个特例,即为"在_Screen这个特定的顶层表单中"之意,选择此种属性值时,它一定是个"从属表单"了。_Screen具有"顶层表单"的一切显示特征。
   从属表单不能独立地被显示,必须与他的"主表单"一起显示,这个"主表单"要么是一个顶层表单要么是VFP的窗口(_Screen)。不需要为一个"从属表单"指定一个"主表单","从属表单"打开时,自动选择当前的活动顶层表单作为其"主表单",当然,如果选择了"在屏幕中",则这个从属表单自然就以_Screen为其主表单了。

2."DeskTop"是规定表单在"显示方面的活动范围"的属性。
   DeskTop仅对"从属表单"有意义,当从属表单的DeskTop=.f.时,它只能显示在它的"顶层表单"的尺寸之内,当这个顶层表单的尺寸比它的尺寸还小时,它将会被部分地遮住;当从属表单的DeskTop=.t.时,它的活动范围将不受它的顶层表单尺寸的限制,它可以显示在电脑屏幕的任何地方甚至之外。但不管它的位置离其顶层表单多远,一旦顶层表单最小化了,它会立即顺从地从电脑屏幕上消失。

3."ShowWindows"是规定表单被执行时的程序动作的属性 
   分两种情况: 
   (1)当表单的ShowWindow为"在屏幕中"和"在顶层表单中"时: a.当WindowType="模式"时,执行表单(DO FORM)后使得表单取得焦点,并且一直到它被关闭,在此期间,它的父窗口对象(可能是_Screen或一个顶层表单)的菜单系统及其所属的子表单都不能用。就是说,在表单存在期间,它将一直霸占着焦点. b.当WindowType="无模式"时,表单存在期间不会霸占焦点。有一个例外,当DeskTop=.t.时,执行它时会使系统菜单失效,而DeskTop=.f.时则不会。 
   (2)当表单的ShowWindow为"做为顶层表单"时: 表单的WindowType属性不管是有模式还是无模式,都不会霸占焦点。


2可以排序输出sort to 或者索引呀 3可以学习下面在VFP连编成功后,*.exe文件容易一闪而过。解决方案的放法主要是建立
READ EVENTS,CLEAR EVENTS循环。当然设置一下widowstate和desptop、showwindows等属性也是需要的。下面就来详细讲解一下READ EVENTS,CLEAR EVENTS事件循环:

一、非常重要的 READ EVENTS 语句   在编译生成可执行程序后或生成安装盘重新安装运行时,程序主画面闪一下后就退出了,用户无法进行控制操作,这时要看看在你的主程序的末尾是否加上了READ EVENTS 语句,以使程序暂停运行等待用户响应。  

二、顺利生成安装盘的要点   在打包VFP程序生成安装盘的时候,常常会出现CAB压缩错误提示,这时要看看你打包时是否关掉了程序中的项目管理器,如果没有关掉,系统在压缩程序时无法压缩正在使用的项目文件信息,所以出现压缩错误提示。   

三、最容易被忽略的CLEAR EVENTS   在程序表单中设计退出按钮时为保险起见要加语句: CLEAR EVENTS 来结束用户操作,使程序安全退出。   

四、巧设CONFIG.FPW文件   程序打包后, 安装运行时无法脱离VFP主窗口环境。这时你可以自己编辑一个CONFIG.FPW系统配置文件,对生成的程序进行运行环境等各方面的设定。具体方法如下:   在应用程序中打开项目管理器,在代码一栏内新建一程序,其代码如下:   screen=off   sysmenu=off   然后存为一个名叫CONFIG的文件, 这时系统默认的扩展名为 PRG,保存好文件后退出。   在刚才保存的位置找到刚才存好的CONFIG .PRG文件,将其重命名为CONFIG.FPW然后重新进入项目管理器,在代码栏内选中该文件,单击右键选择“排除”一项,这样系统在编译的时候就不将其编译在内而将它视为系统文件。这样你的程序一运行就先自动搜索当前路径或默认路径下是否存在该系统配置文件,如存在就执行进入系统配置。
 

#2


我如何把我变得小程序给你,你看一下,我做了有地方还是不行,如何上传

#3


引用 2 楼 frdwd 的回复:
我如何把我变得小程序给你,你看一下,我做了有地方还是不行,如何上传

上传到:http://www.access911.net/csdn/

#4


我上传了,地址:http://access911.net/csdn/FileDescription.asp?mdb=2012-3-7&id=6

#5


1.序号=recno()
2.report命令使用不当。对照命令,仔细研究使用方法。
REPORT FORM FileName1 | ? [ENVIRONMENT] [Scope] 
   [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
   [RANGE nStartPage [, nEndPage]]
   [HEADING cHeadingText] [SUMMARY] [NORESET] [PLAIN]
   [NOCONSOLE | OFF] [PDSETUP] 
   [NAME ObjectName] 
   [OBJECT oReportListener | TYPE iExpression]
   [TO OutputDestination [NODIALOG]] 
   [PREVIEW [PreviewDestination] [NOWAIT] [WINDOW WindowName]]

3.缺少主程序

#6


感谢,记录问题解决了,还有些问题请教,能不能实现报表上的内容不全打印,只打印域控件内容,不打印标签文字。

#7


本帖最后由 apple_8180 于 2012-03-09 11:01:15 编辑
引用 6 楼 frdwd 的回复:
感谢,记录问题解决了,还有些问题请教,能不能实现报表上的内容不全打印,只打印域控件内容,不打印标签文字。
你报表上不放标签文字不就可以了。报表要打印什么人说了算,因为报表是人设计的。

#8


没错,我是这末做的

#1


1
VFP中"DeskTop、WindowType、ShowWindow三个表单属性的用法

1."ShowWindow"是规定表单在"显示方面的从属关系"的属性 ShowWindow属性实际上仅有两种选择:"作为顶层表单"与"在顶层表单中"。为了表达方便,我们把具有前者属性值的表单称为"顶层表单",后者称为"从属表单"。二者在显示方面的不同地位是:顶层表单在Windows任务栏上有一席之地,从属表单却没有这种待遇;顶层表单最小化时,从属表单随之被隐藏,当顶层表单关闭后,从属表单随之关闭。 ShowWindow的第三种选择"在屏幕中(默认)"仅是"在顶层表单中"的一个特例,即为"在_Screen这个特定的顶层表单中"之意,选择此种属性值时,它一定是个"从属表单"了。_Screen具有"顶层表单"的一切显示特征。
   从属表单不能独立地被显示,必须与他的"主表单"一起显示,这个"主表单"要么是一个顶层表单要么是VFP的窗口(_Screen)。不需要为一个"从属表单"指定一个"主表单","从属表单"打开时,自动选择当前的活动顶层表单作为其"主表单",当然,如果选择了"在屏幕中",则这个从属表单自然就以_Screen为其主表单了。

2."DeskTop"是规定表单在"显示方面的活动范围"的属性。
   DeskTop仅对"从属表单"有意义,当从属表单的DeskTop=.f.时,它只能显示在它的"顶层表单"的尺寸之内,当这个顶层表单的尺寸比它的尺寸还小时,它将会被部分地遮住;当从属表单的DeskTop=.t.时,它的活动范围将不受它的顶层表单尺寸的限制,它可以显示在电脑屏幕的任何地方甚至之外。但不管它的位置离其顶层表单多远,一旦顶层表单最小化了,它会立即顺从地从电脑屏幕上消失。

3."ShowWindows"是规定表单被执行时的程序动作的属性 
   分两种情况: 
   (1)当表单的ShowWindow为"在屏幕中"和"在顶层表单中"时: a.当WindowType="模式"时,执行表单(DO FORM)后使得表单取得焦点,并且一直到它被关闭,在此期间,它的父窗口对象(可能是_Screen或一个顶层表单)的菜单系统及其所属的子表单都不能用。就是说,在表单存在期间,它将一直霸占着焦点. b.当WindowType="无模式"时,表单存在期间不会霸占焦点。有一个例外,当DeskTop=.t.时,执行它时会使系统菜单失效,而DeskTop=.f.时则不会。 
   (2)当表单的ShowWindow为"做为顶层表单"时: 表单的WindowType属性不管是有模式还是无模式,都不会霸占焦点。


2可以排序输出sort to 或者索引呀 3可以学习下面在VFP连编成功后,*.exe文件容易一闪而过。解决方案的放法主要是建立
READ EVENTS,CLEAR EVENTS循环。当然设置一下widowstate和desptop、showwindows等属性也是需要的。下面就来详细讲解一下READ EVENTS,CLEAR EVENTS事件循环:

一、非常重要的 READ EVENTS 语句   在编译生成可执行程序后或生成安装盘重新安装运行时,程序主画面闪一下后就退出了,用户无法进行控制操作,这时要看看在你的主程序的末尾是否加上了READ EVENTS 语句,以使程序暂停运行等待用户响应。  

二、顺利生成安装盘的要点   在打包VFP程序生成安装盘的时候,常常会出现CAB压缩错误提示,这时要看看你打包时是否关掉了程序中的项目管理器,如果没有关掉,系统在压缩程序时无法压缩正在使用的项目文件信息,所以出现压缩错误提示。   

三、最容易被忽略的CLEAR EVENTS   在程序表单中设计退出按钮时为保险起见要加语句: CLEAR EVENTS 来结束用户操作,使程序安全退出。   

四、巧设CONFIG.FPW文件   程序打包后, 安装运行时无法脱离VFP主窗口环境。这时你可以自己编辑一个CONFIG.FPW系统配置文件,对生成的程序进行运行环境等各方面的设定。具体方法如下:   在应用程序中打开项目管理器,在代码一栏内新建一程序,其代码如下:   screen=off   sysmenu=off   然后存为一个名叫CONFIG的文件, 这时系统默认的扩展名为 PRG,保存好文件后退出。   在刚才保存的位置找到刚才存好的CONFIG .PRG文件,将其重命名为CONFIG.FPW然后重新进入项目管理器,在代码栏内选中该文件,单击右键选择“排除”一项,这样系统在编译的时候就不将其编译在内而将它视为系统文件。这样你的程序一运行就先自动搜索当前路径或默认路径下是否存在该系统配置文件,如存在就执行进入系统配置。
 

#2


我如何把我变得小程序给你,你看一下,我做了有地方还是不行,如何上传

#3


引用 2 楼 frdwd 的回复:
我如何把我变得小程序给你,你看一下,我做了有地方还是不行,如何上传

上传到:http://www.access911.net/csdn/

#4


我上传了,地址:http://access911.net/csdn/FileDescription.asp?mdb=2012-3-7&id=6

#5


1.序号=recno()
2.report命令使用不当。对照命令,仔细研究使用方法。
REPORT FORM FileName1 | ? [ENVIRONMENT] [Scope] 
   [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
   [RANGE nStartPage [, nEndPage]]
   [HEADING cHeadingText] [SUMMARY] [NORESET] [PLAIN]
   [NOCONSOLE | OFF] [PDSETUP] 
   [NAME ObjectName] 
   [OBJECT oReportListener | TYPE iExpression]
   [TO OutputDestination [NODIALOG]] 
   [PREVIEW [PreviewDestination] [NOWAIT] [WINDOW WindowName]]

3.缺少主程序

#6


感谢,记录问题解决了,还有些问题请教,能不能实现报表上的内容不全打印,只打印域控件内容,不打印标签文字。

#7


本帖最后由 apple_8180 于 2012-03-09 11:01:15 编辑
引用 6 楼 frdwd 的回复:
感谢,记录问题解决了,还有些问题请教,能不能实现报表上的内容不全打印,只打印域控件内容,不打印标签文字。
你报表上不放标签文字不就可以了。报表要打印什么人说了算,因为报表是人设计的。

#8


没错,我是这末做的