以下是小编帮大家整理的VFP基础教程 第二章 VFP语言基础(共含5篇),欢迎大家收藏分享。同时,但愿您也能像本文投稿人“扬戈”一样,积极向本站投稿分享好文章。
2.1 程序设计概述
1. 程序设计方法简介
设计方法
主要概念
设计过程
程序执行方式
结构化程序设计 功能模块(即过程、自定义函数) 编制各个功能模块,再用主程序将它们串起来 将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的,
面向对象程序设计 类、对象、属性、事件、方法 设计类、子类、对象(设计外观、设置属性、为事件编写方法程序) 将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件,是事件驱动的。
2.数据类型
VFP 包含下列数据类型:
通用的数据类型 字符型
Character
货币型
Currency
日期型
Date
日期时间型
DateTime
逻辑型
Logical
数值型
Numeric
仅用于字段的数据类型 双精度型
Double
浮点型
Float
整型
Integer
通用型
General
备注型
Memo
3. 数据容器
VFP中用来存储数据的容器有:常量、变量、数组、记录和对象。
(1) 常量(constants):
一个在操作过程中保持不变的数值或字符串。
常用的常量类型
常量类型
数值型常量
字符型常量
逻辑型常量
日期型常量
表示方式
-25.36
“abc”,“123”,“中国”
.T. .F.
{^/07/10}
(2)变量(variables):
是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变。
变量的命名习惯: 类型变量代号
如:cStud 、nCj 、dCsrq ——
分别代表一个字符型、数值型、日期型的变量名
变量的赋值方式: 1) 用 STORE 命令 如:STORE “王兰” TO cStud
2) 用赋值操作符 = 如:cStud = “王兰”
变量的作用域: 即变量起使用的有效范围,
变量作用域
定义作用域的关键字
特点
局部变量
local variable(本地变量)
LOCAL 只能在一个函数或过程中被访问,其他过程或函数不能访问此变量的数据。当其所属程序停止运行时,局部变量将被释放。
私有变量
private variable
PRIVATE 私有变量在 VFP 中是默认的,不需要特殊的关键字定义。但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE 关键字予以声明,以限定其范围。当定义此变量的例程结束时,此变量也被相应释放。可使用私有变量在被调用的函数中共享数据。
公共变量
public variable
PUBLIC 可用于所有过程和函数,而不限于定义该变量的过程和函数。可使用全局变量在多个过程或函数之间共享数据,在命令窗口中创建的任何变量自动具有全局属性。
变量的访问:
当变量和字段同名时,字段有优先被访问权。要在变量名前加 m. 或 m ->以示区别,如 m.cStud
(3)数组(array):
是存储在一个变量中由单个变量名引用的有序数据集合。在 VFP中,一个数组中的数据不必是同一种数据类型。常用的有一维数组,二维数组。
数组元素的标识:通过一个数值下标来引用,如 AA[2],AA[2,3]
数组类型的声明:
私有数组 ——用DECLARE 或 DIMENSION定义
全局数组 ——用PUBLIC命定义
局部数组 ——用LOCAL定义
数组元素的赋值:
用赋值语句: 如 AA=45
用SCATTER从当前记录中取特定字段的值赋给数组:
如: scatter fields xh, xm, xb to aa
(数组长度、类型自动与所给字段相同)
用 COPY TO ARRAY从当前记录中取所有字段的值赋给数组:
如: copy to array aa
(数组长度、类型自动与表中全部字段相同)
把数组中的数据传给当前表中的当前记录:
gather from 数组名 [fields 字段名表]
用数组向当前表添加记录:
append from array 数组名 [for 条件] [[fields 字段名表]
(用二维数组可以同时添加多条记录)
数组处理的常用函数:
排序SORT,搜索ASCAN(),删除ADEL(),插入AINS()
(4) 记录:
表中的一行,由字段组成。
(5) 对象:
对象是类的一个实例,类是对拥有数据和一定行为特征的对象集合的描述。VFP对象可以是表单、表单集、控件。
2.1 程序设计概述
1.
2.3 程序设计基础
1. 基本概念
程 序:为解决某一问题而设计的一系列指令,
第二章 VFP语言基础
。
主程序:通常被用户直接执行的程序。
子程序:在程序中被调用的程序。
源程序:由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。
目标程序:是源程序经过编译后所产生的机器语言程序。
可执行程序:
源程序被编译后产生的可被机器直接执行的程序,具有 .EXE 扩展名。在VFP中是指由项目管理器连编生成的、可脱离VFP环境运行的程序。
应用程序:
指为完成专门工作而设计的一组相互联系的例行程序和子程序。在VFP中是指一组 Visual FoxPro 程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩展名为.APP。
例行程序:
按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。它可由若干个子程序组成。
2. 程序控制
(1) 顺序语句
即按程序中的语句顺序依次执行。
(2) 分支语句
条件语句:
情况语句:
IF条件命令组1
[ELSE
命令组2 ]
ENDIF
DO CASECASE情况1
命令组1
CASE情况2
命令组2
…
[OTHERWISE
其它命令组 ]
ENDCASE
3. 循环语句
FOR
循环语句(预知循环次数)
FOR变量 = 初值TO终值 [STEP步长 ]命令组
ENDFOR|NEXT
DO WHILE
循环语句(未知循环次数)
DO WHILE条件命令组
ENDDO
SCAN
循环语句(针对全部记录)
SCAN[ 范围 ] [FOR|WHILE条件 ]命令组
ENDSCAN
循环结构中的LOOP命令和EXIT命令:
LOOP是短路语句,表示从此开始下一次循环;
EXIT是退出语句,表示跳出循环,
4. 子程序
子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。
子程序
自定义函数
过程
特点
总是被其他程序调用而不单独执行,可以调用其他子程序,不一定要返回一个值。能以一个独立的文件储存,也可包含在调用程序中,必须返回一个值。是一个程序段,是程序的组成部分,一般放在程序的最后。定义方法
一, 查询的应用
在实际应用中,可以将查询结果用表单的列表框控件显示出来。例如,显示职工的编号,姓名及工资的信息
步骤:
1.新建表单,添加三个标签,caption属性分别设为“编号”,“姓名”,“工资”.再添加一个列表框控件list1,
2.将列表框控件list1的rowsourcetype属性设为3(即可用Sql语句选择数据项),再将其rowsource属性设为“select 编号,姓名,工资 from 职工档案”.另外,将list1的columncount属性设为3
3.保存并运行表单。
二。 视图:前面介绍的查询可以很方便的从表中检索出所需的数据,但不能修改所查出的数据。如果既要查询又要修改数据,可以使用视图。视图是数据库的一部分,与数据库表有很多相似的地方。视图是一个虚表,其中存放的是数据库表的定义。在大多数场合下,视图的作用等同于表,数据库表的特性,比如给字段设置标题等, 同样适用于视图。在VFP中,有两种类型的视图:本地视图和远程视图。本地视图能够更新存放在本地计算机上的表,远程视图能够更新存放在远程服务器上的表。
三。创建本地视图:
1.使用命令方式:可以用下列命令直接创建视图:
格式:create sql view 视图名 as select_sql语句
例如,创建视图zgda,选择“职工档案”表的全部信息,命令如下:
create sql zgda as select * from 职工档案
也可以使用已有的select_sql语句来创建视图,只要把select_sql语句存入一个变量,然后用宏替换在create sql view命令中调用即可
例如,上面创建视图的命令,可以改成下列的格式:
x=“select * from 职工档案”
create sql view zgda as &x
2.使用“视图设计器”创建视图的步骤如下
(1)启动“视图设计器”
(2)添加表或视图
(3)建立表间的关联
(4)选择字段
(5)筛选记录
(6)排序记录
(7)设置更新条件,
“视图设计器”的窗口与“查询设计器”窗口相类似,这里不再介绍。
四。使用“视图设计器”创建视图:
1.启动“视图设计器”:
(1)在项目管理器中选择“全部”或“数据”选项卡,选择“本地视图”,单击“新建”按钮,单出“新建本地视图”对话框,如图62
(2)在“新建本地视图”对话框中单击“新建视图”按钮,进入“视图设计器”窗口,与“查询设计器”窗口相比较,除了多了个“更新条件”选项卡之外,其他都是相同的。
2.添加表:步骤如下
(1)打开“视图设计器”窗口后,弹出“添加表或视图”对话框
(2)在该对话框中,选中要添加的表,单周“添加”
3.其余操作同查询
4.设置更新条件:在“更新条件”选项卡中,选中“发送SQL更新”复选框,并设置更新字段,即可使用视图更新基表中的数据
五。视图的使用:
1.视图的打开:
视图不作为单独的文件存在,是数据库的一部分。要打开视图,必须先打开数据库,格式如下:
open database 数据库名
use 视图名
browse
2.显示视图的结构:
如只需要打开视图并显示其结构,而不必下载数据时,可使用带nodata子句的use命令。对于远程视图,这个选项更有用。格式如下:
use 视图名 nodata
browse
3.关闭视图:公关闭视图,用下列命令:
select 视图名
use
关闭数据库中所有表和视图,用下列命令:
close tables
关闭数据库,则库中的表和视图也一起关闭:
close database
4.1 VFP数据库
1. 数据库的基本组成
数据库由一个以上相互关联的数据表组成,可以包含一个或多个表、视图、到远程数据源的连接和存储过程,
视图(view):
一个保存在数据库中的、由引用一个或多个表、或其他视图的相关数据组成的虚拟表,可以是本地的、远程的或带参数的。
存储过程(stored procedure):
是保存在数据库中的一个过程。该过程能包含一个用户自定义函数中的任何命令和函数。
创建数据库时系统自动生成3个文件:
数据库文件: 扩展名为 .DBC
数据库备注文件: 扩展名为 .DCT
数据库索引文件: 扩展名为 .DCX
2. 数据库的设计过程
1)明确建立数据库的目的和使用方式
2)设计所需的数据表(包括表结构和表记录)
3)建立表之间的关系
4)改进设计
4.2 数据库的创建
1. 数据库的创建过程
数据库的创建过程中一般会涉及下面一些常用操作:
1)创建新表→用表设计器 (设置字段属性和表属性)
2)添加表→用数据库设计器按钮或数据库菜单
3)创建视图→用视图向导、视图设计器
4)建立关系→ 用鼠标将父表的索引拖到子表的相关索引上
5)编辑关系→ 用数据库菜单或快捷菜单 → 参照完整性生成器
6)移去关系→用快捷菜单或按delete键
7)修改表→用表设计器
8)删除表或视图→用数据库设计器按钮或数据库菜单
3.1 VFP6.0表
1.表的概念
表(数据表):
是指存放在磁盘文件中的一张二维表,
VFP基础教程 第三章 表的创建和使用
。(相当FoxPro 2.x 版本中的数据库)
自由表:不属于任何数据库的表。
数据库表:包含在一个数据库中的表。
表文件名:
表名可以由字母、数字或下划线组成,系统自动给出的扩展名为.DBF。
备注文件名:
当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FPT的文件名。
表结构:存储表记录的公共结构。(就是指一张表的表头结构,即字段的属性)。
记录:表中的一行。它是多个字段的集合,同一张表的每个记录都有相同的字段。
字段:表中的一列。它规定了数据的特征。
关系型数据表的特点:
(1)每一个字段不可再分解,也不能有名字相同的字段;
(2)每一列中的数据都有相同的数据类型;
(3)表中没有内容完全相同的行(记录)。
2.字段的基本属性
字段的属性:
包括:字段名、数据类型、字段宽度、小数位数、空值支持
字段名:
即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。
VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。
数据类型:指该字段的数据特征。
字段宽度:指该字段所能容纳数据的的最大字节数。
小数位数:指数值型数据将保留几位小数。此时的字段宽度 = 整数位数+1+小数位数。
NULL值(空值):
无明确的值。NULL 值不等同于零或空格。一个 NULL 值不能认为比某个值(包括另一个 NULL 值)大或小,相等或不同。
VFP 6.0表中字段的数据类型
字段类型
代号说明
字段宽度
使用示例
字符型C
字母、汉字和数字型文本每个字符为1个字节,最多可有 254 个字符学生的学号或姓名, “8199101” 或 '李立'货币型Y
货币单位8 个字节工资, $1246.89日期型D
包含有年、月和日的数据8 个字节出生日期,{^1980/07/08}
日期时间型T
包含有年、月、日、时、分、秒的数据8 个字节上班时间,{^2005/02/20 9:15:15 AM}
逻辑型L
“真”或“假”的布尔值1 个字节课程是否为必修课,.T. 或 .F.
数值型N
整数或小数在内存中占 8 个字节;在表中占1 至20个字节考试成绩, 83.5双精度型B
双精度浮点数8 个字节实验要求的高精度数据浮点型F
与数值型一样整型I
不带小数点的数值4 个字节学生的数量通用型G
OLE 对象在表中占 4 个字节图片或声音备注型M
不定长度的一段文字在表中占 4 个字节学生简历字符型(二进制)C
任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有 254 个字符备注型(二进制)M
任意不经过代码页修改而维护的备注数据在表中占 4 个字节3.表的基本操作
表的创建:设计表名和表结构、输入记录、建立索引
数据维护:增加记录、修改记录、删除记录
创建表的主要步骤: 设计表结构 → 输入记录 → 建立索引 → 数据维护
4.关于表操作的几个基本命令
命令格式
功能
CREATE表文件名创建一个新的自由表的结构USE表文件名打开指定的表文件USE关闭当前表文件LIST ALL显示当前表的全部记录内容(类似于DOS 命令中的dir)DISPLAY ALL分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p)DISPLAY STRUCTURE显示当前表的结构(分屏显示)LIST STRUCTURE显示当前表的结构(不分屏显示)MODIFY STRUCTURE调出表设计器,修改当前表的结构,注意:
(1)必须先打开所需的数据表才可进行以上操作;
(2)当带有命令子句时,只对指定的记录进行操作;
(3)LIST 命令的默认范围是所有记录,DISPLAY 命令的默认范围是当前记录。