欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 教学文档 > 教案>VFP教程 七、表单设计

VFP教程 七、表单设计

2023-02-01 08:25:21 收藏本文 下载本文

“迪士尼在逃后妈”通过精心收集,向本站投稿了10篇VFP教程 七、表单设计,下面是小编为大家推荐的VFP教程 七、表单设计,欢迎阅读,希望大家能够喜欢。

VFP教程 七、表单设计

篇1:VFP教程 七、表单设计

7.1 基本概念

1.名词解释

表单:

即用户与计算机进行交流的一种屏幕界面,用于数据的显示、输入、修改,

VFP教程 七、表单设计

。该界面可以自行设计和定义,是一种容器类,可包括多个控件(或称对象)。

表单集:

可包含一张或多张表单的容器。

数据环境:

在打开或修改一个表单或报表时需要打开的全部表、视图和关系。它以窗口形式(类似于数据库设计器)反映出与表单有关的表、视图、表之间关系等内容。可以用数据环境设计器来创建和修改表单的数据环境。

2.表单设计界面

主要包括: 表单向导、表单设计器、表单设计器工具栏、表单控件工具栏、属性窗口

3.表单设计中常用的属性、事件与方法介绍

属性、事件、方法

说明

默认值

AlwaysOnTop属性控制表单是否总是处在其他打开窗口之上假(.F.)AutoCenter属性控制表单初始化时是否让表单自动地在Visual FoxPro主窗口中居中假(.F.)BackColor属性决定表单窗口的颜色255,255,255BorderStyle属性决定表单是否有边框,若有边框,是单线边框、双线边框,还是系统边框,

电脑资料

如果BorderStyle为3(系统),用户可重新改变表单大小3Caption属性决定表单标题栏显示的文本FormlClosable属性控制用户是否能通过双击“关闭”框来关闭表单真(.T.)MaxButton属性控制表单是否具有最大化按钮真(.T.)MinButton属性控制表单是否具有最小化按钮真(.T.)Movable属性控制表单是否能移动到屏幕的新位置真(.T.)WindowState属性控制表单是最小化、最大化还是正常状态0 正常WindowType属性控制表单是非模式表单(默认)还是模式表单。如果表单是模式表单,用户在访问应用程序用户界面中任何其他单元前必须关闭该表单0 非模式Activate事件当激活表单时发生Click事件在控制上单击鼠标左键时发生DblClick事件在控制上双击鼠标左键时发生Destroy事件当释放一个对象的实例时发生Init事件在创建表单对象时发生Error事件当某方法(过程)在运行出错时发生KeyPress事件当按下并释放某个键时发生Load事件在创建表单对象前发生Unload事件当对象释放时发生RightClick事件在单击鼠标右键时发生AddObject方法运行时,在容器对象中添加对象Move方法移动一个对象Refresh方法重画表单或控制,并刷新所有值Release方法从内存中释放表单Show方法显示一张表单

篇2:VFP教程 九、菜单与工具栏设计

9.1 菜单系统规划

1. 设计原则

(1) 根据用户任务组织菜单系统

(2) 给每个菜单和菜单选项设置一个意义明了的标题

(3) 按照估计的菜单项使用频率、逻辑顺序或字母顺序组织菜单项

(4) 在菜单项的逻辑组之间放置分隔线

(5) 给每个菜单和菜单选项设置热键或键盘快捷键

(6) 将菜单上菜单项的数目限制在一个屏幕之内,如果超过了一屏,则应为其中一些菜单项创建子菜单,

(7) 在菜单项中混合使用大小写字母,只有强调时才全部使用大写字母。

2. 设计步骤

(1)菜单系统规划

(2)建立菜单和子菜单

(3)将任务分派到菜单系统中

(4)生成菜单程序

(5)测试并运行菜单系统

9.2 创建菜单

1. 菜单设计器简介

2. 用菜单设计器创建菜单

打开文件菜单 →新建→菜单→新文件→ 在菜单设计器中逐项设计所需菜单(或选择菜单中的快速菜单,生成通用的菜单)→ 预览 → 确定 → 关闭菜单设计器 → 给出文件名及保存位置→从菜单菜单中选择生成…→在对话框中单击生成(可更改菜单程序文件的文件名和保存位置再生成),

电脑资料

菜单设计器关闭后,系统产生两个文件:

菜单定义文件 扩展名为 .MNX

菜单备注文件 扩展名为 .MNT

从菜单菜单中选择生成后, 系统自动生成同名的菜单程序文件, 扩展名为 .MPR

篇3:VFP教程 八、报表与标签设计

8.1 基本概念

1.报表:

是通过打印机将所需的记录用书面形式输出来的一种方式,

报表保存后系统会产生两个文件:

报表定义文件: 扩展名为.FRX

报表备注文件: 扩展名为.FRT

2.报表的数据来源:

(1)浏览结果:报表中包含全部记录和字段

(2)查询结果:由查询产生的特定记录和字段

3.界面介绍:报表向导 报表设计器 报表设计器工具栏报表控制工具栏

向导类型:

(1)报表向导:创建一张带格式的单张表的报表

(2)分组/总计报表向导:创建一张单张表的总结报表,提供每组数据的总计值

(3)一对多报表向导: 创建一张包含父表记录和相关子表记录的报表

注意:要先建立索引和关系

篇4:看实例学VFP:制作系统登录表单

本例制作一个简单的登录表单,系统运行时首先启动此登录表单,运行界面如下图:

输入正确的用户名及密码才会启动主表单,如下图;若连续3次输入错误的用户名及密码则会自动退出,

制作步骤如下:

一、新建表单,将表单的caption属性值设置为“系统登录”,ShowWindow属性值设置为“2-作为顶层表单”,width属性值设置为295,height属性值设置为100,AutoCenter属性值设置为,并将表单保存为“系统登录.scx”。

二、继续设置该表单的属性:将表单的MaxButton及MinButton属性值均设置为.f.,这样就屏蔽掉了表单的最大化和最小化按钮,成为只有一个关闭按钮的对话框。

三、向表单添加两个label控件,将它们的caption属性值分别设置为“用户名”和“密 码”。

四、向表单添加两个文本框控件,并将其中的Text2的PasswordChar属性值设置为“*”。

五、向表单添加两个命令按钮command1和command2,将它们的caption属性值分别设置为“确定”和“退出”。

六、适当调整各控件在表单上的位置及大小,调整后的表单设计器如下图:

七、右击表单空白处,选“数据环境”命令,将“管理”表添加到表单的数据环境中。

八、添加事件代码:

(一)表单的init事件代码:

public cn &&声明全局变量,用于计算登录次数

cn=0

(二) 表单的unload事件:

close all

clear events

quit

(三)接收用户名的文本框Text1的KeyPress事件代码:

LPARAMETERS nKeyCode, nShiftAltCtrlif nKeyCode=13.and.!empty(this.value) &&输入用户名后按回车即进入输密码 thisform.Text2.enabled=.t. thisform.Text2.setfocusendif

(四)“确定”按钮command1的click事件代码:

cname=alltrim(thisform.text1.value)ppassword=alltrim(thisform.text2.value)cn=cn+1if cn=3 thisform.releaseendifset exact ongo toplocate for 操作员姓名=cname.and.密码=ppasswordif eof messagebox('用户名或密码错误,请重新输入!','系统提示') return else thisform.visible=.f. do form. 主表单 &&调入主界面表单endifset exact off &&设置字符非精确比较

(五)“退出”按钮command2的click事件代码:thisform.release

九、运行“系统登录.scx”即可,在看实例学VFP:示例数据库一文中已经给出了“管理.dbf”的结构,其中预置的两个操作员的用户名及密码分别是:

用户名密码张三12345678李四aaaaaaaa

本例代码在Win+VFP6.0环境下调试通过,

篇5:在vfp中实现表单的输出

VB、Delphi 都为 Form. 对象封装了 PrintForm. 方法,允许用户方便的将 Form. 转换成为 BMP,这是一个不错的功能,在实际开发过程中是经常有这种需求的,比如把统计图表作为图片保存下来……

然而很不幸的是 Visual FoxPro(包括即将登场的 7.0) 并没有为我们封装此种功能。这个问题一定困扰着不少狐友吧,包括我。虽然我们知道使用 Win API 就可以解决问题,实际编程却又谈何容易?

很高兴得到了 George Tasker 编写的“OBJ2BMP”工具,并得到了所有原始代码。George Tasker 为我们提供了一个 Visual FoxPro 版的抓图工具,但我认为这个工具不见得实用——总不能在我们的应用程序中老是要调用一个工具才能完成 PrintFrom 的工作吧,这样既不专业也不美观。于是我利用 George Tasker 提供的源代码作了简单的二次开发,重新封装了部分功能,希望能这个很棒的工具更合适开发人员使用。

原始代码版权属于 George Tasker,本文及二次开发的版权属于 BOE 数据网络工作室。该软件属于免费软件,您可以随意使用,但如果造成什么不良后果,我们不承担任何责任。

以下所有讨论均以“象素”为单位!!!

使用 OBJ2BMP 工具

先让我们来看看怎样使用 George Tasker 为我们提供的 OBJ2BMP 工具吧!

编译项目成为 obj2bmp.app

使用 obj2bmp.app 工具

新建一个表单,设定表单的 alwaysOnTop属性为 .t.或者设定 alwaysOnBottom 属性为.t.,运行表单。

在“命令窗口”中键入如下命令,并执行:

ObjPicker=.null.

DO Obj2Bmp.app WITH oObjPicker

如下图:

右面的表单就是抓图工具,请注意它下方的按下拉式列表框中列示了两个对象:“抓图”和“Select Object”(目的表单的Caption 属性)。“抓图”是指左面的表单,“Select Object”就是它自己。由于我们在下拉式列表框中选择了“抓图”表单,所以列表框中就列示了“抓图”中的所有可视控件:表单、Olecontrol、Command,您可以选择要抓拍的控件的名称,按下“Capture”按钮,您将得到该控件的当前模样的图片。

对于画面的质量您也可以控制,24 Bit Color 质量最好。

FormPrint 类的使用详解

从开发人员的角度看“obj2bmp”工具,好像实用性不大,于是我对源代码进行了简单的封装。

必备的支持文件

类文件:Obj2bmp.vcx、Obj2bmp.vct

类引用的头文件:rgb_256.h

API 库:Foxtools.fll

其他的 API 库,我想这对 Windows 32 位系统是不成问题的

关于 Foxtools.fll 的说明。Foxtools.fll 是 Visual FoxPro 自带的 API 库,默认存放在 Home() 目录下。在建立 FormPrint 类实例时(init 事件)检测是否已对 Foxtools.fll 引用,如果没有则执行如下命令:

set library to (home()+“foxtools.fll”) addi

请务必保证 Home() 目录下有此文件,如果您想把 Foxtools.fll放在其它地方,请修改以上语句,

引用 Foxtools.fll 的目地在于得到表单的句柄,在 Visual FoxPro 7 中每个表单都有句柄属性,就不用麻烦 Foxtools.fll 了。

FormPrint 类的用户接口

cFileName 属性:图片输出目录及名称。

makebitmap(pnhWnd, pnBPP, pnTop, pnLeft, pnHeight, pnWidth)方法:实现图片输出。

有关 cFileName 属性的说明。在使用 makebitmap 方法前设定此属性,可指定图片文件的名称及输出路径。如:

obj.cFileName=“C:\BMP\abc.bmp” 将图片文件保存在C:\BMP目录下,文件名称是abc.bmp。

如果执行makebitmap方法时,目标文件已经存在,程序将在不通知的情况下覆盖它;如果执行 makebitmap 方法时文件不能建立(可能是目录不存在、路径无效、无法覆盖已存在的文件……),程序将重新设定图片文件的名称及保存目录,新文件名及目录是这样确定:

sys(5)+sys(2003)+“\”+left(sys(),8)+“.bmp”

如果事先不设定 cFileName 属性,使其保持默认值 .null. 或设定 cFileName 为 .null. 值,程序也将使用“sys(5)+sys(2003)+“\”+left(sys(2015),8)+“.bmp””确定图片的名称及保存目录。

每次图片生成完毕,cFileName 属性自动设定为 .null. 值。

有关 makebitmap(pnhWnd, pnBPP, pnTop, pnLeft, pnHeight, pnWidth)方法的说明。

所有六个参数均可省略,但我建议调用时不要省略前两个参数。

——pnhWnd 代表被输出表单的句柄。如果 PrintForm. 实例化以后其父对象是被输出表单的话,传递 0 即代表打印当前表单;如果要打印其他表单的话,请使用如下代码得到它的句柄,并以此句柄作为 pnhwnd 传递:

_WhTohWnd(_WFindTitl(cCaption)) && cCaption 代表被输出表单的 Caption 属性。

——pnBPP 代表输出图片的质量。有三种选择:4,8,24,数字越大质量越好。

输出整个表单

新建表单(实例一),添加控件。别忘了把 PrintForm. 类加入表单,使之成为表单的子对象。如图:

A.最简单的应用,在“输出”按钮的“Click”事件中加入如下代码:

?ThisForm.printform1.makebitmap(0,24)

* 显示:F:\OBJ2BMP\_0CU0FYF.BMP。表明图面文件的名称和位置。

B.指定输出目的地,在“输出”按钮的“Click”事件中加入如下代码:

Thisform.printform1.cFileName=“C:\ABC.BMP”

?ThisForm.printform1.makebitmap(0,24)

* 显示:C:\ABC.BMP。表明图面文件的名称和位置。

篇6:VFP教程 十一、应用程序开发

11.1 开发应用程序的基本步骤

在开发应用程序时,首先应进行系统环境规划,规划中要考虑的因素有:应用程序所面向的用户及其可能需要的各种操作、数据库规模、系统工作平台(单用户或是网络)、程序要处理的数据类型(是本地数据还是远程数据)等,

VFP教程 十一、应用程序开发

。规划完成之后,即可利用项目管理器来进行每一步开发,它可以帮助管理开发过程中的所有文件,并最终连编成应用程序。应用程序的开发步骤大致如下图所示:

1. 数据库结构设计

2. 系统功能模块设计

3. 菜单设计

4. 用户界面设计

5. 查询设计

6. 报表设计

7. 系统维护设计

8. 系统模块调试

9. 用项目管理器连编成应用程序

11.2 优化应用程序的技巧

1. 优化表和索引

(1) 如果没有启用记录或表缓冲,应该使用INSERT-SQL命令(因索引只需更新一次),而不要使用APPEND BLANK 命令后再使用REPLACE;

(2) 当需要将大量记录追加到索引过的表中时,应先取消或关闭索引,在数据追加完毕,再重建索引,这样速度会快些;

(3) 在SQL语句中要尽量避免函数调用;

(4) 如果需要经常使用某种索引顺序,应周期性使用此索引对表进行排序,提高表的性能;

(5) 在多用户环境中,使用CDX 索引文件比 IDX 索引文件快。

2. 使用Rushmore 技术加速数据访问

使用 Rushmore 技术可以显著地提高查询的速度,

电脑资料

Rushmore 是一种从表中快速地选取记录集的技术,它可将查询响应时间从数小时或数分钟降低到数秒。访问单表时,使用 FOR 子句,访问多表时,使用SELECT-SQL 查询,可自动隐含地使用该技术。

(1)访问单个表中的数据,使用一个FOR子句;

(2)访问多个表中的数据,使用SELECT-SQL、DELETE-SQL、UPDATE-SQL命令。

3. 优化表单和控件

(1) 使用数据环境;

(2)在表单集里限制表单数目;

(3)在页框中动态加载页面控件;

(4)动态绑定控件与数据;

(5)当必须对屏幕进行多处更改时,延迟屏幕刷新;

(6)在经常使用的方法程序中减少代码。

4. 提高VFP程序性能的一般技巧

(1)数据要选择正确的数据类型

(2)避免重复打开文件,需要打开多个文件时,将它们分配给不同的工作区,需要时使用SELECT命令选择工作区;

(3)尽量使用FOR…ENDFOR循环,而不要使用DO WHILE…ENDDO循环,因为FOR循环较快;

(4)从多个字段复制数据时,用SCATTER TO ARRAY 比用SCATTER MEMVER快;

(5)为了有效的使用内存,避免在需要对象之前就创建它们,当不要该对象时应及时清除它;

(6)尽量将输出发送到顶层窗口,速度快些;

(7)使用SET TALK OFF命令取消状态显示,可节省屏幕顶端更新时间;

(8)将SET DOHISTORY 设置为OFF,避免当运行程序时每次都更新命令窗口;

(9)使用名称表达式代替宏替换,因为名称表达式更快;

(10)有效地引用对象属性:

·优化对属性的重复引用,可将属性值保存到一个变量中,再进行更改,在完成时一次性的设置属性;

·有效地引用多个属性,可以用WITH…ENDWITH命令避免重复查找同一个对象,或将对象的引用保存在变量中。

篇7:让VFP表单卸载时显示确认对话框

在用Visual FoxPro(以下简称VFP)做系统开发时,我们有时希望表单在被关闭前能显示确认信息,给用户留有选择的余地,这在Windows程序中非常普遍,作用也是显而易见的。在VFP中要实现此功能,方法也很简单。

首先,让我们来看一个VFP表单的卸载步骤:表单在卸载前,首先要询问表单的QueryUnload事件,然后再卸载表单。也就是说,QueryUnload事件是表单卸载时第一个被触发的事件。在 QueryUnload 事件过程中执行 NODEFAULT命令可以阻止表单卸载。这样我们通过在QueryUnload 事件中巧妙包含NODEFAULT,就能避免直接卸载表单。

QueryUnload是怎样被触发的呢?当在代码中执行 CLEAR WINDOWS,RELEASE WINDOWS 或 QUIT 等命令时、或者当用户双击控制菜单框时、或者当用户从表单的控制菜单中选择执行“关闭”命令时,都会触发表单的 QueryUnload 事件。

先在表单的QueryUnload事件中包含下面代码:

*-- 显示包含“是”、“否”两个按钮的对话框

nYesNo = MessageBox(“确定要退出吗?”,4+48+256,“提示”)

If nYesNo = 6 &&如果选取了“是”,则退出

*-- 退出前要执行的代码写在这里,

*-- 然后执行类似下面的退出代码

ThisForm.Release

Else &&选取了“否”,不退出

NODEFAULT

EndIf

这样当有卸载表单的事件发生时,都会显示确认要退出的对话框:只有选取“是”,才能卸载表单,

这样做是非常有用的,例如我们为了避免正在操作的数据没有保存就退出,可以在程序中使用这段代码,至于如何保存数据,不同的程序采取的方法不尽相同,这里我们不做详细讨论。

需要说明的是,当在代码中直接执行 RELEASE 命令或直接调用表单的 Release 方法时,不会触发 QueryUnload 事件。因此,我们应尽量避免在代码中直接执行RELEASE 命令或调用表单的 Release 方法。取代的方法是,当要卸载表单时,转向调用表单的QueryUnload方法。

例如,我们要在表单中放置一个标题为“退出”的命令按钮,用来退出这个表单,并希望在退出时能显示确认对话框,可以在这个命令按钮的Click事件代码中包含下面的命令:

ThisForm.QueryUnload

本方法在Visual FoxPro 6.0中文版环境下验证通过,操作系统为Windows 98中文版、Windows NT 4.0中文版。

篇8:第九天 CSS表单设计

如果前边几章学习的比较扎实的话,本节教程就相当容易了,

第九天 CSS表单设计

。下边先说一下文本框,文本框和文本域都是可以用css进行美化的。比如改变边框精细,颜色,添加背景色、背景图像等。请看下边的实例:

.text1 { border:1px solid #f60; color:#03C;}

.text2 { border:2px solid #390; width:200px; height:24px; font-size:16px; font-weight:bold; line-height:1.6;}

.text3 { border:2px solid #C3C; height:20px; background:url(icon9.gif) right 3px no-repeat;}

.text4 { border:2px solid #F60; width:150px; height:29px;font-size:16px; line-height:1.6; background:url(bg_9.gif) 0 0 no-repeat;}

这四个样式表分别对应第2、3、4、5行表单,第一行是文本框的默认样式;第二行为设置边框和字体颜色的样式;第三行为设置边框、宽度、高度、字体大小、行高的样式;第四行设置边框和增加背景色和背景图片;第五行为增加一个gif动画的背景图片,看起来是不是生动许多,具体步骤不再赘述。下面我们看一下文本域的样式设置:

.area { border:1px solid #F90; overflow:auto; background:#fff url(bg_9_1.gif) right bottom no-repeat; width:99%; height:100px;}

上图中第一个为默认的文本域样式,第二个为设置边框、宽度为百分比、高度和景图片。overflow:auto定义当内容不超过现在文本域高度时不出现滚动条。好了,下面运行一下代码看看两者的效果吧

标准之路www.aa25.cn 提示:可以先修改部分代码后再运行

篇9:第九天 CSS表单设计

下拉列表(菜单)是大家最头疼的一个元素,因其对许多样式不生效,故而在页面中显示很丑陋,而且在IE6下总在最上层,造成许多弹出层不能把其遮挡(可恶的IE6呀),使页面的用户检验大打折扣,所以一些设计师想出了许多办法来改变这种情况,

《第九天 CSS表单设计》()。

IE6下对下拉列表的背景和宽度样式生效,其它绝大部分不生效,IE8下增加了对边框和高度的支持。但这样似乎离我们要求还很远,所以不得不寻求其它的办法了。先看下面三个图,同一代码分别在IE6、FF、IE8下显示的差异吧。

标准之路www.aa25.cn 提示:可以先修改部分代码后再运行

在三个浏览器下显示都不尽相同,所以最好是寻求其它的办法或者使用默认样式了。基中IE6下被遮挡可以把浮动层用iframe,因下拉列表不会跑到iframe上边。有更高美化需求的可以用div模拟来代替下拉列表,但这种方法实现起来麻烦,由于时间关系,本节不过多的介绍这种方法,感兴趣的朋友可以参考www.aa25.cn/css_example/541.shtml,进一步的学习。

篇10:第九天 CSS表单设计

按钮也是网页中经常见的元素,但默认的样式有时候和页面整体效果不协调,需要把它美化一下,它的样式设置和文本框如出一辙,没有什么特别之处。下面以三个实例来说明一下:

.btn02 { background:#fff url(btn_bg2.gif) 0 0; height:22px; width:55px; color:#297405; border:1px solid #90be4a; font-size:12px; font-weight:bold; line-height:180%; cursor:pointer;}

.btn04 { background:url(btn_bg2.gif) 0 -24px; width:70px; height:22px; color:#9a4501; border:1px solid #dbb119; font-size:12px; line-height:160%; cursor:pointer;}

.btn07 { background:url(submit_bg.gif) 0px -8px; border:1px solid #cfab25; height:32px; font-weight:bold; padding-top:2px; cursor:pointer; font-size:14px; color:#660000;}

.btn08 { background:url(submit_bg.gif) 0px -64px; border:1px solid #8b9c56; height:32px; font-weight:bold; padding-top:2px; cursor:pointer; font-size:14px; color:#360;}

.btn09 { background:url(www.aa25.cn/upload/2010-08/14/014304_btn_bg.gif) 0 0 no-repeat; width:107px; height:37px; border:none; font-size:14px; font-weight:bold; color:#d84700; cursor:pointer;}

图中的按钮,前两个为固定宽度,但宽度可以根据需要随意调整;中间两个为自适应宽度,根据字数多少去适应;这四个样式都是采用一个背景图片横向循环实现,所以宽度不受限制,最后一个完全采用背景图片,这样宽度就得固定死了,要不会影响美观。需要注意的是这种方式需要去掉按钮边框。

采用以上的按钮有一个好处是当css样式表没有加载上时,将会显示为默认按钮样式,这样用户可以清楚地知道这是个按钮,正常加载后,会使按钮更加美观。它和我们第五天讲的css按钮有所不同,那里的按钮实际还是个链接,而这里的是按钮元素。注:不同浏览器下显示效果略有不同。

标准之路www.aa25.cn 提示:可以先修改部分代码后再运行

【VFP教程 七、表单设计】相关文章:

1.VFP教程 八、 报表与标签设计

2.《识字七》教学设计

3.简历设计七忌

4.咏物诗的教程设计

5.在线用表单建立文件夹

6.抽检不合格整改报告表单

7.销售部周月工作计划表单

8.《语文天地七》优秀教学设计

9.《秋姑娘的信》-教学设计七

10.人教:《回顾?拓展七》教学设计

下载word文档
《VFP教程 七、表单设计.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部