第三章VisualFoxPro基础.ppt

上传人:本田雅阁 文档编号:3138575 上传时间:2019-07-16 格式:PPT 页数:49 大小:316.02KB
返回 下载 相关 举报
第三章VisualFoxPro基础.ppt_第1页
第1页 / 共49页
第三章VisualFoxPro基础.ppt_第2页
第2页 / 共49页
第三章VisualFoxPro基础.ppt_第3页
第3页 / 共49页
第三章VisualFoxPro基础.ppt_第4页
第4页 / 共49页
第三章VisualFoxPro基础.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《第三章VisualFoxPro基础.ppt》由会员分享,可在线阅读,更多相关《第三章VisualFoxPro基础.ppt(49页珍藏版)》请在三一文库上搜索。

1、第三章 Visual FoxPro 基础,本 章 要 点,Visual FoxPro命令的格式与书写规则 文件类型 数据类型 数据存储 表达式 函数,Visual FoxPro功能异常强大, 拥有近500条命令。且其命令比一般程序设计语言中的语句更加精练、功能更强。掌握一些常用命令,可以使操作更方便、快捷、高效。本节介绍Visual FoxPro命令的一般格式及其书写规则。 1Visual FoxPro的命令格式 一条命令通常由命令动词和若于个短语组成。命令动词表明该命令执行什么操作,短语用于说明命令的操作对象、操作条件等,短语有时又称为子句。Visual FoxPro命令的典型格式为: FO

2、R WHILE TO FILE | TO PRINTER | TO ,Visual FoxPro命令的格式与书写规则,(1) 命令格式中各符号的含义 :必选项 :可选项,视具体使用要求由用户选择 | :在由它所分隔的各项中选择其一 . : 表示此部分可以类似方法重复多次 【例】 LIST 学号,姓名,性别 FOR YEAR(出生日期)=1986 TO PRINTER (2)命令格式中各部分功能 命令动词 例如“LIST“,“USE“,“COUNT“等。 表达式表,由一个或多个逗号分隔。如:姓名+STR(总分)也是一个表达式。 范围 它指定命令可以操作的记录集合。范围可有下列四种选择: ALL、

3、NEXT 、RECORD 、REST, FOR 它规定只对满足条件的记录进行操作,如果使用FOR子句Visual FoxPro将记录指针重新指向表文件顶,并且用FOR条件与每条记录进行比较。上例中的“FOR YEAR(出生日期)=1986“子句,表示只选择“出生日期“为1986年的学生记录进行操作。 WHILE 在表文件中,从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结束该命令的执行, 在FOR子句和WHILE子句中,必须返回逻辑值。 TO FILE |TO PRINTER|TO 它控制操作结果的输出,TO FILE 命令允许结果向文件输出;TO PRINTE

4、R命令允许操作结果向打印机输出;TO 命令允许操作结果向内存变量输出。,2Visual FoxPro命令的书写规则 在Visual FoxPro中,命令的书写(或输入)规则相当灵活、方便,主要有以下几点: (1)命令动词必须写在命令的最前面,而各短语的前后顺序可以任意排列。例如,下面两条命令的执行结果完全一样: LIST 学号,姓名,性别 FOR YEAR(出生日期)=1986 LIST FOR YEAR(出生日期)=1986 学号,姓名,性别 (2)命令动词与短语之间、短语与短语之间、短语的各部分之间(如短语“NEXT 3“的NEXT与3之间,短语“FOR 性别=“女“的FOR与性别=“女“

5、之间)必须用空格分隔开。 (3)命令动词、各短语中的保留字及函数名在不至于引起混淆的情况下可以简写为前4个字符,而且英文字母大小写等效。例如,DISPLAY可以写成DISP或disp,但LOCAL与LOCATE则应注意。显然,大量使用简写必然会降低可读性,建议适量使用简写为佳。 (4)一条命令的长度可达8192个字符。当一行写不下时,可在适当位置输入续行符“;“并按回车键换行,继续输入该命令。,文件扩展名与文件类型,本表列出了 Visual FoxPro 使用的文件扩展名及其关联的文件类型。 扩展名 文件类型 .app 生成的应用程序或 Active Document .hlp WinHelp

6、 .htm HTML .chm 编译的 HTML Help .dbc 数据库 .dct 数据库备注 .dcx 数据库索引 .dbf 表 .fpt 表备注 .dep 由“安装向导”创建相关文件 .dll Windows 动态链接库,.prg 程序 .fxp 编译后的程序 .exe 可执行程序 .err 编译错误 .fky 宏 .frx 报表 .frt 报表备注 .h Visual FoxPro或C/C+程序需要包含的头文件 .cdx 复合索引 .idx 索引,压缩索引 .mnx 菜单 .mnt 菜单备注 .mpr 生成的菜单程序 .mpx 编译后的菜单程序,.ocx ActiveX 控件 .pj

7、x 项目 .pjt 项目备注 .qpr 生成的查询程序 .qpx 编译后的查询程序 .scx 表单 .sct 表单备注 .tbk 备注备份 .txt 文本 .vct 可视类库备注 .vcx 可视类库 .vue FoxPro 2.x 视图 .win 窗口文件 .log 代码范围日志 .mem 内存变量保存,数据类型,数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。 Visual FoxPro系统为了使用户建立和使用数据库更加方便,将数据细化分为以下几种类型。 1.字符型 字符型数据描述不具有计算能力的文字数据类型,是最常用的数据

8、类型之一。 字符型数据(Character)是由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,长度范围是0254个字符。,数值型数据通常分为以下四种类型: (1)数值型 数值型数据(Numeric)是由数字(09)、小数点和正负号组成。最大长度为20位(包括、和小数点)。 (2)浮点型 浮点型数据(Float)是数值型数据的一种,与数值型数据完全等价。浮点型数据只是在存储形式上采取浮点格式。 (3)双精度型 双精度型数据(douBle)是更高精度的数值型数据。它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储。 (4)整型 整型数据(Integer

9、)是不包含小数点部分的数值型数据。它只用于数据表中的字段类型的定义。整型数据以二进制形式存储。,2.数值型,3.货币型 货币型数据(currencY)用 于表示货币型的量。 4.日期型 日期型数据(Date)是用于表示日期的数据,用默认格式mm/dd/yyyy来表示。其中mm代表月,dd代表日,yyyy代表年,长度固定为8位。 5.日期时间型 日期时间型数据(date Time)是描述日期和时间的数据。 其默认格式为mm/dd/yyyy hh:mm:ss。 其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。,6.逻辑型 逻辑型数据(

10、Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。 逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。 7.备注型 备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。 备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固定为10位,而实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。,通用型数据(General)是用于存储OLE对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片等。它只用于数据表中的字段类型的定义。 OLE对象的实际内容、类型和数据量则取决

11、于连接或嵌入OLE对象的操作方式。如果采用连接OLE对象方式,则数据表中只包含对OLE对象的引用说明,以及对创建该OLE对象的应用程序的引用说明;如果采用嵌入OLE对象方式,则数据表中除包含对创建该OLE对象的应用程序的引用说明,还包含OLE对象中的实际数据。 通用型数据长度固定为4位,实际数据长度仅受限于现有的磁盘空间。,8.通用型,数据存储,在Visual FoxPro系统环境下,数据输入、输出是通过数据的存储设备完成的。通常我们都是将数据存入到常量、变量、数组中,而在Visual FoxPro系统环境下,数据还可以存入到字段、记录和对象中。我们把这些供数据存储的常量、变量、数组、字段、记

12、录和对象称为数据存储容器。 1.常量 常量是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是在所有的操作中其值不变。常量有以下六种。 (1)数值型常量(浮点型常量:是数值型常量的浮点格式) 由数字(09)、小数点和正负号组成。例如12、3.45、-1.678、2E-5、3.4E3等。,(2) 货币型常量 货币型常量以符号“$“开头,小数部分若超过4位,则四舍五入取4位小数。例如,$518,$22.18等。 (3)字符型常量 由汉字和ASCII字符集中可打印字符组成的字符串,使用时必须用定界符括起来。例如,“计算机“, 123,数据,IBM“PC“。 注意:不包含任何字符的字符串(“

13、)叫空串,它与包含空格的字符串(“ “)不同。 (4)逻辑型常量 由表示逻辑判断结果“真”或“假”符号组成。逻辑真的常量表示形式有:.T. 、.t. 、.Y. 和.y. ;逻辑假的常量表示形式有:.F. 、.f. 、.N. 和.n. ,但系统将一律接收为.T.或.F.。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型数据只占用一个字节。,(5)日期常量 用于表示日期,日期型常量的格式有两种: 1)传统的日期格式 系统默认的日期型数据为美国日期格式(mm/dd/yy,月/日/年),传统日期格式中的月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。 这种格式的

14、日期型常量要受到命令语句SET DATE 和SET CENTURY 设置的影响,也就是说,在不同的设置状态下,计算机会对同一个日期型常量做出不同的解释。 2)严格的日期格式 yyyy-mm-dd,用这种格式书写的日期常量能表达一个确切的日期,它不受SET DATE等语句设置的影响。 (6)时间日期型常量 用于表示时间日期,其规定格式以yyyy/mm/dd hh:mm:ss表示,如2002-08-2,11:30P,2001-10-1,3。,常量可以在Visual FoxPro的命令窗口中通过以下命令创建或释放: #DEFINE 常量名 常量值 &常量的创建 #UNDEF 常量名 &常量的释放 常

15、量名是指以字母或下划线开始,后面可以跟任意个字母或数字的字符串。如X1、CONST_1等(注意:在 Visual FoxPro的常量名中字母的大小写具有同样含义)。 常量值是指常量名所代表的数值。 例如:#DEFINE PI 3.14159 一但通过“#DEFINE 常量名 常量值“命令定义了一个常量名后,则在以后的应用中可以用此常量名代表常量出现,但不能对符号常量重新赋值,直到遇见“#UNDEF 常量名“命令释放定义或程序结束为止。,在命令操作或程序执行过程中,其值可以改变的量称为变量。Visual FoxPro的变量分为字段变量和内存变量两大类。由于表中的各条记录对同一个字段名可能取值不同

16、。因此,表中的字段名就是变量,称为字段变量。内存变量是内存中的一个存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。在Visual FoxPro中,变量的类型可以改变,也就是说,可以把不同类型的数据赋给同一个变量。 (1)内存变量 内存变量又分为用户定义的内存变量(通常简称内存变量)和系统内存变量(通常简称系统变量), 此外,还可以使用数组,它是按一定顺序排列的内存变量。 内存变量与字段变量不同,它独立于数据库文件而存在,用来保存在命令或程序执行中临时用到的输入、输出或中间数据,由用户根据需要定义或删除。,2.变量,每一个变量都有一个名字,称为变量名,可以通过变量名

17、访问变量。内存变量命名规则有3条: .以字母、汉字或下划线开头; .由字母、汉字、下划线或数字组成; .长度不超过128个字符。 例如,X1、姓名、XM、Name、name_23 、_my2002等都是合法的内存变量名。 内存变量的数据类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)、日期时间型(T)和S(屏幕型)7种,其类型与所赋值的类型一致。 简单内存变量 内存变量是内存中的临时单元,当退出Visual FoxPro系统后,内存变量也会与系统一起消失,除非使用内存变量文件来保存内存变量值。在Visual FoxPro中,简单内存变量的赋值和输出,可以使用STOR

18、E、“=“或“?“命令进行。,数组是一组有序内存变量的集合。或者说,数组是由同一个名字组织起来的简单内存变量的集合,其中每一个内存变量都是这个数组的一个元素,它是由一个以行和列形式表示的数组元素的矩阵。 所谓的数组元素是用一个变量名命名的一个集合体,而且每一个数组元素在内存中独占一个内存单元。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问的。与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令创建,规定数组是一维数组还是二维数组,数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。创建数组的命令格式为: DIMENSION | DECL

19、ARE (,), 数组创建后,系统自动给每个数组元素赋以逻辑假 .F. 。 例如:DIMENSION X(3),Y(2,3)命令定义了一个一维数组X与二维数组Y,它们分别有3个元素与6个元素。,X(1)、X(2)、X(3) Y(1,1) 、Y(1,2)、Y(1,3)、Y(2,1)、 Y(2,2)、Y(2,3), 数组,在使用数组和数组元素时,应注意如下问题: 在一切使用简单内存变量的地方,均可以使用数组元素。 在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。 在同一个运行环境下,数组名不能与简单变量名同名。 在赋值语句中的表达式位置不能出现数组名。 可以用一维数组的

20、形式访问二维数组。 系统变量 系统变量是Visual FoxPro提供的内存变量,系统变量名都以下划线开头,用于控制鼠标器、打印机等外部设备和屏幕输出格式,或者处理有关计算器、日历、剪贴板等方面的信息。例如: ACTIVATE WINDOW CALCULATOR _CALCVALUE=56.8 _CLIPTEXT=“面向21世纪教材“ 该命令是将字符串“面向21世纪教材“存人剪贴板中。,(2)字段变量 Visual FoxPro中的字段变量的变量名就是表的字段名;字段变量的数据类型,就是表中该字段定义时所规定的数据类型;字段变量的宽度,就是定义表结构时对该字段宽度的定义,有关字段的定义以及有关

21、表结构的建立将在以后介绍 。 字段变量的操作方法与内存变量的操作方达基本相同、只是字段变量的值来源于表,而内存变量的值则是通过赋值操作赋给的。 (3)变量的优先级 在Visual FoxPro的变量层次中,当内存变量名与字段变量名同名时,系统优先引用字段变量。如果要引用内在变量,可以在内存变量名前加前缀“M.“ (或M-)以示区别。,Visual FoxPro的内存变量与其它高级语言中的变量有所不同,它不需事先说明类型,数据类型是根据当前所存储的数据的类型决定的。因此,必须首先给所使用的内存变量赋一个值,这个变量才可以使用,否则系统返回提示“变量未找到!“ 内存变量的赋值 【格式1】 = 【功

22、能】 将的值赋予由所指定的内存变量 【格式2】 STORE TO 【功能】 将的值赋予由所指定的一个或若干个内存变量,(4)内存变量及其操作,【注意】 . 等号一次只能给一个内存变量赋值。STORE命令可以同时给若干个变量赋予相同的值,各内存变量名之间必须用逗号分开。 . 在Visual FoxPro中,一个变量在使用之前并不需要特别的声明或定义。当用STORE命令给变量赋值时,如果该变量并不存在,那么系统会自动建立它。 . 可以通过对内存变量重新赋值来改变其内容和类型。 例:name=“张三“ name=3 STORE name +1 TO x,y,z 内存变量的输出 【格式】?|? 【功能

23、】 在当前行的光标所在处的下一行或当前行显示各表达式的值。,内存变量的显示 【格式】 LIST | DISPLAY MEMORY LIKE TO PRINTER|TO FILE 【功能】 . 显示或打印输出内存变量工作区的信息,包括己定义的内存变量名称、类型、内容、个数、已占内存总字节数,及剩余的可用内存变量空间。其中LIKE短语指出包括或不包括与通配符相匹配的内存变量。在通配符中可以使用“?“和“*“。这里“?“代表任意一个,“*“表示任意多个,使用方法同MS-DOS中的用法一致。 . LIST为连续滚动显示;DISPLAY为分屏显示。 . 选用TO PRINT短语时,将结果在显示的同时送往

24、打印机输出。TO FILE 将结果存入扩展名为.TXT的文件中。,内存变量的保存与恢复 【格式】SAVE TO ALLLIKE|EXCEPT 【功能】 将选定的内存变量存储到所指定的内存变量文件中,系统默认的文件扩展名为 .MEM 【格式】RESTORE FROM ADDITIVE 【功能】 将所指定的内存变量文件中保存的内存变量恢复到内存。选用ADDITIVE短语则保留现行内存变量,再把文件中的变量添加进来。否则,覆盖原有的内存变量。 内存变量的清除 【格式1】 CLEAR MEMORY 【功能】 清除当前内存中全部已定义的内存变量。,【格式2】 CLEAR ALL 【功能】 为恢复系统初态

25、命令。释放所有内存变量,关闭所有各类文件,包括数据库文件、索引文件、过程文件,并选择1号工作区。 【格式3】 RELEASE 【功能】 清除指定的内存变量。 【格式1】 RELEASE ALL LIKE | EXCEPT 【功能】 选用ALL LIKE短语则只清除与通配符相匹配的内存变量。选用ALL EXCEPT短语则清除除了与通配符相匹配之外的内存变量。,【例】 X=1 Y=“IBM-PC“ Z=$760.8 X1=.T. X2=2002-08-06 ?X,X1,Y,Z LIST ALL LIKE X? SAVE TO MYMEM RELEASE ALL LIKE X? DISPLAY ME

26、MO RESTORE FROM MYMEM,表达式,表达式是由数据、数据存储容器和运算符组成的运算式。在用Visual FoxPro编写的程序里,表达式几乎无处不在。大多数命令中都包含表达式语法成分,表达式使这些命令的功能更加灵活、强大。表达式的形式包括: (1)单一的运算对象(如常量、变量或函数); (2)由运算符将运算对象连接起来形成的式子。 无论是简单的还是复杂的合法表达式,按照规定的运算规则均能计算出一个结果,即表达式的值。根据表达式值的类型,表达式可分为数值表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式5种。 1.算术表达式 算术表达式可由算术运算符和数值型常量、数值型内

27、存变量、数值型数组、数值类型的字段、返回数值型数据的函数组成。算术表达式的运算结果是数值型常数。算术运算符及其运算示例如下:,字符表达式可由字符运算符和字符型常量、字符型内存变量、字符型数组、字符型类型的字段和返回字符型数据的函数组成。字符表达式运算的结果是字符常数或逻辑型常数。字符运算符及示例如下:,算术运算符优先级及示例一览表,2.字符表达式,字符运算符及示例一览表,时间日期表达式可由日期运算符和时间日期型常量、时间日期型内存变量和数组、返回时间日期型数据的函数组成。时间日期表达式运算的结果是时间日期型常数。,3.时间日期表达式,时间日期运算符及示例一览表,4.关系表达式,关系表达式可由关

28、系运算符和字符表达式、算术表达式、时间日期表达式组成。其运算结果为逻辑型常量。关系运算是运算符两边同类型元素的比较,关系成立结果为(T);反之,结果为(F)。,关系运算符及示例一览表,当比较两个字符串时,系统对两个字符串自左向右逐个进行较,一旦发现两个对应字符不同,就根据这两个字符的排序序列决定这两个字符串的大小。运算符=和$仅适用于字符型数据,其他运算符适用于任何类型的数据,但前后两个运算对象的数据类型要一致。具体情况是: 数值型和货币型数据比较-按数值的大小比较,包括负号。 日期或日期时间型数据比较-越早的越小,反之越大。 逻辑型数据比较-.T.大于.F. 子串包含测试-如果前者是后者的一

29、个子字符串,结果为逻辑真(.T.),否则为逻辑假(.F.)。 在用双等号运算符=比较两个字符串时,只有当两个字符串完全相同(包括空格以及位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。在用单等号运算符=比较两个字符串时,运算结果与SET EXACT ON|OFF(默认)设置有关。当处于ON状态时,先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较。,逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符的优先级与运算规则如下表所示(也可以省略两端的点,写成NOT、AND、OR):,5.逻辑表达式,例如,查询工资高于1800的讲

30、师或副教授的条件可写成: 工资1800 .AND. (职称=“讲师”.OR.职称=“副教授“),前面介绍了各种表达式以及它们所使用的运算符。在每一类运算符中,各个运算符有一定的运算优先级。而不同的运算符也可能出现在同一个表达式中,这时它们的运算优先级顺序为:算术运算符、字符串运算符和日期时间运算符关系运算符逻辑运算符。 圆括号作为运算符可以嵌套,也可以改变其他运算符的运算次序。圆括号中的内容在与其他运算对象进行种类运算前,其结果首先要被计算出来。有时候,在表达式的适当地方插入圆括号,并不是为了改变其他运算符的运算次序,而是为了提高代码地可读性。,运算符优先级,函数是用程序来实现的一种数据运算或

31、转换。每一个函数都有选定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个结果,称为函数值或返回值。 函数的一般形式为:函数名(参数1,参数2) 函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。函数调用也可以作为一条命令使用,但此时系统忽略函数的返回值。若函数在调用时没有参数,则称该函数称为无参函数。如LEN(X)、PI()等。 一般将函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数5类,下面分类介绍常用函数的格式、功能以及典型函数的用法。 数值函数 数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。常用的

32、数值函数有:,函数,字符函数是指自变量一般是字符型数据的函数,通常一个汉字按2个半角西文字符处理。常用字符函数有:,字符函数,常用日期和时间函数,数据类型转换函数,数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。常用数据类型转换函数有:,测试函数,在数据处理过程中,有时用户需要了解操作对象的状态。例如,要使用的文件是否存在、数据库的当前记录号、是否到达了文件尾、检索是否成功、某工作区中记录指针所指的当前记录是否有删除标记、数据类型等。尤其是在运行应用程序时,常常需要根据测试结果来决定下一步或程序走向。常用测试函数的有:,显示信息函数,格式:MESSAGEBOX(提示文本,对话

33、框类型,对话框标题) 功能:显示用户定义的对话框,对话框类型一般为:按钮数值+图标形状值+默认值构成。对话框的类型及含义见下表。,【例】定制一个要求用户确认是否退出的对话框 ?MESSAGEBOX(“确认退出吗?”,4+32+0,“提示信息”) 显示结果:,IIF 函数 格式:IIF(,) 功能:当条件表达式为.T.时返回的值,否则返回的值,思考题,1.Visual FoxPro 6.0有几种数据类型? 2.Visual FoxPro 6.0有几种数据存储容器? 3.内存变量、数组变量、字段变量有何区别? 4.Visual FoxPro 6.0有几种类型的函数? 5.Visual FoxPro 6.0有多少种类型的表达式,它们的计算规则是什么?,实验题目,1.设计并输出多个各种类型的常量,并输入给内存变量或数组。 2.利用内存变量的输入/输出命令计算各种表达式的值。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1