1第二章VisualFoxPro6.0的基础知识2.1VisualFoxPro6.0系统菜单的使用2.2VisualFoxPro6.0辅助设计工具2.3VisualFoxPro6.0的基本概念2.4VisualFoxPro6.0的数据类型和数据存储2.5运算符与表达式2.6函数2.7数组22.1.1VisualFoxPro6.0用户界面2.1VisualFoxPro6.0系统菜单的使用菜单栏工具栏标题栏命令窗口状态栏工作区32.1.2主菜单栏主菜单又称系统菜单,它包含:文件、编辑、显示、格式、工具、程序、窗口和帮助共8个菜单选项。2.1.3工具栏VFP6.0有如下11种:常用、布局、表单控件、表单设计器、查询设计器、视图设计器、数据库设计器、报表控件、报表设计器、调色板和打印预览工具栏。通过“显示”菜单的“工具栏”命令管理各种工具栏。2.1.4配置VisualFoxPro6.0通过“工具”菜单的“选项”命令配置需要开发环境。452.2VisualFoxPro6.0辅助设计工具2.2.1向导向导是一种快捷设计工具,能以对话框的形式引导用户分步完成某项任务。2.2.2设计器设计器用来创建或修改VFP应用程序所需要的构件,其功能比向导更强。2.2.3生成器生成器的主要功能是在VFP应用程序的构件中生成并加入一个构件,如生成一个组合框或列表框等。VFP提供了21种向导、9种设计器、10种生成器。672.3VisualFoxPro6.0的基本概念2.3.1VisualFoxPro6.0的文件使用VisualFoxPro6.0开发应用程序时会创建很多文件,这些文件的文件类型多而繁杂。常用的文件类型有:数据库、表、项目、索引、查询、视图、程序、表单、菜单、报表、标签等。2.3.2VisualFoxPro6.0的项目项目是指文件、数据、文档和各种对象的集合。项目文件的扩展名是.PJX。项目是用“项目管理器”来管理的,打开项目文件会自动打开项目管理器。82.3.2VisualFoxPro6.0的工作方式1.交互方式(1)菜单操作方式(2)工具操作方式(3)命令操作方式2.程序操作方式2.3.3VisualFoxPro6.0的命令格式1.命令格式每条命令的一般格式如下:命令动词子句子句也称为“短语”DISPLAY|LIST[FIELDS字段名表][范围][FOR条件][WHILE条件][OFF][TOPRINTER[PROMPT]|TOFILE文件]]92.四种常用的命令子句(1)范围子句有4种格式:ALL所有记录NEXTN从当前记录开始的N条记录RECORDN第N条记录REST从当前记录开始到最后一条记录的所有记录(2)FOR子句FOR条件用来指定筛选记录的条件(3)WHILE子句也用于指定筛选条件,仅在当前记录符合条件时开始依次筛选记录,一旦遇到不满足条件的记录就停止操作。即连续筛选。10(4)FIELDS子句确定需要操作的字段。3.命令书写规则(1)必须以命令动词开头,命令子句通常无先后顺序,但必须用空格隔开。(2)命令动词与各子句中的保留字可以简写成前4个字母,英文字母不区分大小写。(3)一条命令的长度可达8192个字符。若一行写不下,可在适当的位置插入续行符“;”并按【Enter】键,然后在下一行继续键入命令的后面部分。(4)命令子句中的标点符号都是英文半角下的。(5)命令或函数格式中以“|”分隔的两项表示两者可选其一,例如DISPLAY|LIST。用尖括号“”括起来的部分表示由用户定义的内容。但这些符号并非命令或函数的组成部分。DISPLAYFIELDS编号,姓名,性别,所在学院FOR职称=教授112.4.1数据和数据类型VFP6.0的数据类型分为两大类:一类用于变量和数组,一类用于表中的字段。1.字符型(Character)由字母(汉字)、数字、空格等任意ASCII码组成。字符数据的长度为0~254,每个字符占1个字节。2.数值型(Numeric)由数字0~9、一个符号(+或-)和一个小数点(.)组成。数值型数据的长度为1~20,每个数据占8个字节。数值型数据取值范围是-.9999999999E+19~.9999999999E+203.货币型(currency)在使用货币值时,可以使用货币型来代替数值型,默认格式是“$数值量”。小数位数超过4位时,系统将进行四舍五入。每个货币型数据占8个字节。2.4VFP6.0的数据类型和数据存储124.日期型(Date)存储格式为“yyyymmdd”,其中yyyy为年,占4位;mm为月,占2位;dd为日,占2位。表示格式有多种,最常用的格式为mm/dd/yyyy。取值范围:公元0001年1月1日~公元9999年12月31日。5.日期时间型(DateTime)存储格式为“yyyymmddhhmmss”,其中yyyy为年,占4位;mm为月,占2位;dd为日,占2位;hh为时间中的小时,占2位;mm为分钟,占2位;ss为秒,占2位。日期时间型数据中可以只包含一个日期或只包含一个时间值,缺省日期值时,系统自动加上1999年12月31日;缺省时间值时,则自动加上午夜零点。136.逻辑型(Logical)存入的值只有真(.T.)和假(.F.)两种状态,占1个字节。以下数据类型只能被用于数据表中的字段:7.双精度型(Double)用于取代数值型,以便能提供更高精度的数值。8.浮点型(Float)浮点型在功能上与数值型等价,包含此类型是为了提供兼容性。9.通用型(General)用于存储OLE对象,该字段包含了对OLE对象的引用。通用型字段占4个字节,用来引用它的实际内容,实际内容存放在与表文件同名的备注文件中。1410.整型(Integer)用于存储无小数部分的数值,占4个字节。11.备注型(Memo)用于字符型数据块的存储,占4个字节,用这4个字节来引用备注的实际内容。实际备注内容存储在相应的备注文件中,故备注型字段的大小仅受限于现有的磁盘空间。12.字符型(二进制)用于存储任意不经代码页修改而维护的字符数据。13.备注型(二进制)用于存储任意不经过代码页修改而维护的备注型数据。152.4.2常量程序运行过程中其值保持不变的量称为常量。常量有数值型、浮点型、字符型、逻辑型、日期型、日期时间型和货币型七种。1.数值型常量由数字(0~9)、小数点和正负号组成。例如:-123.56768+32567.672.浮点型常量是数值型常量的浮点格式。例如:-123E+l2-3645E-89。3.字符型常量由汉字和ASCII字符集中可打印字符组成的字符串,使用时必须用定界符(“”、‘’或[])括起来。例如:“ABCDE”、‘清华大学’、[100]等。164.逻辑型常量有“真”和“假”两种值。例如:.t.或.T.、.f.或.F.。5.日期型常量其规定格式为{mm/dd/yyyy}。例如:{04/12/1982}、{05/04/2002}等。6.货币型常量前面加“$”,精确到小数点后4位。如$123.456。货币型常量可以参加算数运算。7.日期时间型常量其规定格式为{mm/dd/yyyyhh:mm:ss}。例如:{04/12/198210:30:00}另外有一种严格日期形式为:^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]如:{^2001/03/21,14:56:34}17有关日期格式设置的命令:(1)SETCENTURYON/OFF用来设置年份的位数。(2)SETDATETOANSI|AMERICAN|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|YMD|MDY|DMY设置日期显示的格式。(3)SETSTRICTDATETO0/1/2用来设置是否对日期格式进行检查。(4)SETMARKTO[日期分隔符]SETCENTURYON&&设置4位的年份SETSTRICTDATETO1&&打开严格的日期格式检查SETMARKTO,&&设置分隔符为逗号SETDATETOYMD&&设置日期格式为年月日?{^2001/02/03}&&显示日期常量的值屏幕上将显示:2001,02,03182.4.3变量及基本操作1.变量的概念、分类和命名VisualFoxPro6.0中有4种形式的变量:内存变量、数组变量、字段变量和系统变量。除系统变量外,每个变量都有一个名称,称为变量名。变量名的命名规则是:以字母或下划线开头,由字母、数字及下划线组成,长度为1~128个字符,不能使用VisualFoxPro6.0的保留字。在中文VisualFoxPro6.0中,可以以汉字开头并包含汉字,每个汉字占2个字符。No、xyz_1、a_2x、变量、姓名、_、ol(“o”和“l”都是字母,要和数字0和1区别开来)、_0_1(数字0和1)合法的2x、w-2、x?y、∏、a,b、12_w、y100非法的192.内存变量(1)相关概念内存变量是存放单个数据的内存单元,是一种临时变量,独立于数据库文件的存在,可以随时建立和删除。常用来存储数据处理过程中的输入、输出、中间结果及最终结果或用来存储控制程序执行的各种参数,一般随着程序运行结束或退出VisualFoxPro6.0而释放。6种类型:字符型、数值型、逻辑型、日期型、日期时间型和屏幕型。同一个内存变量可以在不同时间给它赋不同类型的值,故内存变量的类型由所赋数据的类型决定,并以最近一次所赋的值为准。20屏幕型内存变量相关命令:SAVESCREENTO屏幕内存变量名来存储当前屏幕上的信息。RESTORESCREENFROM屏幕内存变量名从屏幕内存变量回复屏幕信息。VisualFoxPro6.0最多允许定义1024个内存变量。21(2)内存变量的赋值命令格式1STORE表达式TO内存变量名清单格式2内存变量名=表达式功能:格式1可以给一组内存变量赋相同的值,格式2只能给一个内存变量赋值。例如:STORE“VisualFoxPro6.0”Tossss=“VisualFoxPro6.0”STORE100Tox,y,z内存变量的类型和值由所赋数据的类型和值决定,并以最近一次所赋的值为准。内存变量名与字段变量名同名时,字段变量被优先引用。若要引用内存变量,可在内存变量名前加前缀M.,以示区别。22(3)内存变量的主要操作命令①清除内存变量CLEARMEMORYRELEASE内存变量列表RELEASEALL[LIKE|EXCEPT通配符]如释放以字母“A”开头的内存变量对应的命令是:RELEASEALLLIKEA*②显示内存变量DISPLAY|LISTMEMORY[LIKE通配符][TOPRINTER[PROMPT]|TOFILE文件名][NOCONSOLE]③存储内存变量SAVETO内存变量文件名|TOMEMO备注型字段名[ALL[LIKE|EXCEPT通配符]]SAVETOGHIALLEXCEPTX*23④恢复内存变量RESTOREFROM内存变量文件名|FROMMEMO备注型字段名[ADDITIVE]选用ADDITIVE短语时,变量读入内存时不清除原先内存中已经存在的变量。RESTOREFROMABCADDITIVE常用到的输出命令:?[[?]表达式,[表达式]]&&显示变量的值?是先换行再输出。??是在当前光标的位置输出,两个问号之间不能有空格。STORE10TOA1,A2,A3?A1,A2,A3243.数组变量将在2.7节单独进行介绍4.字段变量字段变量是指数据表中已定义的任意一个数据项。字段变量必须依附于表,随着表的打开而自动打开,随着表的关闭而在内存中被释放。当某个数据表文件被打开后,系统将产生跟表的字段对应的相同个数的字段变量,这些字段变量的变量名及类型与数据库文件的字段名及类型是相同的。当数据表文件的记录指针发生变化时,字段变量的值也响应地发生变化。字段变量可以和内存变量一起参加跟类型相符的运算。内存变量名与字段变量名同名时,字段变量被优先引用。若要引用内存