VFP要点串讲.docx

上传人:b****5 文档编号:29224809 上传时间:2023-07-21 格式:DOCX 页数:21 大小:23.13KB
下载 相关 举报
VFP要点串讲.docx_第1页
第1页 / 共21页
VFP要点串讲.docx_第2页
第2页 / 共21页
VFP要点串讲.docx_第3页
第3页 / 共21页
VFP要点串讲.docx_第4页
第4页 / 共21页
VFP要点串讲.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

VFP要点串讲.docx

《VFP要点串讲.docx》由会员分享,可在线阅读,更多相关《VFP要点串讲.docx(21页珍藏版)》请在冰豆网上搜索。

VFP要点串讲.docx

VFP要点串讲

VFP复习串讲

笔试中各知识点的分数分布

第1章VFP基础知识 <=6分

第2章VFP系统初步 <=2分

第3章数据与数据运算 <=4分

第4章VFP数据库及其操作 <=14分

第5章关系数据库标准语言SQL <=24分

第6章查询与视图 <=4分

第7章程序设计基础 <=8分

第8章表单设计与应用 <=8分

第9章菜单设计与应用 <=4分

第10章报表设计 <=2分

第11章开发应用程序 <2分

上机考试

每次上机考试都会有50套上机考题,学员会从中随机抽取一套。

在这50套题中会有90%的题在平时上机练习中都可以找到,均是原题。

上机考试中的SQL语句,表单,菜单的属性设置经常出现在笔试当中,所以要求大家在上机练习时不但要会操作,还要理解。

声明:

VFP中所有的命令都可以只写前面的4个字母,并且命令单词不分大小写

1VFP中常用文件类型及其扩展名

文件类型

扩展名

对应的创建命令

项目(工程)文件

.PJX.PJT

CREATEPROJECT

数据库文件

.DBC.DCT

CREATEDATABASE

表文件

.DBF.FPT

CREATE|CREATETABLE

程序文件

.PRG.FXP

CREATE|MODIFYCOMMAND

索引文件

.IDX.CDX

INDEXON

内存变量文件

.MEM

SAVETO

表单文件

.SCX.SCT

CREATE|MODIFYFORM

菜单文件

.MNX.MNT.MPR.MPX

CREATE|MODIFYMENU

报表文件

.FRX.FRT

CREATE|MODIFYREPORT

文本文件

.TXT

MODIFYFILE

查询文件

.QPR

CREATEQUERY

视图文件

.vue

CREATEVIEW

2VFP常用运算符

2.1VFP数据类型

1、字符型(C):

字符型数据必须用‘’或“”或[]括起来;

2、数值型(N)整型(I);

3、日期型(D):

{^2006/10/25}或{^2006-10-25}或{^2006.10.25}

4、逻辑型(L);

5、备注型(M);

6、通用型(G)。

2.2算术运算符

+-*/**^%

说明:

算术运算符均为双目运算符,且运算符的两边均是数值型表达式,运算结果也为数值型数据;除双整数运算结果为整数外,其余运算结果均为实数,且默认最少保留两位小数;

乘方运算符有两个**和^;

%为求余运算符,其结果的符号就与第二操作数的符号相同。

日期型数据也可以进行减法运算;一个日期型数据可以加(减)一个整数;

+-运算符也可用于字符串连接和日期型数据运算。

**(^)--*(/,%)--+(-)

2.3关系运算符

<<=>>====<>#!

=$

说明:

关系运算的结果是逻辑值真或假(.T.或.F.);

真值可以用.t./.T./.Y./.y.表示,假值可以用.f./.F./.n./.N.表示;

能进行关系运算的数据可以是:

数值型、字符型、日期型;

$和==运算符只能用于双字符操作数;

例:

?

“abc”$”bdgabcfgh”.T.

?

‘中国’$‘发展中国家’.T.

?

“[人民]”$“中华人民共和国”.F.

2.4逻辑运算符

.NOT.或!

逻辑非,单目运算符

.AND.逻辑与

.OR.逻辑或

.NOT.--.AND.--.OR.

2.5字符串运算符

“abcd”+“abcdefg”“abcdabcdefg”

“□□□□abcd□□□”+“□□□XXXX□□□”

“□□□□abcd□□□□□□XXXX□□□”

“abcd”-“abcdefg”“abcdabcdefg”

“□□□□abcd□□□”-“□□□XXXX□□□”

“□□□□abcd□□□XXXX□□□□□□”

2.6日期型运算符

{^2006/03/01}+3003/31/06

{^2006/03/31}-{^2006/03/01}30

{^2006/03/31}-3003/01/06

3VFP常用函数

3.1数值运算函数

求模函数:

MOD(expN1,expN2)同算术运算符%

举例说明其用法。

3.2字符处理函数

AT(expC1,expC2)  返回N

如果字符串expC1是expC2的子串,则返回expC1第一次在expC2中出现的起始位置。

否则返回0;

例:

?

AT(“abc”,“THGabcUHY”)4

?

AT(“abc”,“THGabcUHYabcGHJ”)4

?

AT(“abc”,“aGHbNhcbagh”)0

AT(expC1,expC2,n)  返回N

如果字符串expC1是expC2的子串,则返回expC1在expC2中第n次出现的起始位置。

否则返回0;如果expC1在expC2中出现的次数少于n,也返回0。

例:

?

AT(“abc”,“THGabcUHY”,1)4

?

AT(“abc”,“THGabcUHY”,2)0

注:

要注意AT()和$运算符区别。

SUBSTR(expC,n)  返回C

返回字符串expC的从第n个字符到结尾的子字符串。

例:

?

SUBSTR(“abcdefgh”,3)cdefgh

SUBSTR(expC,n,m)返回C

返回字符串expC的从第n个字符到第m个字符的子字符串。

例:

?

SUBSTR(“abcdefgh”,3,6)cdef

LEFT(expC,n)返回C

RIGHT(expC,n)返回C

ALLTRIM(expC)返回C删除字符串expC前后的安全空格

LTRIM(expC)

RTRIM(expC)TRIM(expC)

LEN(expC)返回N

3.3日期、时间函数

TIME()24小时制,时:

分:

DATE()

YEAR()

MONTH()

DAY()

3.4转换函数

UPPER(expC)CC

LOWER(expC)CC

CTOD(expC)要求是正确格式的字符串CD

DTOC(expD)DC

STR(expN)NC 注:

转换的结果字符串最多为10个

先将expN四舍五入转换成整数,再按默认10个字符的宽度转换成字符串

?

STR(23456)□□□□□23456

?

STR(23456.457)□□□□□23456

?

STR(23456.543)□□□□□23457

STR(expN,n)NC 先将expN四舍五入转换成整数

?

STR(234.567,3)235

?

STR(234.567,5)□□235

?

STR(234.567,2)**

?

STR(234.567,12)□□□□□□□□□235

STR(expN,n,m)NC

?

STR(234.567,2,2)**

?

STR(234.567,3,2)235

?

STR(234.567,4,2)□235

?

STR(234.567,5,2)234.6

?

STR(234.567,5,3)234.6

?

STR(234.567,6,3)234.57

?

STR(234.567,10,3)□□□234.567

VAL(expC)CN

3.5测试函数

FOUND()

BOF()

EOF()

RECNO()

BETWEEN(n,expN1,expN2)

4表的基本操作

4.1定义表的字段属性

字段名称,字段的数据类型,字段宽度,小数位数(数值型字段)

常用的字段数据类型:

数据类型

简写

字符型

C

数值型

N

日期型

D

逻辑型

L

备注型

M

整型

I

通用型

G

注:

字段变量和内存变量

当字段名与内存变量同名时,引用内存变量必须用m->内存变量名方式。

例:

usestudent

list

显示如下:

Record#学号  姓名  性别  电话

12004001张三  男   222654

    22004002李四男   222656

    32004005王三可女222666

42004004李自成男222635

go3

姓名=”刘建成”

?

姓名   显示:

王三可

?

m->姓名显示:

刘建成

4.2相关命令:

VFP操作命令的基本格式:

命令词[范围][fields<字段列表>][for<条件>]

create

createtable(SQL命令)

use

modifystructure

list/disp/browse/edit/change

append[blank]

appendfrom

insert[before][blank]

记录定位:

go/gotoexpN或 n

skip±n

能影响记录指针的一些命令:

list/displayall/locate

范围子句:

all/rest/nextn/recordn

replace[范围]fieldsfields1withvalue1….[for<条件>]

delete/pack/recall/zap

SCATTER[FIELDS<字段名表>]to<数组名>

GATHERFROM<数组名>[fileds<字段名表>]

locatefor<条件>

continue

4.3排序和索引

排序:

sortto<表名>on<关键字段1>[/A/D/C][范围]

[for<条件>][fields<字段列表>]

索引文件的类型:

单索引文件,结构复合索引文件,非结构复合索引文件

索引类型:

主索引,候选索引,惟一索引,普通索引

单索引文件(.IDX)

indexon<索引表达式>to<索引文件名>

单索引文件的打开

1.useTableNameindexIDXname1,IDXname2….

2.setindextoIDXname1,IDXname2….

单索引文件打开后,第一个索引文件自动成为主控索引文件

结构复合索引文件(.CDX,与表同名)

indexon<索引表达式>tag<索引标识>

结构复合索引文件随着表的打开自动打开,但没有设置主控索引标识

设置主控索引标识

setordertotag<索引标识>

setorderton

索引查找:

seek

4.4统计命令

count

sum

average

4.5工作区

概念

1—10工作区也为A—J工作区

工作区的选择

sele0

5数据库操作与SQL语言

5.1项目管理器与数据库基本操作

CREATEPROJECT

建立数据库文件:

CREATEDATABASE

打开数据库文件:

OPENDATABASE

关闭数据库:

CLOSEDATABASE

将表添加到数据库:

ADDTABLE

从数据库中移去表:

REMOVETABLE

5.2表的关联

父表和子表

父表和子表有公共字段

子表必须按关联关系建立索引标识并为主控索引

setrelationto<关联表达式>into<子表名>

5.3SQL语言

定义表结构CREATETABLE

CREATETABLE|DBFTableName[FREE]

(FieldsName1fieldsType(width,[n]))NULL|NOTNULL

[CHECKexpL1[ERRORexpC1]]

[DEFAULTexp][PRIMARYKEY]

[,(FieldsName2fieldsType(width,[n]))NULL|NOTNULL]

[CHECKexpL1[ERRORexpC1]]

[DEFAULTexp][PRIMARYKEY]……

例:

CREATETABLEstudentFREE;

(student_IDC(8),nameC(8),birthdayD;

sexC

(2),dyL)建立自由表student.dbf

CREATETABLEGrade(

student_IDC(8)NOTNULLPRIMARYKEY;

course_IDC(4)NOTNULL;

testTypeC(4)NOTNULLCHECK;

testType=[正考]ORtestType=[补考];

ORtestType=[重修];

ERROR[考试类别只能是”正考”、”补考”或”重修”];

DEFAULT[正考];

TestGradeN(5,1)NOTNULL)

提示:

数据库表的引用方式为

数据库名!

表名

字段名的引用方式为

  数据库名!

表名.字段名

修改表结构ALTERTABLE

增加字段

ALTERTABLETableNameADD[COLUMN]fieldsName

FieldsType(m[,n])NULL|NOTNULL

[CHECKexp[ERRORexpC]][DEFAULTexp]

[PRIMARYKEY]

修改字段

将上述命令中的ADD[COLUMN]改为ALTER[COLUMN],但不能用来修改字段名。

修改字段名

ALTERTABLETableNameRENAME[COLUMN]

FieldsName1toFieldsName2

删除字段

ALTERTABLETableNameDROP[COLUMN]fieldsName

[DROPCHECK][DROPPRIMARY][DROPDEFAULT]

删除数据库表的字段时,应该一并删除该字段的相关性规则。

对于自由表,则不存在相关性规则

查询命令SELECT…from…

技巧:

尽量使用查询设计器来做

插入记录 insert

INSERTINTOTableName(字段列表)VALUE(值列表)

或者

INSERTINTOTableNameFROMARRAYarrayName

提示:

插入的记录在表的末尾

更新记录update

UPDATEDataBaseName!

TableNameSET

Column_Name1=exp1[,Column_Name2=exp2,…]

Where<条件>

删除记录(作删除标记)delete

DELETEFROMtableNamewhere<条件>

6查询和视图

主要要求掌握查询向导和查询设计器的使用方法,尤其是查询设计器的使用方法。

(添加数据环境,字段,筛选,联接,排序依据,分组依据,杂项,查询去向,运行查询,查看SQL)

命令:

CREATEQUERY

运行查询:

do查询文件名.qpr

视图设计器与查询设计器类似。

命令:

CREATEVIEW

7表单设计

命令:

CREATEform

运行表单:

doform表单文件名

表单设计时,如果在表单中要操作数据表,千万不要忘记向表单添加数据环境。

表单的基本属性:

thisform.release一般用于“退出”按钮

thisform.hide

thisform.show

thisform.caption=””

表单的常用方法:

Load---Init—Destory

Click,RightClick

设置控件时尽量首先使用“生成器”,方法是右击控件,选择“生成器”

注意控件的以下属性和方法:

Caption,ControlSource,value

如:

alltrim(ThisForm.Text1.value)

Click

8菜单与报表设计

菜单设计:

命令:

CREATEMENU

建立好的菜单一定先要执行“生成”命令

运行菜单:

do菜单文件名.mpr

设置菜单快捷键:

如“统计\

菜单命令后的语句不能有“;”

如果将设计的菜单加载到系统菜单之后,“显示—常规选项”中设置“追加”

顶层表单和顶层菜单:

如果要在表单中加载菜单,

(1)设置表单为顶层表单,表单属性ShowWindow设定为“2—顶层表单”。

(2)在设计菜单时,“显示—常规选项”中设置“顶层表单”。

返回到系统菜单的命令:

setsysmenutodefault

报表设计请掌握报表向导

9程序设计

VFP的程序其实质上是VFP命令的批处理。

我们在命令窗口中输入的命令是输入一条就执行一条,而VFP程序文件是将若干能完成指定功能的命令组合逐条放在一起,并加上VFP的程序控制语句,让这些语句在控制语句的控制下执行。

VFP程序文件:

.PRG编译后生成.FXP的文件

CREATE|MODIFYCOMMANDXXX

DOXXX

从键盘上接受数据的命令有:

accept[<提示信息>]to<内存变量名>只接收字符型数据,回车结束

input[<提示信息>]to<内存变量名>可接收任意类型的数据,回车结束。

如果要输入字符,必须用定界符

wait[<提示信息>]to<内存变量名>

9.1顺序结构

例:

AA.PRG

settalkoff

usestudent

gotop

displayoff

skip3

displayoff

use

settalkon

9.2选择结构

IF<条件表达式>

语句序列

ENDIF

如:

input“请输入一个整数”toa

ifa>0

?

”a是一个正数”

endif

IF<条件表达式>

语句序列1

ELSE

语句序列2

ENDIF

如:

input“请输入一个整数”toa

ifa<0

?

”a是一个负数”

else

?

”a是一个非负数”

endif

IF语句嵌套

IF<条件表达式1>

IF<条件表达式2>

……

ELSE

……

ENDIF

ELSE

IF<条件表达式2>

……

ELSE

……

ENDIF

ENDIF

如:

input“请输入一个整数”toa

ifa>0

?

”a是一个正数”

else

ifa<0

?

”a是一个负数”

else

?

”a的值为0”

endif

endif

DOCASE语句

9.3循环结构

dowhile<条件>

……

enddo

例:

settalkoff

usescore

gotop

dowhile.not.eof()

aver=(数学+语文+英语+计算机)/4

ifaver>=80

ifaver<90

replace成绩评定with“良好”

else

replace成绩评定with“优秀”

endif

else

ifaver>=60

replace成绩评定with“及格”

else

replace成绩评定with“不及格”

endif

endif

skip

enddo

use

settalkon

用docase语句完成上述程序

settalkoff

usescore

gotop

dowhile.not.eof()

aver=(数学+语文+英语+计算机)/4

docase

caseaver>=90

replace成绩评定with“优秀”

caseaver<90.and.aver>=80

replace成绩评定with“良好”

caseaver<80.and.aver>=60

replace成绩评定with“及格”

otherwise

replace成绩评定with“不及格”

endcase

skip

enddo

use

settalkon

SCAN[范围][for<条件>]

……

ENDSCAN

用SCAN语句完成上述程序

settalkoff

usescore

scan

aver=(数学+语文+英语+计算机)/4

docase

caseaver>=90

replace成绩评定with“优秀”

caseaver<90.and.aver>=80

replace成绩评定with“良好”

caseaver<80.and.aver>=60

replace成绩评定with“及格”

otherwise

replace成绩评定with“不及格”

endcase

endsacn

use

settalkon

for<内存变量>=<初值>to<终值>[step<步长>]

……

endfor

循环体语句中的LOOP和EXIT语句

LOOP:

遇到该语句时,循环将跳过LOOP语句后的部分循环语句直接进入下一轮循环。

EXIT:

遇到该语句时,将直接跳出循环。

9.4过程与过程调用

过程的定义与调用方式

参数的传递与返回值

全局变量(publicc),私有变量(private),局部变量(local)

10一点小技巧

上机考试中的若干技巧:

1、确认当前工作目录是否是考生文件夹;

2、如果题目要求将命令语句保存在XXX.prg文件中,则直接使用“新建――程序”,将命令语句复制到该文件中,然后保存时输入指定文件名“XXX”,而不用指定扩展名。

3、如果题目要求将命令语句保存在“XXX文本文件中”即“XXX.txt”文件中,则直接使用“新建――文本文件”,将命令语句复制到该文件中,然后保存时输入指定文件名“XXX”,而不用指定扩展名。

4、在上机考试中,有一些操作是要求写SQL命令的。

万一写不出来的,可以借助查询向导或查询设计器。

用查询设计器按题目要求设计好以后,使用“查看SQL”,然后将窗口中的SQL复制下来即可。

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

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1