《第二章Visual FoxPro数据库管理系统概述.ppt》由会员分享,可在线阅读,更多相关《第二章Visual FoxPro数据库管理系统概述.ppt(102页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第二章第二章 Visual FoxPro 数据库管理系统概述数据库管理系统概述12/20/202212.1 Visual FoxPro的操作环境的操作环境2.2 Visual FoxPro文件类型文件类型2.3 Visual FoxPro的项目管理及其操作的项目管理及其操作2.4 Visual FoxPro语言基础语言基础12/20/20222VFP的特点的特点数据库方面数据库方面 区分了数据库与数据表的概念 Rushmore技术(速度快,多索引)SQL命令(高效检索)数据操作方面数据操作方面 简单、灵活、多样的数据交换手段 Visual FoxPro(简称简称VFP)是基于是基于 Wind
2、ows平台和服务器上的可视化平台和服务器上的可视化 数据库管理系统。数据库管理系统。12/20/20223程序设计方面程序设计方面(可视化应用程序)(可视化应用程序)可视化、少量程序代码可视化、少量程序代码可靠性高可靠性高调试简单调试简单项目编译项目编译面向对象面向对象12/20/20224操作使用方面操作使用方面完善的IDE(菜单、工具条或快捷键)丰富的开发工具向导:表单向导向导:表单向导设计器:表设计器设计器:表设计器生成器:表达式生成器生成器:表达式生成器 管理器:项目管理器管理器:项目管理器12/20/202252.1 Visual FoxPro的的操作环境操作环境 2.1.1 Vis
3、ual FoxPro操作界面操作界面命令命令窗口窗口主窗口:用于主窗口:用于输出结果输出结果菜单菜单栏栏工具工具栏栏状态状态栏栏12/20/20226命令窗口是用来直接输入命令窗口是用来直接输入Visual FoxPro命令的用户命令的用户接口,在命令窗口输入命接口,在命令窗口输入命令后,按回车键,立即执令后,按回车键,立即执行输入命令。行输入命令。命令窗口命令执行结果显示命令窗口命令执行结果显示关闭命令窗口方法:关闭命令窗口方法:按命令窗口右上角的按命令窗口右上角的“关闭关闭”按钮可关闭命令按钮可关闭命令窗口窗口显示命令窗口方法:显示命令窗口方法:1.可选可选“窗口窗口”菜单中菜单中“命令窗
4、口命令窗口”项项2.使用常用工具栏上的使用常用工具栏上的命令窗口按钮命令窗口按钮3.使用快捷键使用快捷键Ctrl+F2。命令窗口介绍命令窗口介绍12/20/20227选择命令项右边的组合键,选择命令项右边的组合键,例如,例如,Ctrl+N、CtrlO、CtrlP等,是执行命令等,是执行命令项的键盘操作快捷键项的键盘操作快捷键选择命令项右边有选择命令项右边有“”符号的,表示符号的,表示选中此命令项时,会选中此命令项时,会弹出相应对话框。弹出相应对话框。选择命令项右边有选择命令项右边有“”符号,的,表符号,的,表示选中此命令项时,示选中此命令项时,会弹出相应级联菜单。会弹出相应级联菜单。菜单项介绍
5、菜单项介绍12/20/20228单击主菜单的单击主菜单的“显示显示”菜菜单,在下拉菜单中选择单,在下拉菜单中选择“工具栏工具栏”菜单项,弹出菜单项,弹出“工具栏工具栏”对话框。对话框。工具栏介绍工具栏介绍12/20/202292.1.2 命令说明命令说明 1.命令的语法格式说明命令的语法格式说明删除文件的命令,其格式为:删除文件的命令,其格式为:DELETE FILE fileName|?RECYCLE在在命令窗口命令窗口和和程序程序中都使用分号中都使用分号“;”实现实现换换行行输入,绝大多数命令中的关键字和函数名均输入,绝大多数命令中的关键字和函数名均可用可用前前4个字符个字符代替。代替。1
6、2/20/202210说明说明filename表示要删除文件的路径及文件名表示要删除文件的路径及文件名 :可选表示符号,方括号中的内容是可选项可选表示符号,方括号中的内容是可选项例如:例如:DELETE FILE DELETE FILERECYCLE|:二选一表示符号,要求用户从本符号的左右二选一表示符号,要求用户从本符号的左右两项中选择一项两项中选择一项例如:例如:DELETE FILE D:aaa.txt DELETE FILE?:省略符号,它表示在一个命令或函数表达省略符号,它表示在一个命令或函数表达式中,某一部分可以按同一方式重复式中,某一部分可以按同一方式重复DELETE FILE
7、fileName|?RECYCLE12/20/202211右边命令输出的结果右边命令输出的结果2.几个常用命令几个常用命令*与与&命令命令均引导注释内容均引导注释内容?与与?命令命令均显示内容均显示内容,二者区别二者区别CLEAR命令命令清空主窗口屏幕内容,问命令窗口如何清空清空主窗口屏幕内容,问命令窗口如何清空QUIT命令命令关闭关闭VFP窗口窗口注释注释区别:区别:*必须必须为命令行的第为命令行的第1个字符;个字符;&可以在命令之可以在命令之后后区别:区别:?命命令换行显令换行显示示?命令命令接着显示接着显示数数改变命令窗口中的字体:格式改变命令窗口中的字体:格式-字体;字体;改变主窗口的
8、字体大小:改变主窗口的字体大小:_screen.fontsize=3012/20/2022122.几个常用命令几个常用命令DIR命令命令在在VFP主窗口处显示文件的目录主窗口处显示文件的目录例如:例如:DIR d:*.txt&显示显示d盘中所有的盘中所有的txt文件文件MD/RD/CD命令命令MD创建文件夹,创建文件夹,RD删除文件夹,删除文件夹,CD指定当前工作目录指定当前工作目录例如:例如:MD d:vfp&在在d盘创建名为盘创建名为vfp的文件夹的文件夹 RD d:vfp&删除删除d盘上的名为盘上的名为vfp的文件夹的文件夹12/20/202213COPY FILE/RENAME/DEL
9、ETE FILE命令命令拷贝、拷贝、更名、删除文件更名、删除文件例如:例如:COPY FILE d:*.txt to F:&拷贝拷贝d盘盘txt文件到文件到F盘盘RENAME d:*.txt to d:*.doc&将将d盘盘txt文件改名为文件改名为docDELETE FILE*.txt&删除所有删除所有txt文件文件RUN命令命令调用调用DOS命令或命令或Windows应用程序应用程序例如:例如:RUN/N calc&打开打开Windows计算器程序计算器程序12/20/2022143.补充:补充:命令的输入和编辑命令的输入和编辑输入命令,按下输入命令,按下回车键回车键(Enter键键),命
10、令被执行,得到结果,命令被执行,得到结果(特特别注意:别注意:请使用英文标点符号请使用英文标点符号)若命令太长,长命令可用分号若命令太长,长命令可用分号(;)续行续行,多行的长命令插入新行,多行的长命令插入新行可用可用【Ctrl+Enter】若想若想重复执行命令重复执行命令,则将光标移到以前命令行的任意位置,按,则将光标移到以前命令行的任意位置,按Enter键重新执行此命令键重新执行此命令?1+2+3+4+5?1+2+3+4+5 按下按下Enter键键 1515?1+2+3+4+5+6+7+8+9+10+11+12+13+;?1+2+3+4+5+6+7+8+9+10+11+12+13+;按下按
11、下Ctrl+Enter键键 1414 按下按下Enter键键 105105光标放在末尾光标放在末尾按下按下Enter键,键,此命令被重新此命令被重新执行执行 1515 12/20/202215 2.1.3 配置配置Visual FoxPro操作环境操作环境Visual FoxPro的配置决定了的配置决定了Visual FoxPro系统运行时系统运行时的外观和行为。的外观和行为。Visual FoxPro启动以后,还可以使启动以后,还可以使用用“选项选项”对话框对话框”或或SET命令命令进行附加的配置设定。进行附加的配置设定。12/20/202216 2.1.3 配置配置Visual FoxPr
12、o操作环境操作环境选项对话框选项对话框先先选择选择“设置为设置为默认值默认值”,再选,再选择择“确定确定”,所,所有设置在有设置在下次启下次启动动VFP时仍然有时仍然有效效。只选择只选择“确定确定”,所有设置在,所有设置在下下次启动次启动VFP时不时不起作用起作用。按住按住shift键,键,再选择再选择“确定确定”,则所有设置以,则所有设置以命令方式显示在命令方式显示在主窗口中。主窗口中。12/20/2022172.1.3 配置配置Visual FoxPro操作环境操作环境Set命令命令例如:例如:Set default to F:&设置默认路径为F盘常用的常用的Set命令如表命令如表2-1所
13、示(书所示(书P34页)页)2.2 Visual FoxPro文件类型文件类型 如如表表2-2所示所示(书(书P35页)页)常考常考 需要熟记各个类型,例如:创建项目文件,生成需要熟记各个类型,例如:创建项目文件,生成.pjx与与.pjt文件文件12/20/2022182.3 Visual FoxPro的项目管理及操作的项目管理及操作选项卡选项卡1.Visual FoxPro 的项目是一的项目是一个系统中文件、数据、文档等个系统中文件、数据、文档等的集合。的集合。2.项目管理器是项目管理器是 Visual FoxPro 中处理数据和对象的主要组织中处理数据和对象的主要组织工具,是系统工具,是系
14、统“控制中心控制中心”。按钮按钮12/20/202219创建项目创建项目方法一:方法一:CREATE PROJECT命令命令方法二:使用方法二:使用“文件文件”菜单的菜单的“新建新建”按钮按钮方法三:使用常用工具栏上的方法三:使用常用工具栏上的“新建新建”按钮按钮12/20/202220 打开项目打开项目(考试中用到)(考试中用到)使用使用“文件文件”菜单的菜单的“打开打开”按钮按钮默认目录是默认目录是vfp98立即利用立即利用cd命令修改默认目录命令修改默认目录改头去尾按回车改头去尾按回车此时,再使用此时,再使用“文件文件”菜单的菜单的“打开打开”按钮按钮默认目录是默认目录是12/20/20
15、22212.3 Visual FoxPro的项目管理及操作的项目管理及操作2.3.1 页面页面全部全部数据:一个项目中的所有数据(数据库、自由表、查询、视图)数据:一个项目中的所有数据(数据库、自由表、查询、视图)文档:处理数据时所用的全部文档(表单、报表和标签)文档:处理数据时所用的全部文档(表单、报表和标签)类:表单和程序中所用的类库和类类:表单和程序中所用的类库和类代码:程序、代码:程序、API库和应用程序库和应用程序其他:菜单、文本文件和其他文件(如位图、图标等)其他:菜单、文本文件和其他文件(如位图、图标等)2.3.2 定制项目管理器定制项目管理器演示图演示图2-4演示图演示图2-5
16、演示图演示图2-6+号:展开号:展开 -号:折叠号:折叠12/20/2022222.3 Visual FoxPro的项目管理及操作的项目管理及操作 2.3.3 项目管理器的操作(演示)项目管理器的操作(演示)1.命令按钮命令按钮首先选定对象首先选定对象新建:新建:创建一个新文件或对象创建一个新文件或对象添加:添加:把现有文件添加到项目中把现有文件添加到项目中修改:相应设计器修改:相应设计器移去:从项目中移去选定的文件或对象(从项目中还是存储器上?移去:从项目中移去选定的文件或对象(从项目中还是存储器上?)连编:连编一个项目或应用程序(可执行程序)连编:连编一个项目或应用程序(可执行程序)运行运
17、行:执行选定的查询、表单或程序执行选定的查询、表单或程序浏览:浏览:在在浏览浏览窗口中打开选定的表或视图,当且仅当选定一张表或视窗口中打开选定的表或视图,当且仅当选定一张表或视图时可用图时可用关闭:关闭数据库,当且仅当选定一个数据库时可用关闭:关闭数据库,当且仅当选定一个数据库时可用打开:打开数据库,当且仅当选定一个数据库时可用打开:打开数据库,当且仅当选定一个数据库时可用预览:在打印预览方式下显示选定的报表或标签预览:在打印预览方式下显示选定的报表或标签12/20/2022232.3 Visual FoxPro的项目管理及操作的项目管理及操作2.3.3 项目管理器的操作项目管理器的操作2.快
18、捷菜单命令快捷菜单命令右键选择右键选择包含与排除:带斜线的圆圈表示连编时将被排除,所有的包含文件在运行时都包含与排除:带斜线的圆圈表示连编时将被排除,所有的包含文件在运行时都是只读的是只读的设置主文件:设置主文件:把选定的把选定的程序、表单、查询或菜单程序、表单、查询或菜单指定为主文件,该主文件在已指定为主文件,该主文件在已编译的应用程序中作为主执行程序执行,即应用程序的入口程序。编译的应用程序中作为主执行程序执行,即应用程序的入口程序。主程序主程序文件用粗体表示。文件用粗体表示。重命名重命名编辑说明编辑说明项目信息项目信息3.项目间共享文件项目间共享文件一个文件可同时属于不同的项目一个文件可
19、同时属于不同的项目方法方法:打开两项目,在包含该文件的打开两项目,在包含该文件的项目管理器项目管理器中选择该文件中选择该文件,然后然后拖动拖动该该文件到另一个项目容器中即可文件到另一个项目容器中即可12/20/2022242.4 Visual FoxPro语言基础语言基础2.4.1 数据类型(数据类型(P39-40)*仅有于表的字段仅有于表的字段数据类型数据类型中文名称中文名称说明说明大小(字节)大小(字节)Character字符型字符型 C各种字符组成的串各种字符组成的串254Currency货币型货币型 Y货币单位货币单位8Numeric数值型数值型 N整数或小数整数或小数20Float浮
20、点型浮点型*F单精度数值型单精度数值型20Date日期型日期型 D年月日年月日8Datetime日期时间型日期时间型 T年月日时分秒年月日时分秒8Double双精度型双精度型*B 双精度数值型双精度数值型8Integer整型整型*I 整数整数4Logical逻辑型逻辑型 L真或假真或假1Memo备注型备注型*M 超过超过254的不定长字符串的不定长字符串4General通用型通用型*G OLE图象、多媒体对象图象、多媒体对象4数据类型是指数据对象的取值集合,数据类型是指数据对象的取值集合,以及对之可施行的运算集合以及对之可施行的运算集合(相同(相同类型才可以运算)类型才可以运算)。12/20/
21、2022252.4.2 常量与变量常量与变量 大多数程序设计语言允许使用常量、变量和数组大多数程序设计语言允许使用常量、变量和数组来存储数据,来存储数据,VFP还可以使用记录和对象。还可以使用记录和对象。1.名称命名规则名称命名规则(P41)l名称中名称中只能包含字母、下划线只能包含字母、下划线“_”、数字和汉字、数字和汉字l名称名称开头只能是字母、下划线或汉字,开头只能是字母、下划线或汉字,不能是数字不能是数字l表的字段名、索引标识名最多只能是表的字段名、索引标识名最多只能是10个字符,其个字符,其余名称长度可以是余名称长度可以是1128个字符个字符l避免使用避免使用系统保留字系统保留字(如
22、如Use、Set、Date)例如:判断下列名称的合法性例如:判断下列名称的合法性cVar 2xcc nVar2 sum_of_score 2_xd _aver_gznum-of-renshu nSum&re _avg#sd set12/20/2022262.常量:常量:在整个操作过程中值保持不变。在整个操作过程中值保持不变。u数值型常量:数值型常量:由数字、小数点和正负号构成由数字、小数点和正负号构成如如-3.15、38、3.12E+28、3.12E-28如如$100.35、$2104u货币型常量:货币型常量:数字前加美元符号数字前加美元符号($)u逻辑型常量:逻辑型常量:逻辑真和逻辑假逻辑真
23、和逻辑假如真:如真:.T.t.Y.y.假:假:.F.f.N.n.12/20/202227字符型常量:字符型常量:由字符串由字符串“定界符定界符”括起来的一串字符括起来的一串字符u定界符可以是定界符可以是单引号、双引号或方括号单引号、双引号或方括号。u不能用中文标点不能用中文标点的单引号或双引号作为字符串的定的单引号或双引号作为字符串的定界符界符u定界符必须成对出现定界符必须成对出现,不能出现,不能出现“一头为单引号而一头为单引号而另一头为双引号另一头为双引号”等情况等情况12/20/202228u如果某种定界符本身也是字符串的内容,则需要用如果某种定界符本身也是字符串的内容,则需要用另一种定界
24、符表示字符串另一种定界符表示字符串u不包含任何字符的字符串(不包含任何字符的字符串(“”“”)称为)称为“空串空串”,它与包含空格的字符串(它与包含空格的字符串(“”“”)不同)不同u字符串中的字母,其字符串中的字母,其大小写不等价大小写不等价如如:苏苏-001”51109876”vfpabcd”ef”g哈哈哈哈“笑笑”ABCDE与与abcde是不同的字符串是不同的字符串12/20/202229时间型和日期时间型常量:时间型和日期时间型常量:定界符是定界符是一对花括号一对花括号,年月,年月日之间用日之间用/或或或或.或或空格空格分隔,时分秒之间用分隔,时分秒之间用:分隔,分隔,u传统的日期格式
25、的语法形式:传统的日期格式的语法形式:mm/dd/yyhh:mm:ssam|pmu严格的日期格式的语法形式:严格的日期格式的语法形式:(系统默认系统默认)yyyy/mm/ddhh:mm:ssam|pm 如:如:2013-03-012013-03-01 8:12 A12/20/2022303.内存变量内存变量:在任何时候都可以发生变化。:在任何时候都可以发生变化。(1)变量的创建变量的创建 内存变量内存变量不需要特别申明不需要特别申明,在使用时可以使用,在使用时可以使用STORE命令命令或或“=”赋值运算符直接进行赋值运算符直接进行赋值赋值。在。在赋值的同时,也完成了变量的创建,并且确定了该赋值
26、的同时,也完成了变量的创建,并且确定了该变量的数据类型以及目前变量的值。变量的数据类型以及目前变量的值。12/20/202231变量的创建变量的创建y=2&=只能给一个变量赋值只能给一个变量赋值store “123”to x,y,z&store 将同一个值赋值给多个变量使用将同一个值赋值给多个变量使用格式格式格式格式1:1:STORE STORE 数据值数据值数据值数据值 TO TO 变量名变量名变量名变量名格式格式格式格式2 2:变量名变量名变量名变量名 =数据值数据值数据值数据值赋值号赋值号12/20/202232例:例:cVar=VFPStore 1 to nVar1,nVar2nVar
27、1=cVar cVar=nVar2?cVar&值为值为1?nVar1&值为值为vfp?nVar2&值为值为112/20/202233(2)、控制变量访问)、控制变量访问内存变量用于程序中,可以使用相应的命令指内存变量用于程序中,可以使用相应的命令指定变量的作用域。定变量的作用域。用用LOCAL指定局部变量指定局部变量局部变量只能在当前程序中使用,当它们所属局部变量只能在当前程序中使用,当它们所属的程序运行结束后,局部变量被释放。的程序运行结束后,局部变量被释放。例如:例如:LOCAL CX112/20/202234用用PRIVATE指定私有(隐藏)变量指定私有(隐藏)变量PRIVATEPRIV
28、ATE可以把上层变量(调用程序中定义的变可以把上层变量(调用程序中定义的变可以把上层变量(调用程序中定义的变可以把上层变量(调用程序中定义的变量)的值在当前程序中隐藏起来,用户在当前程序中量)的值在当前程序中隐藏起来,用户在当前程序中量)的值在当前程序中隐藏起来,用户在当前程序中量)的值在当前程序中隐藏起来,用户在当前程序中可以正常使用和这些变量同名的变量。可以正常使用和这些变量同名的变量。可以正常使用和这些变量同名的变量。可以正常使用和这些变量同名的变量。例如:例如:PRIVATE CX2,CX312/20/202235用用PUBLIC指定全局变量指定全局变量全局变量在程序运行的全过程中,其
29、值均不全局变量在程序运行的全过程中,其值均不会丢失。会丢失。在命令窗口中创建的任何变量被自动赋在命令窗口中创建的任何变量被自动赋予全局变量。予全局变量。例如:例如:PUBLIC CX4,CX5,CX612/20/202236(3)访问变量访问变量字段变量字段变量和和内存变量内存变量 CNO=100结论:如果表的字段变量和结论:如果表的字段变量和内存内存变量同名,变量同名,则则字段具有更高的优先权字段具有更高的优先权,可以在变量名前,可以在变量名前加加m.前缀或前缀或m-m-来引用内存变量。来引用内存变量。CNO=100?CNO&显示显示CC112,字段变量的值字段变量的值?m.CNO&显示显示
30、100,内存变量的值,内存变量的值?m-CNO&显示显示100,内存变量的值,内存变量的值12/20/202237 (4)、内存变量的保存与恢复)、内存变量的保存与恢复内存变量是系统在内存中设置的临时存储单元,内存变量是系统在内存中设置的临时存储单元,当退出当退出VFP时其数据自动丢失。若要保存其值,可用时其数据自动丢失。若要保存其值,可用SAVE TO命令将变量命令将变量保存到文件中保存到文件中,命令格式如下:,命令格式如下:SAVE TOSAVE TO 内存变量文件名内存变量文件名内存变量文件名内存变量文件名 ALL LIKEALL LIKE 变量名通配变量名通配变量名通配变量名通配符符符
31、符|ALL EXCEPTALL EXCEPT 变量名通配符变量名通配符变量名通配符变量名通配符 其中:其中:其中:其中:ALL LIKEALL LIKE 子句指定需保存的变量,子句指定需保存的变量,子句指定需保存的变量,子句指定需保存的变量,ALL ALL EXCEPTEXCEPT子句指定不需保存的变量。子句指定不需保存的变量。子句指定不需保存的变量。子句指定不需保存的变量。缺省缺省缺省缺省ALL LIKE ALL LIKE 或或或或ALL EXCEPT ALL EXCEPT 子句时,表示保存子句时,表示保存子句时,表示保存子句时,表示保存当前所有的内存变量。当前所有的内存变量。当前所有的内存
32、变量。当前所有的内存变量。12/20/202238 内存变量文件的扩展名为内存变量文件的扩展名为.mem例:例:SAVE TO Mvar ALL LIKE?Yan*&第第24个字符为个字符为“yan”的所有变量保存到的所有变量保存到mvar内存变内存变量文件中量文件中u RESTORE FROM 命令可将保存到文件中的变量命令可将保存到文件中的变量恢复到内存:恢复到内存:RESTORE FROM 内存变量文件名内存变量文件名内存变量文件名内存变量文件名 ADDITIVEADDITIVE 其中:其中:其中:其中:ADDITIVEADDITIVE子句将文件中的内存变量追加到当前子句将文件中的内存变
33、量追加到当前子句将文件中的内存变量追加到当前子句将文件中的内存变量追加到当前内存中来,否则,当前内存变量被清除。内存中来,否则,当前内存变量被清除。内存中来,否则,当前内存变量被清除。内存中来,否则,当前内存变量被清除。12/20/202239 4.数组数组数组是变量的有序集合,占用连续的存储单元,数组是变量的有序集合,占用连续的存储单元,(按行存放按行存放按行存放按行存放),组成数组的变量称为数组元素,也,组成数组的变量称为数组元素,也叫做下标变量。叫做下标变量。数组可以是一维数组,也可以是二维数组,数组可以是一维数组,也可以是二维数组,一一个数组中的数组元素可以是不同的数据类型。个数组中的
34、数组元素可以是不同的数据类型。(1)数组的声明数组的声明数组在使用前须预先声明数组在使用前须预先声明(定义)(定义)DIMENSION|DECLARE|PUBLIC|LOCAL 数组名(行数,数组名(行数,列数列数)私有数组私有数组全局数组全局数组局部数组局部数组12/20/202240注意注意:1.数组在声明之后,每个数组元素的数组在声明之后,每个数组元素的默认值均为默认值均为逻辑值逻辑值.F.,数据类型为数据类型为 L。2.用一个语句可为所有的数组元素赋相用一个语句可为所有的数组元素赋相同的值。同的值。12/20/202241例例2:dime Y(3)&表示定义了一个一维的数组表示定义了一
35、个一维的数组Y,包含包含3个元素分别个元素分别为:为:Y(1)、Y(2)、Y(3)Y(1)=123Y(2)=“电脑电脑”?Y(3)Z=Y?Z&Y(3)没有赋值,则值为没有赋值,则值为.F.&将将Y(1)的值给变量的值给变量Z&123.F.F.F.123电脑电脑12/20/202242例例3:请写出下列命令输出的结果请写出下列命令输出的结果dime y(2,3)y(1,1)=“12”y(1,2)=y(1)+“3”store 0 to y(1,3),y(2,1),y(2,2)?y(1,2)?y(6)&123&.F.二维数组可用一维形式使用二维数组可用一维形式使用12123 000.F.Y(2,3)
36、12/20/2022434.数组数组 为数组元素赋值:为数组元素赋值:可以使用可以使用SCATTER、GATHER、COPY TO ARRAY、APPEND FROM ARRAY等命令在数组元素与等命令在数组元素与表记录之间传递值。表记录之间传递值。5.字段变量字段变量第第3章介绍章介绍12/20/2022446.对象对象:类的实例:类的实例 类:对于拥有数据和一定行为特征的对象集合类:对于拥有数据和一定行为特征的对象集合的描述的描述 Visual FoxPro对象可以是表单、表单集或控件对象可以是表单、表单集或控件 7.不同数据存储容器的作用域不同数据存储容器的作用域如表如表2-4所示所示(
37、书(书P46)12/20/202245存储数据的作用域存储数据的作用域(P46)(P46)12/20/202246练习练习1、字符型常量也称为字符串,它是由字符串、字符型常量也称为字符串,它是由字符串“定界定界符符”括起来的一串字符。字符串定界符可以是单括起来的一串字符。字符串定界符可以是单引号、双引号或引号、双引号或 。2、以下符号中,属于、以下符号中,属于VFP常量的是常量的是 。A、.T.B、DATEC、EOFD、#VFP6.0#3、VFP中可以用中可以用 命令给多个变量赋同命令给多个变量赋同一个值。一个值。方括号方括号ASTORE12/20/202247练习练习4、下列字符型常量的表示
38、中,错误的是、下列字符型常量的表示中,错误的是 。A)品牌品牌 B)5+3 C)x=y D)计算机计算机5、以下正确的赋值语句是、以下正确的赋值语句是 。A)A1,A2,A3=10 B)SET 10 TO A1,A2,A3C)LOCAL 10 TO A1,A2,A3 D)STORE 10 TO A1,A2,A312/20/2022482.4.3 Visual FoxPro系统函数系统函数函数:函数:是一种预先编制好的程序代码,可供用户是一种预先编制好的程序代码,可供用户或程序调用。或程序调用。函数包含一对圆括号以便与命令相区别。函数包含一对圆括号以便与命令相区别。函数函数分为分为2大类大类:系
39、统函数和用户自定义的函数系统函数和用户自定义的函数语法规则:语法规则:函数(函数(参数参数1,参数参数2,)函数的函数的三要素:三要素:功能与名称;功能与名称;自变量的类型,个数,位置;自变量的类型,个数,位置;函数的值及值的类型。函数的值及值的类型。注意每个函数的作用,返回值注意每个函数的作用,返回值12/20/2022491.数值函数数值函数:用于处理数值型数据,其返回值也为数值型数据用于处理数值型数据,其返回值也为数值型数据(1)求绝对值:求绝对值:ABS(数值表达式数值表达式)例:例:?ABS(-5.6+5)Store 40 to num1Store 2 to num2?ABS(num
40、2-num1)&显示显示0.60&显示显示3812/20/202250(2)求最大值:求最大值:MAX(表达式表达式1,表达式,表达式2,)例:例:?MAX(-45,2,22,-22)?MAX(a,b)?MAX(2003-11-11,2002-5-6)?MAX(.T.,.F.)&显示显示22&显示显示b&显示显示11/11/03&显示显示.T.(3)求最小值求最小值:MIN(表达式表达式1,表达式,表达式2,)例:例:?MIN(-45,2,22,-22)Store 40 to num1Store 2 to num2?MIN(num2-num1,39)&显示显示-45&显示显示-3812/20/
41、202251(4)取整:取整:INT(数值表达式数值表达式)例:例:?INT(12.5)?INT(-6.8)?INT(9.6-0.5)&显示显示12&显示显示-6&显示显示912/20/202252(5 5)模运算求余数():)模运算求余数():)模运算求余数():)模运算求余数():Mod(a1,a2)Mod(a1,a2)函数函数函数函数功能功能:用用a1的值去除的值去除a2的值,返回余数。函数值的值,返回余数。函数值(余数余数)的符号与的符号与A2相同;相同;l当当a1与与a2符号相同时,函数值为二者的余数;符号相同时,函数值为二者的余数;l当当a1与与a2符号不相同时,函数值为二者相除的
42、余数再加上除符号不相同时,函数值为二者相除的余数再加上除数数a2的的值。值。l被除数被除数A1 的小数位数决定了函数值的小数位数。的小数位数决定了函数值的小数位数。例:例:?mod(36,10)&显示显示6?mod(4*9),90/9)&显示显示6?mod(25.250,5.0)&显示显示0.250?mod(23,-5)&显示显示-2?mod(-23,-5)&显示显示-3?MOD(-23,5)&显示显示212/20/202253(6)四舍五入:四舍五入:ROUND(数值表达式数值表达式,小数位数小数位数)例:例:Set decimals to 4&小数位为小数位为4位位Set fixed on
43、&小数位是否固定小数位是否固定,默认是不固定默认是不固定?ROUND(1234.1962,3)&1234.1960?ROUND(1234.1962,2)&1234.2000?ROUND(1546.1962,-3)&2000.000012/20/202254(7)求平方根:求平方根:SQRT(数值表达式数值表达式)例:例:Set decimals to 2?SQRT(2)12/20/202255(8)随机函数:随机函数:RAND()&产生之间的随产生之间的随机数机数例:例:?RAND()&显示一个显示一个01的随机数的随机数 u如何产生如何产生1 1100100之间的随机整数。可用以下公之间的随
44、机整数。可用以下公式:式:记住此公式记住此公式IntInt(上限上限 -下限下限 +1)*Rand()+1)*Rand()+下限下限?INT(100*rand()+1*产生一个产生一个ab之间的随机整数为:之间的随机整数为:?INT(b-a+1)*rand()+a12/20/202256(1)去前后空格去前后空格:ALLTRIM(字符串表达式字符串表达式)去后缀空格去后缀空格:TRIM(字符串表达式字符串表达式)RTRIM(字符串表达式字符串表达式)去前缀空格去前缀空格:LTRIM(字符串表达式字符串表达式)例:例:cVar=”VFP ”?ALLTRIM(cVar)cVar=”VFP ”?TR
45、IM(cVar)2.字符函数字符函数12/20/202257(2)求求 表达式表达式1 在在 表达式表达式2 中首次出现的位置中首次出现的位置:AT(表达式表达式1),出现次数,出现次数)注:出现次数默认为注:出现次数默认为1,AT区分大小写区分大小写,ATC功能同功能同上,但不区分字母大小写上,但不区分字母大小写例:例:Store Now is the time for all good men to aStore is the to b?AT(b,a)Store IS to b?AT(b,a)?ATC(b,a)12/20/202258(3)求字符串长度求字符串长度:LEN(字符串表达式字符
46、串表达式)例:例:cVar=”V F P”?LEN(cVar)?LEN(“VFP是简写是简写”)?LEN(ALLTRIM(“VFPhelp ”)12/20/202259(4)求子串:求子串:SUBSTR(字符串表达式,位置字符串表达式,位置,长度,长度)注:长度缺省时指返回结束前的全部字符注:长度缺省时指返回结束前的全部字符 例:例:Store abcdefghijklm to mystring?SUBSTR(mystring,6,2)?SUBSTR(mystring,6)aa=”河海大学河海大学”?SUBSTR(aa,5,4)12/20/202260(5)求左子串求左子串:LEFT(字符串表
47、达式,长度字符串表达式,长度)求右子串求右子串:RIGHT(字符串表达式,长度字符串表达式,长度)例:例:?LEFT(Redmond,WA,7)?RIGHT(Redmond,WA,7)(6)SPACE(算术表达式算术表达式)例:例:?Space(3+6)&产生产生9个空格个空格12/20/2022613.日期和时间函数日期和时间函数(1)DATE()、TIME()与与DATETIME()例:例:set century off?date()set century on?date()?time()?datetime()set date to long?date()set date to ansi?
48、date()sr=2008/08/08?date()-sr&显示今天显示今天距距2008-08-08多少天多少天 12/20/202262(2)YEAR(日期日期/时间表达式时间表达式)、MONTH(日期日期/时时间表达式间表达式)与与DAY(日期日期/时间表达式时间表达式)例:例:?Year(date()?Month(date()store month(gdBuy+31)to gdMonth?gdMonth12/20/202263(3)DOW(日期日期/时间表达式时间表达式)注:得到该日期是一周的第几天注:得到该日期是一周的第几天(第一天为星期第一天为星期日日)例:例:?DOW(date()
49、?DOW(2008-08-08)12/20/2022644.数据类型转换函数数据类型转换函数(1)ASC(字符串表达式字符串表达式)&返回最左边的返回最左边的ASCII值值例:例:?ASC(ABCD)?ASC(8)(2)CHR(数值表达式数值表达式)&ASCII值值转成字符转成字符注:注:CHR(13)为为换行符换行符例:例:?CHR(65)&显示显示A?CHR(57)&显示显示9 12/20/202265(3)VAL(字符串表达式字符串表达式)&从左到右返回字符表从左到右返回字符表达式中的数字数值,直至遇到非数值型字符时为达式中的数字数值,直至遇到非数值型字符时为止(字符串转成数值)。若表达
50、式的第一个字符止(字符串转成数值)。若表达式的第一个字符不是数字,也不是加、减号,则函数返回不是数字,也不是加、减号,则函数返回0 例:例:a=12b=14?a+b?val(a)+val(b)?val(234aaaa)Store 1.25E3 to c?2*val(c)12/20/202266(5)STR(数值表达式数值表达式,宽度,宽度,小数位数,小数位数)&数数值型转字符型值型转字符型注:注:缺省时默认宽度为缺省时默认宽度为10,小数位数为,小数位数为0,若若宽度宽度大于大于整个数值的宽度,则用整个数值的宽度,则用前导空格前导空格填充填充 例:例:?STR(314.15)&显示显示 314