Visual FoxPro 程序设计 河南财专信息工程系 2017/3/8 1
第1章 Visual FoxPro概述 1.1 数据库与数据模型 1.2 关系数据库系统概述 1.3 VFP的安装和启动
1.1 数据库与数据模型 1.1.1 数据库基本概念 1.数据与信息 数据(Data)是对客观事物特征的一种抽象化、符号化的描述。 第1章 Visual FoxPro概述 1.1 数据库与数据模型 1.1.1 数据库基本概念 1.数据与信息 数据(Data)是对客观事物特征的一种抽象化、符号化的描述。 信息(Information)是经过加工处理后获得的有用数据。数据被加工的过程叫数据处理(Data Processing)。
1.1 数据库与数据模型 2.数据库 数据库(Database)是以一定的组织形式存储在一起的、相互关联的数据集合。 数据库的特点: 第1章 Visual FoxPro概述 1.1 数据库与数据模型 2.数据库 数据库(Database)是以一定的组织形式存储在一起的、相互关联的数据集合。 数据库的特点: (1)数据结构化。 (2)数据共享。 (3)数据独立性。 (4)可控冗余度。
1.1 数据库与数据模型 第1章 Visual FoxPro概述 3.数据库管理系统 数据库管理系统(Database Management System,DBMS)是数据库管理的计算机应用软件。 数据库管理系统的功能: (1)数据定义功能; (2)数据操作功能; (3)控制和管理功能。 4.数据库系统 数据库系统(Database System,DBS)是基于数据库的计算机应用系统。包括数据库、数据库管理系统、支持数据库管理系统的软硬件环境,数据库管理人员和用户等。
1.1 数据库与数据模型 1.1.2 数据模型 第1章 Visual FoxPro概述 数据的组织形式称为数据模型,它反映了数据库中数据之间联系的方式。数据模型有三类: 1.层次型 层次模型中的数据联系是以树型 结构为基础,每个数据元素可以 与下面一层的多个数据元素发生 联系,但只与它上一层的一个数 据库元素发生联系。
1.1 数据库与数据模型 第1章 Visual FoxPro概述 2.网状型 网状型是指数据元素之间的联系以网络结构为基础,网上的节点表示数据元素,网上的连线表示数据元素之间的联系。
1.1 数据库与数据模型 第1章 Visual FoxPro概述 3.关系型 关系型数据模型是用二维表格结构表示数据之间的联系。表中的列用来描述事物的属性,称为字段(Fields),表中的行是某一数据元组属性值的集合,称为记录(Record)。VFP表最多可以包括255个字段,最多可以达到10亿条记录。
1.选择。是指从数据库表中挑选出满足某些条件的若干记录进行操作(选行)。 2.投影。是指从数据库表中挑选出指定的若干字段进行操作(选列)。 第1章 Visual FoxPro概述 1.1 数据库与数据模型 1.1.3 关系运算 1.选择。是指从数据库表中挑选出满足某些条件的若干记录进行操作(选行)。 2.投影。是指从数据库表中挑选出指定的若干字段进行操作(选列)。 3.连接。是将两个数据库表按某个属性连接成一个新的数据库表。
1.2 关系数据库系统概述 第1章 Visual FoxPro概述 1.2.1 关系数据库系统发展概况 在微机关系型数据库系统中,20世纪70年代末期,由美国Ashton-Tate公司研制的dBase成为当时最流行的微机关系型数据库系统。1987年美国FOX公司公布了与dBase兼容的FoxBASE,不仅功能更强,而且运行速度也有明显提高。dBase和 FoxBASE都是在DOS环境下运行的数据库系统。1992年,美国微软公司收购了Fox公司,并于次年推出了FoxPro for Windows,它既可以在DOS环境下运行,也可以在Windows 环境下运行。1995年,微软公司首次将可视化程序设计(visual programming)引入了FoxPro,推出了Visual FoxPro 3.0,使其成为全窗口界面的关系数据库系统。之后,微软又推出了几种更高版本。
1.2 关系数据库系统概述 1.2.2 VFP6.0的主要特点 1.强大的查询与管理功能; 2.引入了数据库表的新概念; 第1章 Visual FoxPro概述 1.2 关系数据库系统概述 1.2.2 VFP6.0的主要特点 1.强大的查询与管理功能; 2.引入了数据库表的新概念; 3.扩大了对结构化查询语言SQL(Structured Query Language)的支持; 4.大量使用了可视化界面操作工具; 5.支持面向对象的程序设计; 6.通过对象链接与嵌入OLE(Object Linking and Embedding)技术实现应用集成。
1.3 VFP的安装与启动 第1章 Visual FoxPro概述 1.3.1 VFP6.0的安装 将VFP系统盘装入光驱,打开"我的电脑",双击光盘图标,打开VFP6.0系统文件夹窗口:
1.3 VFP的安装与启动 第1章 Visual FoxPro概述 双击安装程序SETUP图标 便可进行安装。 系统默认的安装路径为: C:\program files\Microsoft visual studio\vfp98 系统在安装过程中,根据屏幕提示,用户需在最终许可协议窗口选择"接授协议",单击"下一步"。
1.3 VFP的安装与启动 第1章 Visual FoxPro概述 在产品序列号输入框中输入产品序列号,单击"下一步"按钮,系统便可继续安装。
1.3 VFP的安装与启动 1.3.2 VFP的启动 1.3.4 VFP窗口 第1章 Visual FoxPro概述 1.3 VFP的安装与启动 系统安装完成后,在开始菜单的程序项中添加了"Microsoft Visual FoxPro6.0"。 1.3.2 VFP的启动 单击"开始"按钮,弹出开始菜单,指向"程序"中的"Microsoft Visual FoxPro6.0"单击,便可出现VFP窗口。 1.3.4 VFP窗口 VFP窗口由标题栏、菜单栏、工具栏、命令窗口、编辑和显示窗口、状态栏构成。
第1章 Visual FoxPro概述 1.3 VFP的安装与启动 标题栏 菜单栏 工具栏 命令窗口 编辑和显示窗口 状态栏
1.4 VFP的工作方式 VFP有三种工作方式: 1.命令执行方式。是通过键盘命令来完成操作。 第1章 Visual FoxPro概述 1.4 VFP的工作方式 VFP有三种工作方式: 1.命令执行方式。是通过键盘命令来完成操作。 2.界面操作方式。是通过菜单、窗口、对话框等图形界面进行的操作。 命令执行方式和界面操作方式统称为交互方式。 3.程序执行方式。是将VFP的命令编制成命令序列,并存入程序文件,运行程序文件完成操作。
1.5 VFP的语言成分 第1章 Visual FoxPro概述 VFP的语言成成分是指VFP命令语句的构成要素,这些要素包括命令、常量、变量、函数和表达式等。 1.5.1 字段的数据类型 表(Table)是由行和列组成的二维表格文件,扩展名为DBF(例如,教师表可命名为:teacher.dbf,表的内容如下图所示)。
1.5 VFP的语言成分 表中的字段有不同的数据类型,字段的数据类型不同进行数据运算和处理的方法也不同。字段的数据类型主要有: 第1章 Visual FoxPro概述 1.5 VFP的语言成分 表中的字段有不同的数据类型,字段的数据类型不同进行数据运算和处理的方法也不同。字段的数据类型主要有: 1.字符型(Character,C型):由西文字符、汉字或其他符号构成,最大宽度254个字符。如姓名、性别、职称等可设计为字符型。 2.数值型(Numeric,N型):是可以参与算术运算的数据,由整数、小数、小数点和正负号构成,最多20位。如基本工资、奖金、津贴、房租、水电等可设计为数值型。
第1章 Visual FoxPro概述 1.5 VFP的语言成分 3.日期型(Date,D型):以MM/DD/YY形式存放日期数据,宽度为8个字节。例如,1990年5月10日可写为:05/10/90。出生年月、参加工作时间等可设计为日期型。 4.逻辑型(Logic,L型):用来存放逻辑判断结果真(T)或假(F),宽度为一个字节。凡是事件只有两种表现状态的均可设计为逻辑型。如婚否、性别等。
第1章 Visual FoxPro概述 1.5 VFP的语言成分 5.备注型(Memo,M型):用来存放表(.DBF)中大段文字的字段(如个人简历、公司简介等字段可设计为备注型),其字段名宽度为4个字节,其内容存放在与表(DBF)文件主名相同的备注型文件(扩展名为FPT)中。例如,teacher.dbf表中个人简历字段的内容可存放在备注型文件teacher.fpt中。
此外还有货币型(Y型)、日期时间型(T型)、浮动型(N型)、整型(N型)、双精度型(N型)等。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 6.通用型(General,G型):用来存放多媒体数据,字段名宽度为4个字节,其内容也存放在备注型文件(FPT)中。如照片、讲话录音、视频等字段可设计为通用型。 此外还有货币型(Y型)、日期时间型(T型)、浮动型(N型)、整型(N型)、双精度型(N型)等。
1.5 VFP的语言成分 1.5.2 常量和变量 1.常量。是在命令操作和程序运行中固定不变的数据。如圆周率3.14,字符串“ABCD”等。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 1.5.2 常量和变量 1.常量。是在命令操作和程序运行中固定不变的数据。如圆周率3.14,字符串“ABCD”等。 2.变量。是在命令操作和程序运行中其值允许变化的量。 变量包括内存变量、字段变量和系统变量3种。 (1)内存变量存放在计算机的内存中。如内存变量A、B等。用户最多可定义1024个内存变量。 (2)字段变量存放在表中。如字段变量姓名、月收入等。 (3)系统变量用来保存系统的有关信息。用DISPLAY MEMORY命令可查看系统变量。
1.5 VFP的语言成分 1.5.3 运算符和表达式 第1章 Visual FoxPro概述 运算符是指各种运算符号,表达式是用运算符将常量、变量、函数连接起来的式子。 1.算术运算符:加+、减-、乘*、除/、乘方**或^、求余运算% 如: ,用表达式表示:12*X+5*X^2+8 例:求15除于4的余数。 ?15%4 3
1.5 VFP的语言成分 注:1.?号为显示命令,可以显示常量、变量和表达式的值。 2.在VFP命令中的标点符号一律用半角。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 注:1.?号为显示命令,可以显示常量、变量和表达式的值。 2.在VFP命令中的标点符号一律用半角。 2.比较运算符:小于<,小于或等于<=,大于>,大于或等于>=,等于=,精确等于==,不等于<>或#或!=,包含于$ 使用比较运算符时应注意: (1)比较运算符两边的数据类型必须一致。 (2)N型数据按数值大小进行比较,C型数据按ASCII码大小进行比较(汉字按拼音的ASCII码比较),D型数据按年月日的先后进行比较。
?CTOD("05/10/69")>CTOD("04/11/70") 第1章 Visual FoxPro概述 1.5 VFP的语言成分 例:?123<=456 .T. ?"ABC"<"BCD" ? "张三"<"李四" .F. ?CTOD("05/10/69")>CTOD("04/11/70")
第1章 Visual FoxPro概述 1.5 VFP的语言成分 (3)=号为非精确等于(在字符型数据比较时,只要右字符串为左字符串的左子串,即为逻辑真)。==为精确等于(在字符型数据比较时,要求两个字符串完全相同,才为逻辑真)。 例:?"张三"="张" .T. ?"张三"=="张" .F. ?“张三”==“张三”
1.5 VFP的语言成分 (4)$ 为子字符串比较符,如果A是B的子串,则A$B为逻辑真(.T.),否则为逻辑假(.F.)。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 (4)$ 为子字符串比较符,如果A是B的子串,则A$B为逻辑真(.T.),否则为逻辑假(.F.)。 例:A="is" B="This is a book" ?A$B .T. ?B$A .F.
1.5 VFP的语言成分 第1章 Visual FoxPro概述 3.逻辑运算符:逻辑与AND、逻辑或OR、逻辑非NOT或! 表达式A 表达式B A AND B A OR B NOT A .T. .F. 逻辑与运算,只有两个表达式均为真,结果才为真。 逻辑或运算,只要有一个表达式为真,结果即为真。 逻辑非运算,如果一个表达式为真,逻辑非运算结果为假。
1.5 VFP的语言成分 例:职称为工程师且工龄在十年以上,用表达式表示: 职称="工程师" AND 工龄>=10 第1章 Visual FoxPro概述 1.5 VFP的语言成分 例:职称为工程师且工龄在十年以上,用表达式表示: 职称="工程师" AND 工龄>=10 职称为工程师或工龄在十年以上,用表达式表示: 职称="工程师" OR 工龄>=10 例:?5>3 .T. ?NOT 5>3 .F.
第1章 Visual FoxPro概述 1.5 VFP的语言成分 4.字符运算符:+、- 字符串连接运算符有两个,加号是将两个字符串按原样连接,减号为压缩空格运算符,即将减号前字符串尾部空格移到减号后字符串尾部。 如:A="河南 " B="财专 " ?A+B 河南 财专 ?A-B 河南财专
1.5 VFP的语言成分 5.日期与时间运算符:+、- 日期型数据加减数值型数据,加减的为天数,加减后得到新的日期型数据。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 5.日期与时间运算符:+、- 日期型数据加减数值型数据,加减的为天数,加减后得到新的日期型数据。 日期时间型数据加减数值型数据,加减的为秒数,加减后得到新的日期时间型数据。 如:?CTOD("12/31/99")+20 01/20/00 ?CTOT("12/31/99 22:30")+120 12/31/99 10:32:00 PM
1.5.4 内存变量和数组 1.内存变量(Memory) (1)内存变量的赋值 格式1:〈内存变量名〉=〈表达式〉 第1章 Visual FoxPro概述 1.5.4 内存变量和数组 1.内存变量(Memory) (1)内存变量的赋值 格式1:〈内存变量名〉=〈表达式〉 格式2:STORE〈表达式〉TO〈内存变量表〉 功能:将表达式的值赋值给内存变量。 例:A=50 STOR 100 TO B STOR 2*4 TO A1,A2,A3 MYNAME="张三" C=CTOD("05/10/69")
第1章 Visual FoxPro概述 1.5 VFP的语言成分 注1:字符型数据赋值时需加定界符,以确定字符串的长度。VFP中的定界符有三种:单引号‘ ’,双引号" ",方括号[ ]。字符串前后的定界符需配套使用,并且必须用半角符号。 注2:CTOD()为字符转换日期函数,年份数值系统默认为20世纪。如CTOD("05/10/69"), 系统默认为1969年5月10日。如要将其设置为21世纪,则在命令窗口输入SET CENTURY TO 20,若恢复系统的默认设置,则输入SET CENTURY TO
1.5 VFP的语言成分 (2)内存变量的显示 格式1:?/??〈表达式表〉 功能:显示常量、变量、函数和表达式的值。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 (2)内存变量的显示 格式1:?/??〈表达式表〉 功能:显示常量、变量、函数和表达式的值。 说明:?号为换行显示,??号为不换行显示。 格式2:LIST/DISPLAY MEMORY [LIKE〈通配符〉][TO PRINTER /FILE〈文件名〉] 功能:显示当前内存变量名、作用域、类型和值。 说明:1.LIST为滚动显示,DISPLAY为分屏显示。 2.LIKE〈通配符〉为与通配符相匹配的内存变量。
1.5 VFP的语言成分 例1:分别显示内存变量A、B、MYNAME。 ?A 50 ?B 100 ??MYNAME 张三 第1章 Visual FoxPro概述 1.5 VFP的语言成分 例1:分别显示内存变量A、B、MYNAME。 ?A 50 ?B 100 ??MYNAME 张三 例2:显示所有以A开头的内存变量。 DISP MEMO LIKE A*
第1章 Visual FoxPro概述 1.5 VFP的语言成分 例3:显示所有内存变量。 DISP MEMO
1.5 VFP的语言成分 (3)内存变量的清除 格式1:CLEAR MEMORY 功能:删除所有的内存变量。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 (3)内存变量的清除 格式1:CLEAR MEMORY 功能:删除所有的内存变量。 格式2:RELEASE [内存变量表][ALL[LIKE/EXCEPT〈通配符〉]] 功能:删除指定的内存变量。 说明:若指定ALL,则删除所有的内存变量;若指定LIKE〈通配符〉,则删除与通配符匹配的内存变量;若指定EXCEPT〈通配符〉,则删除与通配符不匹配的内存变量。
1.5 VFP的语言成分 例:RELE MYNAME &&删除内存变量MYNAME DISP MEMO 第1章 Visual FoxPro概述 1.5 VFP的语言成分 例:RELE MYNAME &&删除内存变量MYNAME DISP MEMO RELE ALL LIKE A* &&删除以A开头的内存变量 CLEA MEMO &&删除所有内存变量
1.5 VFP的语言成分 2.数组(Array) 第1章 Visual FoxPro概述 数组是按一定顺序排列的一组内存变量。 (1)数组的定义 格式:DIMENSION/DECLARE〈数组名〉(〈下标1〉[,〈下标2〉])[,〈数组名〉(〈下标1〉[,〈下标2〉])…] 功能:定义一维或二维数组。 说明:1.一维数组的数组元素个数等于下标值,二维数组的数组元素个数等于两个下标变量的乘积。 2.数组定义后,在数组或数组元素未赋值时,数组元素的初值为逻辑假(.F.)。
1.5 VFP的语言成分 例:定义一维数组A(3)和二维数组B(2,3)。 DIME A(3),B(2,3) 第1章 Visual FoxPro概述 1.5 VFP的语言成分 例:定义一维数组A(3)和二维数组B(2,3)。 DIME A(3),B(2,3) 则A(3)的数据元素为A(1),A(2),A(3); B(2,3)的数据元素为B(1,1),B(1,2),B(1,3),B(2,1),B(2,2),B(2,3)。 (2)数组的赋值 格式1:〈数组名/数组元素〉=〈表达式〉 格式2:STORE〈表达式〉TO〈数组名/数组元素〉 功能:为数组或数组元素赋值。
1.5 VFP的语言成分 第1章 Visual FoxPro概述 (3)数组的显示与删除 数组的显示及删除方法与内存变量的显示及删除方法相同。 例:DISP MEMO
1.5 VFP的语言成分 STOR 5 TO A STOR 8 TO B(1,1),B(1,2) B(1,3)=10 第1章 Visual FoxPro概述 1.5 VFP的语言成分 STOR 5 TO A STOR 8 TO B(1,1),B(1,2) B(1,3)=10 ?B(1,1),B(1,2) ??B(1,3) 8 8 10
第1章 Visual FoxPro概述 1.5 VFP的语言成分 DISP MEMO
第1章 Visual FoxPro概述 1.5 VFP的语言成分 例,删除数组A。 RELE A DISP MEMO
1.5.5 VFP的命令格式和书写规则 1.VFP的命令格式 第1章 Visual FoxPro概述 命令动词[范围][FIELDS<字段名表>][FOR/WHILE<条件>] 说明: (1)命令动词:是英文单词或缩写词,用来表示操作的功能。 (2)范围:用来确定执行该命令涉及的记录,范围有4种选择: ALL 所有记录 RECORD <N> 第N条记录 NEXT <N> 从当前记录起的N个记录 REST 从当前记录起到表尾的所有记录
(3)FIELDS〈字段名表〉:用来确定所要操作的字段。 (4)FOR〈条件〉:用来指定条件,仅对满足条件的记录进行操作。 第1章 Visual FoxPro概述 1.5 VFP的语言成分 (3)FIELDS〈字段名表〉:用来确定所要操作的字段。 (4)FOR〈条件〉:用来指定条件,仅对满足条件的记录进行操作。 (5)WHILE〈条件〉:也用来指定条件,是从当前记录开始,对满足条件的记录进行操作,遇有不满足条件的记录终止操作。
1.5 VFP的语言成分 例:显示全部讲师的姓名、性别和职称。 第1章 Visual FoxPro概述 LIST ALL FIELDS 姓名,性别,职称 FOR 职称=“讲师” 命令动词 范围选项 字段选项 条件选项
1.5 VFP的语言成分 2.VFP命令动词、函数和短语的书写规则 第1章 Visual FoxPro概述 (1)命令动词、函数和保留字可以任意大小写。 (2)命令动词、函数和保留字可以用前四个字母缩写。 (3)命令动词与短语之间、短语与短语之间必须用空格隔开。 (4)命令动词必须放在命令语句的开头,短语的顺序可以任意排列。 (5)命令语句中的标点符号(如逗号、引号、括号、问号等)必须用半角。 (6)命令格式中的方括号[]为可选项、尖括号〈〉为必选项、斜扛/为两项任选一项。这些符号不是命令语句本身的构成要素,不能在命令语句中直接使用。