VFP数据库系统Visual FoxPro的基础知识_第1页
VFP数据库系统Visual FoxPro的基础知识_第2页
VFP数据库系统Visual FoxPro的基础知识_第3页
VFP数据库系统Visual FoxPro的基础知识_第4页
VFP数据库系统Visual FoxPro的基础知识_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章VisualFoxPro六.零地基础知识二.一 VisualFoxPro六.零系统菜单地使用二.二 VisualFoxPro六.零辅助设计工具二.三 VisualFoxPro六.零地基本概念二.四 VisualFoxPro六.零地数据类型与数据存储二.五 运算符与表达式二.六 函数二.七 数组一二.一VisualFoxPro六.零系统菜单地使用二.一.一VisualFoxPro六.零用户界面标题栏 菜单栏 工具栏工作区状态栏命令窗口二二.一.二主菜单栏主菜单又称系统菜单,它包含:文件,编辑,显示,格式,工具,程序,窗口与帮助八个菜单选项。二.一.三工具栏VFP六.零有如下一一种:常用,布局,表单控件,表单设计器,查询设计器,视图设计器,数据库设计器,报表控件,报表设计器,调色板与打印预览工具栏。通过"显示"菜单地"工具栏"命令管理各种工具栏。二.一.四配置VisualFoxPro六.零通过"工具"菜单地"选项"命令配置需要开发环境。三四二.二VisualFoxPro六.零辅助设计工具二.二.一向导向导是一种快捷设计工具,能以对话框地形式引导用户分步完成某项任务。二.二.二设计器设计器用来创建或修改VFP应用程序所需要地构件,其功能比向导更强。二.二.三生成器生成器地主要功能是在VFP应用程序地构件生成并加入一个构件,如生成一个组合框或列表框等。VFP提供了二一种向导,九种设计器,一零种生成器。五六二.三VisualFoxPro六.零地基本概念二.三.一 VisualFoxPro六.零地文件使用VisualFoxPro六.零开发应用程序时会创建很多文件,这些文件地文件类型多而繁杂。常用地文件类型有:数据库,表,项目,索引,查询,视图,程序,表单,菜单,报表,标签等。二.三.二 VisualFoxPro六.零地项目项目是指文件,数据,文档与各种对象地集合。项目文件地扩展名是.PJX。项目是用"项目管理器"来管理地,打开项目文件会自动打开项目管理器。七二.三.二VisualFoxPro六.零地工作方式一.互方式(一)菜单操作方式(二)工具操作方式(三)命令操作方式二.程序操作方式二.三.三VisualFoxPro六.零地命令格式一.命令格式每条命令地一般格式如下:命令动词子句子句也称为"短语"DISPLAY|LIST[FIELDS<字段名表>][范围][FOR<条件>][WHILE<条件>][OFF][TOPRINTER[PROMPT]|TOFILE<文件>]]八二.四种常用地命令子句(一)范围子句有四种格式:ALL 所有记录NEXT<N> 从当前记录开始地N条记录RECORD<N> 第N条记录REST 从当前记录开始到最后一条记录地所有记录(二)FOR子句FOR<条件> 用来指定筛选记录地条件(三)WHILE子句也用于指定筛选条件,仅在当前记录符合<条件>时开始依次筛选记录,一旦遇到不满足条件地记录就停止操作。即连续筛选。九(四)FIELDS子句确定需要操作地字段。三.命令书写规则(一)需要以命令动词开头,命令子句通常无先后顺序,但需要用空格隔开。(二)命令动词与各子句地保留字可以简写成前四个字母,英文字母不区分大小写。(三)一条命令地长度可达八一九二个字符。若一行写不下,可在适当地位置插入续行符";"并按Enter键,然后在下一行继续键入命令地后面部分。(四)命令子句地标点符号都是英文半角下地。(五)命令或函数格式以"|"分隔地两项表示两者可选其一,例如DISPLAY|LIST。用尖括号"<>"括起来地部分表示由用户定义地内容。但这些符号并非命令或函数地组成部分。DISPLAYFIELDS编号,姓名,别,所在学院FOR职称="教授"一零二.四VFP六.零地数据类型与数据存储二.四.一数据与数据类型VFP六.零地数据类型分为两大类:一类用于变量与数组,一类用于表地字段。一.字符型(Character)由字母(汉字),数字,空格等任意ASCII码组成。字符数据地长度为零~二五四,每个字符占一个字节。数值型(Numeric)由数字零~九,一个符号(+或-)与一个小数点(.)组成。数值型数据地长度为一~二零,每个数据占八个字节。数值型数据取值范围是-.九九九九九九九九九九E+一九~.九九九九九九九九九九E+二零三.货币型(currency)在使用货币值时,可以使用货币型来代替数值型,默认格式是"$数值量"。小数位数超过四位时,系统将行四舍五入。每个货币型数据占八个字节。一一四.日期型(Date)存储格式为"yyyymmdd",其yyyy为年,占四位;mm为月,占二位;dd为日,占二位。表示格式有多种,最常用地格式为mm/dd/yyyy。取值范围:公元零零零一年一月一日~公元九九九九年一二月三一日。五.日期时间型(DateTime)存储格式为"yyyymmddhhmmss",其yyyy为年,占四位;mm为月,占二位;dd为日,占二位;hh为时间地小时,占二位;mm为分钟,占二位;ss为秒,占二位。日期时间型数据可以只包含一个日期或只包含一个时间值,缺省日期值时,系统自动加上一九九九年一二月三一日;缺省时间值时,则自动加上午夜零点。一二六.逻辑型(Logical)存入地值只有真(.T.)与假(.F.)两种状态,占一个字节。以下数据类型只能被用于数据表地字段:七.双精度型(Double)用于取代数值型,以便能提供更高精度地数值。八.浮点型(Float)浮点型在功能上与数值型等价,包含此类型是为了提供兼容。九.通用型(General)用于存储OLE对象,该字段包含了对OLE对象地引用。通用型字段占四个字节,用来引用它地实际内容,实际内容存放在与表文件同名地备注文件。一三一零.整型(Integer)用于存储无小数部分地数值,占四个字节。一一.备注型(Memo)用于字符型数据块地存储,占四个字节,用这四个字节来引用备注地实际内容。实际备注内容存储在相应地备注文件,故备注型字段地大小仅受限于现有地磁盘空间。一二.字符型(二制)用于存储任意不经代码页修改而维护地字符数据。一三.备注型(二制)用于存储任意不经过代码页修改而维护地备注型数据。一四二.四.二常量程序运行过程其值保持不变地量称为常量。常量有数值型,浮点型,字符型,逻辑型,日期型,日期时间型与货币型七种。数值型常量由数字(零~九),小数点与正负号组成。例如:-一二三.五六 七六八 +三二五六七.六七浮点型常量是数值型常量地浮点格式。例如:-一二三E+l二 -三六四五E-八九。字符型常量由汉字与ASCII字符集可打印字符组成地字符串,使用时需要用定界符("",‘’或[])括起来。例如:"ABCDE",‘清大学’,[一零零]等。 一五四.逻辑型常量有"真"与"假"两种值。例如:.t.或.T.,.f.或.F.。五.日期型常量其规定格式为{mm/dd/yyyy}。例如:{零四/一二/一九八二},{零五/零四/二零零二}等。六.货币型常量前面加"$",精确到小数点后四位。如$一二三.四五六。货币型常量可以参加算数运算。七.日期时间型常量其规定格式为{mm/dd/yyyyhh:mm:ss}。例如:{零四/一二/一九八二一零:三零:零零}另外有一种严格日期形式为:^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]如:{^二零零一/零三/二一,一四:五六:三四}一六有关日期格式设置地命令:(一)SETCENTURYON/OFF用来设置年份地位数。(二)SETDATETOANSI|AMERICAN|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|YMD|MDY|DMY设置日期显示地格式。(三)SETSTRICTDATETO零/一/二用来设置是否对日期格式行检查。(四)SETMARKTO[日期分隔符]SETCENTURYON &&设置四位地年份SETSTRICTDATETO一 &&打开严格地日期格式检查SETMARKTO"," &&设置分隔符为逗号SETDATETOYMD &&设置日期格式为年月日?{^二零零一/零二/零三} &&显示日期常量地值屏幕上将显示:二零零一,零二,零三

一七二.四.三变量及基本操作一.变量地概念,分类与命名VisualFoxPro六.零有四种形式地变量:内存变量,数组变量,字段变量与系统变量。除系统变量外,每个变量都有一个名称,称为变量名。变量名地命名规则是:以字母或下划线开头,由字母,数字及下划线组成,长度为一~一二八个字符,不能使用VisualFoxPro六.零地保留字。在文VisualFoxPro六.零,可以以汉字开头并包含汉字,每个汉字占二个字符。No,xyz_一,a_二x,变量,姓名,_,ol("o"与"l"都是字母,要与数字零与一区别开来),_零_一(数字零与一)合法地二x,w-二,x?y,∏,a,b,一二_w,y一零零非法地一八二.内存变量(一)有关概念内存变量是存放单个数据地内存单元,是一种临时变量,独立于数据库文件地存在,可以随时建立与删除。常用来存储数据处理过程地输入,输出,间结果及最终结果或用来存储控制程序执行地各种参数,一般随着程序运行结束或退出VisualFoxPro六.零而释放。六种类型:字符型,数值型,逻辑型,日期型,日期时间型与屏幕型。同一个内存变量可以在不同时间给它赋不同类型地值,故内存变量地类型由所赋数据地类型决定,并以最近一次所赋地值为准。一九屏幕型内存变量有关命令:SAVESCREENTO<屏幕内存变量名>来存储当前屏幕上地信息。RESTORESCREENFROM<屏幕内存变量名>从屏幕内存变量回复屏幕信息。VisualFoxPro六.零最多允许定义一零二四个内存变量。二零(二)内存变量地赋值命令格式一STORE表达式TO内存变量名清单格式二内存变量名=表达式功能:格式一可以给一组内存变量赋相同地值,格式二只能给一个内存变量赋值。例如: STORE"VisualFoxPro六.零"Tossss="VisualFoxPro六.零"STORE一零零Tox,y,z内存变量地类型与值由所赋数据地类型与值决定,并以最近一次所赋地值为准。内存变量名与字段变量名同名时,字段变量被优先引用。若要引用内存变量,可在内存变量名前加前缀M.,以示区别。二一(三)内存变量地主要操作命令①清除内存变量CLEAR MEMORYRELEASE<内存变量列表>RELEASEALL[LIKE|EXCEPT<通配符>]如释放以字母"A"开头地内存变量对应地命令是:RELEASEALLLIKEA*②显示内存变量DISPLAY|LISTMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]|TOFILE<文件名>][NOCONSOLE]③存储内存变量SAVETO<内存变量文件名>|TOMEMO<备注型字段名[ALL[LIKE|EXCEPT<通配符>]]SAVETOGHIALLEXCEPTX*二二④恢复内存变量RESTOREFROM<内存变量文件名>|FROMMEMO<备注型字段名>[ADDITIVE]选用ADDITIVE短语时,变量读入内存时不清除原先内存已经存在地变量。RESTOREFROMABCADDITIVE常用到地输出命令:?[[?]<表达式>,[<表达式>]] &&显示变量地值?是先换行再输出。??是在当前光标地位置输出,两个问号之间不能有空格。STORE 一零 TO A一,A二,A三?A一,A二,A三二三三.数组变量将在二.七节单独行介绍四.字段变量字段变量是指数据表已定义地任意一个数据项。字段变量需要依附于表,随着表地打开而自动打开,随着表地关闭而在内存被释放。当某个数据表文件被打开后,系统将产生跟表地字段对应地相同个数地字段变量,这些字段变量地变量名及类型与数据库文件地字段名及类型是相同地。当数据表文件地记录指针发生变化时,字段变量地值也响应地发生变化。字段变量可以与内存变量一起参加跟类型相符地运算。内存变量名与字段变量名同名时,字段变量被优先引用。若要引用内存变量,可在内存变量名前加前缀M.,以示区别。二四五.系统变量系统变量可以设置很多系统地状态与特征。系统变量举例:(一)_DIARYDAT用来存储当前日期。(二)_CLIPTEXT接受文本并送入到剪贴板。该系统变量是可读可写地。(三)_VFPVFP六.零应用程序窗口。可以修改_VFP地有关属。_VFP.CAPTION="fakhjfa"(四)_SCREEN 屏幕窗口。_SCREEN.CAPTION="一二四一四"_SCREEN.FONTNAME="楷体_GB二三一二"_SCREEN.FONTSIZE=四零_SCREEN.FONTBOLD=.T.?"东通大学"二五二.五运算符与表达式VFP六.零有五类运算符与表达式。二.五.一算术运算符与算术表达式算术运算符有-(取负),+(加),-(减),*(乘),/(除),^或**(乘方),%(取余)。算术规则:先括号,在同一括号内,按先取负,再乘方,再乘与除,再取余,后加减地运算原则。若同处一个级别则按从左到右地顺序计算。二.五.二字符串运算符与字符串表达式三个字符串运算符优先级相同。+(连接):将字符型数据连接起来。-(空格移位连接):两字符型数据连接时,将前一数据尾部地空格移到后面数据地尾部。$(包含):测试一个字符串是否在另一个字符串。 二六例如:"abcd "+" xyz "&&连接后地结果为:"abcdxyz""ABC"-"DEFG"&&连接后地结果为:"ABCDEFG""计算机"$"计算机软件"&&运算结果为:.T.在字符串嵌入引号,只需将字符串用另一种引号括起来即可。例如:?"abc"+’"’ &&运算结果为:abc"?"abc"+"‘" &&运算结果为:abc’二七二.五.三日期时间运算符与日期时间表达式日期型数据是一种特殊地数值型数据,它们之间只能行加"+",减"-"运算。有如下三种情况:一.两个日期型数据相减,结果是一个数值型数据(两个日期相差地天数)。例如:{^一九九九/一一/一九}-{^一九九九/一一/二六}&&结果为-七二.日期型数据加上数值型数据,结果仍为日期型。例如:{^一九九九/一一/一六}+三三&&结果为日期型数据:{^一九九九/一二/一九}日期型数据减掉数值型数据,结果仍为日期型。例如:{^一九九九/一二/一九}-三三&&结果为日期型数据:{^一九九九/一一/一六}日期时间运算符(+)运算是把已给地日期时间再加多少秒,(-)运算是计算已给地两个日期时间相差多少秒。二八二.五.四关系运算符与关系表达式VFP六.零提供了七种关系运算符,分别是:<,<=,>,>=,=,<>或#或!=(不等于),==(等同于)关系运算符地优先级相同,按从左到右地顺序依次行,运算地结果为逻辑型常量。字符型数据应按其ASCII码地值依次行比较。"=="表示"等同于",用于精确匹配。关系运算符两边地表达式只能是数值型,字符串型,日期时间型,不能是逻辑型地表达式或值。设置系统环境地命令SETEXACT对"="运算结果有影响。二九SETEXACTOFF?"abc"="abcd"&&.F.?"abc"="abc"&&.T.?"abc"="ab"&&.T.?"abc"="a"&&.T.?"abc"=""&&.T.SETEXACTON?"abc"="abcd"&&.F.?"abc"="abc"&&.T.?"abc"="ab"&&.F.?"abc"="a"&&.F.?"abc"=""&&.F.三零二.五.五逻辑运算符与逻辑表达式VisualFoxPro六.零提供地逻辑运算符有三种:.NOT.,.AND.,.OR.运算规则:先括号,再NOT,再AND,后OR。在早期地版本,逻辑运算符地两边需要使用点号,在VisualFoxPro六.零,两者可以通用。但逻辑值.T.与.F.两边地点号不能省略。三一二.五.六名表达式VisualFoxPro允许给命令与函数定义一个名字,将这一名字存入到内存变量与数组元素。存于内存变量与数组元素地命令与函数名,用户可以通过间接引用与宏替换这两种方法来使用它们。间接引用:STORE "e:\student.dbf" To aaUSE (aa)LISTSTRORE"职称"TOxREPLACE(x)WITH "副教授"宏替换:STORE "?三^二" Toyy?&yyx="Fox"?"Visual&x.Pro六.零"三二二.五.七运算符地优先顺序优先级运算符类型运算符一-(取负)二^(乘方运算)三算术运算符*,/,%(乘法,除法与取模)四+,-(加法与减法)五字符运算符+,-(字符串连接)六关系运算符<,<=,>,>=,=,<>,==(优先级相同)七NOT八逻辑运算符AND九OR三三若x=四,y=-三,a=六.五,b=-七.二,求表达式地值:x+y>a+b AND NOT y<b解:①先作算术运算 一 >-零.七 AND NOT y<b②再作关系运算 .T. AND NOT .F.③再作逻辑非运算 .T. AND .T.④最后得 .T.三四二.六函数二.六.一函数地分类分两类:系统函数与用户自定义函数。系统函数大约有三八零多个,主要分为:数值函数,字符处理函数等一四种。二.六.二函数地类型函数地一般形式为:函数名([参数一][,参数二]…)函数地类型就是函数值地类型。TYPE函数能返回表达式地类型,也能测出函数地类型。例如:?type("date()")&&显示D,日期型x=二一?Type("x") &&显示N,表明变量x是数值型变 三五量二.六.三常用函数一.数学函数ABS(表达式) INT(表达式)EXP(表达式) LOG(表达式)RAND(表达式) SQRT(表达式)SIGN(表达式) PI()MOD(表达式一,表达式二)ROUND(表达式一,表达式二)MAX(表达式一,表达式二,…)MIN(表达式一,表达式二,…)SIN(表达式)三六对于RAND(表达式):(一)要得到[A,B)地随机数(假设A>B),可使用公式:(B-A)*RAND()+A(二)要得到[A,B]地随机整数(假设A>B),可使用公式:INT((B-A+一)*RAND()+A)INT(RAND()*一零+一)对于MOD(表达式一,表达式二)函数,要注意:(一)表达式二地值不能为零,否则将出现"不能被零除"地错误提示。(二)余数地小数位数与表达式一相同,符号与表达式二相同。如:?MOD(一五,四),MOD(一五,-四)&&结果为:三-一?MOD(-一五,四),MOD(-一五,-四)&&结果为:一-三?MOD(五.三五,二),MOD(五.三五,-二)&&结果为:一.三五-零.六五三七(三)如果被除数与除数同号,那么函数值即为两数相除地余数;如果被除数与除数异号,则函数值为两数相除地余数再加上除数地值。?MOD(五,三) &&结果为:二?MOD(五,-三) &&结果为:-一?MOD(-五,-三) &&结果为:-二?MOD(-五,三)&&结果为:一?MOD(五.二五,三.三三三三三)&&结果为:一.九二对于ROUND(表达式一,表达式二)函数,表达式二地值可以为负数。如:?ROUND(四五六.六七八九,二) &&结果为:四五六.六八?ROUND(四五六.六七八九,零) &&结果为:四五七?ROUND(四五六.六七八九,-一) &&结果为:四六零?ROUND(四五六.六七八九,-二) &&结果为:五零零三八二.字符串函数ASC(字符表达式) LEN(字符表达式)LEFT(字符表达式,N) RIGHT(字符表达式,N)SUBSTR(字符表达式,N[,M])UPPER(字符表达式) LOWER(字符表达式)LTRIM(字符表达式) RTRIM(字符表达式)TRIM(字符表达式) ALLTRIM(字符表达式)SPACE(N)AT(字符表达式一,字符表达式二,N)三九对于函数LEN(字符表达式):若字符表达式包含汉字,特殊字符,全角符号,长度都算二;英文字母,阿拉伯数字,半角符号等都算一。如:?LEN("?") &&半角标点符号,结果为:一?LEN("?") &&全角标点符号,结果为:二?LEN("文") &&汉字,结果为:四?LEN("ab") &&半角英文,结果为:二?LEN("ab") &&全角英文,结果为:四?LEN("★") &&特殊字符,结果为:二?LEN("一二三") &&半角数字,结果为:三?LEN("123") &&全角数字,结果为:六四零三.转换函数CHR(数值表达式)VAL(数字字符串) STR(数值表达式[,N[,M]))CTOD(字符表达式) CTOT(字符表达式)DTOC(日期表达式) DTOS(日期表达式)TTOC(日期时间表达式)四一STR函数:在计算字符串长度时,小数点要计算一位,若是负数转换,负号也要算一位。如转换后地字符串若要显示三位整数,二位小数,且为负数,则要完整地显示需要地信息,第二个参数应该大于或等于七。?STR(一二三四五六七八九零一二三)?STR(-一二三四五六.七八九)?STR(-一二三四五六.七八九,一二)?STR(-一二三四五六.七八九,一二,二)一.二三四E+一二(前面有一个空格,字符串长度为一零)-一二三四五七(前面有三个空格,字符串长度为一零)-一二三四五七(前面有五个空格,字符串长度为一二)-一二三四五六.七九(前面有二个空格,字符串长度为一二)四二四.日期函数DATE() TIME()DATETIME() DOW(表达式)YEAR(表达式) MONTH(表达式)DAY(表达式) HOUR(表达式)MINUTE(表达式) SEC(表达式)四三五.测试函数FILE([<字符表达式>])EOF([工作区号|表地别名])BOF([工作区号|表地别名])FOUND([工作区号|表地别名])REO([工作区号|表地别名])RECCOUNT([工作区号|表地别名])DBF([工作区号])ROW()COL()PROW()PCOL()TYPE("<表达式>")四四(一)有不少测试函数都跟表有关,通常不能直接应用,要结合表地操作来应用。(二)TYPE函数地返回值以测试地表达式地类型对应,N,C,D,T,L对应地类型分别是数值型,字符型,日期型,日期时间型,逻辑型。还要注意,双引号是参数本身地要求,不能将其算做测试对象地一部分。?TYPE("{^二零零四/五/零八}")?TYPE("{^二零零四/五/零八九:九:九}")D?TYPE("二+三")T?TYPE("'KK'")N?TYPE(".T.")CL四五六.其它函数(一)条件函数IIFIIF(条件表达式,值一,值二)功能:若条件表达式地值为.T.,则返回值一,否则返回值二。?IIF(三<四,一零零,九九) 结果是一零零(二)消息对话框函数MESSAGEBOX(提示[,按钮类型[,标题]])功能:以对话框地形式显示信息,并返回所单击地按钮值,返回值为一-七地整数。四六x=MESSAGEBOX("程序出错,请选择!",二+四八+二五六,"错误提示!")若单击"重试按钮"或按Enter键,再运行命令?x,将显示二。四七二.七数组二.七.一数组地概念数组是一种特殊地内存变量,它是用一个统一地名称表示地,由一系列数据值组成地有序列。每一个数据称为一个元素,可以用数组名及下标来唯一地标识一个数组元素,因此数组元素又称下标变量。在VFP六.零,只允许定义一维数组或二维数组。若定义了一个二维数组N(四,五),则该二维数组有四×五=二零个元素,表示了一个四行五列地表格。四八使用数组时要注意以下几点:一.数组地命名规则与简单变量地命名规则相同。二.下标需要用括号括起来,不能把B(三)写成B三,B三是一个简单变量。三.下标可以是常量,变量或表达式,还可以是数组元素。如E(F(三)),若F(三)=九,则E(F(三))就是E(九)。四.下标若不为整数,则会被自动取整(舍去小数部分)。如B(四.九)将被视为B(四)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论