江苏省计算机二级VFP上机攻略剖析.docx

上传人:b****6 文档编号:12143760 上传时间:2023-06-04 格式:DOCX 页数:29 大小:231.09KB
下载 相关 举报
江苏省计算机二级VFP上机攻略剖析.docx_第1页
第1页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第2页
第2页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第3页
第3页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第4页
第4页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第5页
第5页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第6页
第6页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第7页
第7页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第8页
第8页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第9页
第9页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第10页
第10页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第11页
第11页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第12页
第12页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第13页
第13页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第14页
第14页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第15页
第15页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第16页
第16页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第17页
第17页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第18页
第18页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第19页
第19页 / 共29页
江苏省计算机二级VFP上机攻略剖析.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

江苏省计算机二级VFP上机攻略剖析.docx

《江苏省计算机二级VFP上机攻略剖析.docx》由会员分享,可在线阅读,更多相关《江苏省计算机二级VFP上机攻略剖析.docx(29页珍藏版)》请在冰点文库上搜索。

江苏省计算机二级VFP上机攻略剖析.docx

江苏省计算机二级VFP上机攻略剖析

上机攻略

 

江苏理工学院-王建

目录

项目、数据库和表操作知识点1

查询知识点6

菜单知识点9

表单知识点13

程序改错知识点20

项目、数据库和表操作知识点

一、零碎知识点

1、做第一题的时候,必须按考试要求设置默认目录

语句为:

setdefaultto…

2、“记录有效性规则”与“字段有效性规则”不同,前者表,后者字段

3、比较冷门的字段类型

备注型M(memoMemo)(存文字)通用型G(genGen)(存图片)

(备注型和通用型都是双击插入记录)

整型I(同数值型,无小数位)货币型Y

4、设置参照完整性,必须要先清理数据库(★★★非常重要★★★)

先打开数据库设计器,然后菜单栏——数据库——清理数据库

5、设置参照完整性和索引的时候,要注意保持字段类型一致,相同时不用改,不同时基本上都是转化成字符型来设置(★★★非常重要★★★)

数值型转化为字符型:

STR(字段名,整数位,小数位)没有小数时直接省略

日期(时间)型转化为字符型:

DTOC(字段名,1)TTOC(字段名,1)括号中必须要加1

将当前日期转化为字符型:

DTOC(DATE(),1)

6、修改项目文件的项目信息

右键点击项目——项目信息,然后进行设置,常考设置图标

7、自由表的相关操作(★★★非常重要★★★)

(1)题目让编辑自由表时,无法用use命令打开自由表,直接在项目管理器中双击自由表使其处于打开状态,然后在进行相关数据的命令操作;同理,当用use无法打开题目中的某个表时,要自然地想到它是自由表。

(2)将自由表添加到数据库中,并设置为包含。

打开数据库设计器,在项目管理器中将对应的自由表直接拖到数据库设计器中,右击选择包含。

如果不要求添加到数据库中的,直接右击,选择“包含”即可。

8、显示类的名称

Checkbox复选框Combobox组合框

Editbox编辑框Listbox列表框

OptionGroup选项按钮组Spinner微调框

Textbox文本框Grid表格

OLEBoundControlOLE绑定型控件

9、表记录个数:

RecnoCount

10、表的触发器:

不可用时,输入.F.

二、字段格式和字段输入掩码(★★★非常重要★★★)

1、字段格式

删除前导空格T

字段全为大写字母!

只允许输入字母或汉字A

2、字段输入掩码

只能输入数字9

只能输入字母或汉字A

可以输入任意字符X

可输入数字、空格和正负符号#

举例:

某字段宽度为6,第一位只能输入数字(字母),其他为任意字符

分别为:

9XXXXXAXXXXX

注意:

会计格式。

所谓的会计格式,就是只能输入数字,然后从右向左每3位加一个逗号,小数位不加逗号。

举例:

gzN(8)会计格式为:

99,999,999

gzN(5,2)会计格式为:

99,999.99

三、字段的有效性规则

1、常用到的一些函数(★★★非常重要★★★)

(1)某字段值不能为空(空字符串),假设字段为cj

!

Empty(cj)或.NOT.Empty(cj)

某字段值不能为空值

!

ISNULL(cj)或.NOT.ISNULL(cj)

同样的,如果需要设置为空或空值时,直接Empty(cj)、ISNULL(cj)

(2)某字段值大于(等于)A,小于(等于)B,假设字段为cj(★★非常重要★★)

两种表达:

cj>=A.AND.cj<=B

Between(cj,A,B)

注意:

第一种表达方式的等于号根据题目要求来填写;第二种表达,无论题目中是否包含等于,都可以使用,没有影响。

(3)性别只能是男或女xb$”男女”

(4)IIF(条件,A,B)(★★★非常重要★★★)

条件成立则取值为A,否则取值为B,非常重要。

(5)截取字符串(★★★非常重要★★★)

Left(字段,长度)Right(字段,长度)

Substr(字段,开始截取位置,长度)

(6)B能够被A整除

B%A=0或者Mod(B,A)=0

(7)某字段值必须包含非空字符Len(Allt(字段))>0(★★非常重要★★)

(8)在字段后面补充字符,用“-”,可同时保证添加字符与原字符间没有空格

在字段前面添加字符,直接用“+”

举例:

在字段mc(名称)前后分别添加书名号《》,并使其与字段间无空格

则为:

“《”+mc-“》”

(9)四舍五入

如果数值型字段含有小数,则用函数ROUND()

如:

zhcj(综合成绩)字段含有4位小数,四舍五入保留两位小数

ROUND(zhcj,2)

如果数值型字段为整数,要四舍五入,用Int((字段+5)/10)*10

如:

cj(成绩)字段全部四舍五入

Int((cj+5)/10)*10

(10)当前系统的日期DATE()(★★★非常重要★★★)

当前系统的日期时间DATETIME()

另外截取日期型变量常用的函数有以下几个,但是他们转变之后都是数值型的,要是想变成字符型,需要额外用STR()函数转换。

YEAR()、MONTH()、DAY()、HOUR()

举例:

“生日信息”使用“xx月xx日”表示,从csrq中截取

STR(MONTH(csrq),2)+”月”+STR(DAY(csrq),2)+”日”

有效性规则常考某个字段在几个年、月、日、小时之间什么的,表示方法为:

当前系统日期进行转化:

Between(YEAR(DATE()),A,B)

某个字段日期进行转化:

Between(YEAR(csrq),A,B)

2、字段有效性信息和默认值(★★★非常重要★★★)

(1)字段有效性信息输入时,比较要加上双引号

(2)字段默认值如果为数值型和逻辑型直接输入,其他的需要加上定界符

字符型加双引号,日期型加上花括号{},货币型加$

(3)有的题目会说“设置xx字段的有效性规则信息”,这样既要输入有效性规则也要输入有效性信息,不能遗漏。

四、表记录修改的相关命令(★★★非常重要★★★)

1、添加删除标记(逻辑删除表中记录)

(1)DELETE-SQL语句

Deletefrom表where条件

(2)use表

deletefor条件

举例:

给kc表中所有学分大于或等于5的记录追加删除标记

第一种:

deletefromkcwherexf>=5

第二种:

usekc

deleteforxf>=5

2、彻底删除表中记录

第一种:

use表第二种:

use表

deleteallzap

pack

3、更新表中数据(最常考)(★★★重中之重★★★)

update表set字段=表达式where条件

举例:

计算并修改jy表中所有记录的fk字段值:

学生lx字段值为X借阅天数超过30天每天罚款0.1元(借阅天数根据借阅日期jyrq和还书日期hsrq计算)。

updatejysetfk=(hsrq-jsrq-30)*0.1wherelx=”X”

注意:

对于涉及到百分数的,不能使用%,只能通过小数来转化

举例:

修改jc表数据,使所有记录单价字段的值增加10%

updatejcsetdj=dj*1.1

4、复制表中记录保存到新表中(可以复制到其他文件中,见书95页)

use表

copyto新表名for条件

举例:

将jc表中出版社名称(cbsmc)为“高等教育出版社”的记录复制到表名为gdjy的新表中

usejc

copytogdjyforcbsmc=”高等教育出版社”

5、为表新增一个字段

Altertable表名add字段名字段类型(字段宽度)

举例:

为jc表添加ndj字段,字段类型为数值型,宽度为5,小数位数为2

AltertablejcaddndjN(5,2)

6、IIF()函数的具体应用

(1)计算并修改gz表中所有记录的ylbx的值,计算方法如下:

如果gz+jt+qt≥1800元,则ylbx=(gz+jt+qt)×15%,

否则ylbx=1800×11.5%

updategzsetylbx=IIF(jbgz+gwjt+qt>=1800,(gz+jt+qt)*0.15,1800*0.115)

(2)IIF()函数当中,可以再包含IIF函数,无限的套嵌

举例:

修改cj表中的数据,按照成绩值设置备注字段内容,若成绩大于或等于90,则备注字段中设置为“A”;若成绩大于等于80且小于90,则备注字段设置为“B”;低于60分设置为“D”;其余设置为“C”。

updatecjsetbz=IIF(cj>=90,”A”,IIF(cj>=80,”B”,IIF(cj<60,”C”,”D”)))

(3)一道特殊的题目,原来还可以这样用—_—!

!

!

举例:

计算并修改jy表中所有记录fk的字段值:

借阅天数超过30天(借阅天数根据借阅日期jyrq和还书日期hsrq计算),超过部分,学生(lx字段的值为X)每天罚款0.1元,教师(lx字段的值为J)每天罚款0.2元。

updatejysetfk=IIF(lx=”X”,0.1,0.2)*IIF(hsrq-jyrq>30,harq-jyrq-30,0)

7、在表中插入记录

Insertinto表名(字段1,字段2,…)values(字段1值,字段2值,…)

举例:

在xs表中插入一条新纪录,姓名:

李明,学号:

12121212,性别:

Insertintoxs(xm,xh,xb)values(“李明”,”12121212”,”男”)

查询知识点

一、零碎知识点

1、查询时涉及到自由表的,在添加窗口中点击“其他”,然后选择题目中要求自由表,并设置关联字段。

2、引号问题(★★★非常重要★★★)

在一个表中,设置需要输出的字段时,对于姓名(xm)字段,有的题目会说输出字段为xm,这个时候直接双击该字段即可;有的说输出字段为“姓名”,这时候要通过表达式来设置,在表达式生成器中输入xmAS姓名,然后点击确定添加。

需要注意的是,表达式中的汉字不需要加引号,直接输入。

3、查询设计器与Select-SQL语句的对应关系(★★★非常重要★★★)

字段:

即select后面的内容

联接:

即Innerjoin…on…,两个表通过相同字段进行内联接

筛选:

即where,筛选符合where后条件的记录

排序依据:

即orderby,设置输出记录以某字段排序

分组依据:

即groupby,设置输出记录以某字段分组

(分组依据里包含“符合条件”:

即Having,设置输出记录的条件)

杂项:

包含两个面

(1)记录是否唯一,对应语句为distinct

(2)输出前X(X%)的记录,对应语句topX/Xpercent(不设置则输出全部)

4、查看查询的SQL语句

在查询设计器的空白处点击右键——查看SQL信息

5、设置查询去向(★★★非常重要★★★)

菜单栏——查询——查询去向,直接输入文件名,不加后缀名

注意:

如果查询去向为文本文件,则在前面的步骤全部做完时候,右键点击查看查询的SQL语句,然后将其复制粘贴到命令窗口中,在最后一句之后加上分号(;),然后在下一行输入:

tofile文件名.txt(有时候题目中会出现保存为文本文件,且不输出“列标头”,则语句为:

tofile文件名.txtplain)

6、关于是否需要分组(Groupby)(★★★非常重要★★★)

在题目的表述中,基本上都没有明确要求我们“按……分组”,但是是必须要操作的,分组字段可能为1个也可能为多个,根据一些关键词来分辨:

(1)在设计查询中,用到了函数表达式,则必须要设置分组

(2)题目中出现“每个、每门、各个、按”之类的词,他们后面的基本就是分组字段;或者在输出字段中出现“总分、人数”等。

举例:

基于xs表和cj表,查询每位学生参加考试的课程门数、平均成绩。

则:

分组字段为xh,即groupbyxs.xh

7、筛选条件(where)和分组满足条件(Having)的区分(★★非常重要★★)

Where:

题目中表述为“查询某字段为XXX的”,一般出现在题目的最前面

Having:

题目中表述为“查询结果仅输出XXX”,一般出现在题目中间或结尾

举例:

(1)基于js表和yxzy表,查询各院系职称为“教授”的人数、最小年龄

则筛选条件为:

wherezc=”教授”

(2)基于js表查询统计教师生日信息。

要求:

输出字段为……;查询结果仅输出年龄为5的整数倍的记录;……

则分组条件为:

havingmod(年龄,5)=0

8、设置筛选条件的时候,设计器中的“实例”相当于常量,需要加定界符。

9、排序:

先选择字段,后选择排序方式

二、常用的函数及表达式

1、计数(为统计个数)(★★★非常重要★★★)

(1)count(*)as万能表达,题目中没有特别要求的,可以通用

(2)Sum(IIF(条件,1,0))符合条件的记为1个,多个1个相加即为总个数

举例:

(1)输出字段为“学生的人数”

则:

Count(*)as人数

(2)输出字段为:

“女生的人数”

则:

Sum(IIF(xb=”女”,1,0))as女学生人数

(3)输出字段为:

“女生占总人数的比例”

则:

Sum(IIF(xb=”女”,1,0))/Count(*)as女生占总人数的比例

2、求和Sum()(★★★非常重要★★★)

平均数AVG()

最大/小值MAX()/MIN()

字段值为空Empty()(否定为:

!

Empty()或.NOT.Empty())

条件IIF()如果……,则……,否则……

3、常用的一些表达方式(★★★非常重要★★★)

(1)年龄:

year(date())-year(csrq)as年龄

AVG(year(date())-year(csrq))as平均年龄

MAX/MIN(year(date())-year(csrq))最大/最小年龄

(2)百分比(…率):

sum(iif(),1,0)/count(*)as百分比(…率)

(3)某某字段前几位作为…:

left(字段,数字)asXXX

 

菜单知识点

一、基础操作(★★★非常重要★★★)

1、添加快捷键。

在插入的菜单名称后面输入(\<按键)

如即为:

视图(\

2、添加访问键。

点击选项,然后在光标移动到箭标签的窗口,在键盘上快速按下需要设置的键。

(注意,是直接在键盘上按,而不是输入,且格式多位Ctrl+字母)

3、添加分组线。

在两个菜单表标题之间,输入\-即为分组线。

见上图。

4、添加系统菜单。

进入需要添加的子菜单的编辑状态——光标移动到需要插入的位置——点击插入栏——选择需要插入的系统菜单。

(注意:

一定要看清楚题目让添加的菜单是自定义的还是系统菜单。

系统菜单即为系统本身自带的,可以直接插入的菜单,名称快捷键等不可编辑)

 

5、设置菜单的提示信息(说明信息)。

选项——信息,然后在信息右边的文本框内输入文字,需要加双引号。

6、将菜单项追加到系统菜单。

菜单栏——显示——常规选项,然后再进行相关操作。

一般常考的是将某某菜单追加到系统菜单某某之前/后等。

(同时可以设置顶层表单;设置用来设置菜单的初始化代码;清理用来设置表单的清理代码)

7、保存菜单,并执行。

(不是预览,而是直接运行所设计的菜单)

【菜单】→【生成】命令,生成一个可执行的菜单文件。

(注意:

执行过后,通过“退出”来退出执行的菜单,或在VFP命令窗口中输入setsysmenutodefault)

二、跳过条件(★★★非常重要★★★)

跳过条件即为菜单不可用条件,表达式为真时,表示菜单不可用;表达式为假时,表示菜单可以操作。

1、设置某菜单不可用(无条件跳过),直接输入.T.

2、某某表打开时菜单才启用,才可操作(即跳过条件为:

表未打开)

语句为:

!

used(“表名”)

3、某某文件存在时菜单才可以操作

语句为:

!

File(“文件名.后缀名”)(注意:

表名和文件名必须加引号)

4、无表打开时,菜单不可用

语句为:

EMPTY(allas())

三、常用命令语句(★★★非常重要★★★)

1、运行程序文件DO程序名

运行表单DOform表单名

运行查询DO查询名.qpr

2、打印报表reportform报表名范围for条件表达式

(以预览方式打印报表reportform报表名previwe)

3、用消息框显示……MESSAGEBOX(“……”)

4、关闭所有已打开数据库closedatabasesall

关闭所有已打开的表closetablesall

四、常用过程代码(★★★非常重要★★★)

1、清除事件循环,退出VFP系统

Clearevents

quit(如果仅仅是清除,直接clear)

2、增加一条空记录

appendblank

增加一条新纪录

insertinto表(字段1,字段2,…)valuses(字段值1,字段值2,…)

3、表记录的显示方式

(1)以编辑方式显示edit

(2)在浏览窗口中显示browse

(3)在屏幕中列表显示listtoscreen

4、表的打开。

题目中让打开表,然后设置……。

打开表的代码为以下:

IF!

USED(“表名”)

use表名

ENDIF

★★★对于设置菜单的某个过程,如果需要先打开表,再进行设置的。

有的题目答案是上面的那种,而有的题目是直接use表。

对于这两种,第一种是进行一下判断,因为有的表可能在别的工作区中打开,所以直接use可能打不开。

所以用上面的语句可以保证任何情况都适用,而use则无法保重。

建议用上面的方法,虽然有的题目答案是直接use表名。

5、调用Windows自带应用程序(如计算器,记事本,播放器等)

RUN/N名称.exe

如调用windows系统自带计算器:

RUN/NCalc.exe

记事本:

RUN/NNotePad.exe

6、打开表,设置某某字段为主控索引

Use表名order字段名

7、以独占方式打开表以共享方式打开表

Use表exclusiveuse表shared

8、打开表,导出为excle文件,保存在C盘根目录

IF!

USE(“表”)

use表

ENDIF

Copytoc:

\文件名.xls

表单知识点

一、表单常考零碎知识点

1、表单最基本的引用方法(★★★非常重要,做题基础★★★)

(1)绝对引用:

即从外而内,从大到小,各个控件都是包含的关系

举例:

表单集>表单>页框>页>表格>列>列标头

Thisformset1.Form1.Pageframe1.Page1.Grid1.Column1.Header1

在最后写要修改的控件的属性,“=”之后填写修改的值

(即:

thisform.控件名.属性名=值),要注意值的字段类型

举例:

mand1.enabled=.T.

(2)相对引用:

是同一个表单内,两个相互独立的控件之间的引用,一般只用于某控件的某项事件代码中(Click事件,Init事件,InterActiveChange事件等等)

举例:

选项按钮组(Optiongroup1)某个事件中要引用文本框(text1)

this.parent.text1=thisform.text1=thisformset.form1.text1

注意:

要是某个控件的某个事件引用自己的某项属性,则直接this.属性=值

2、赋值

(1)将控件的某一属性(通常为value)赋值为变量(如X)

语句为:

X=this.value

(2)将系统函数值(如sys(13))赋值给控件的某个属性(通常为value)

如将系统函数sys(13)赋值为文本框(text1)的值

语句为:

thisform.text1.value=sys(13)

总之就是被赋值的在前面

3、表单自定义方法和控件相关事件的调用(★★★非常重要★★★)

(1)调用表单自定义方法,假设为ABC()

thisform.ABC()(注意:

引用自定义方法前面都是thisform,没有this)

如果ABC括号中有值的,即ABC(m,n),m、n可直接为控件的属性值

例:

thisform.ABC(thisform.text1.value,thisform.text2.value)

(2)调用自定义事件,假设为Init事件

thisform.Init()

如果具体到调用某个控件的某个具体事件,如调用命令按钮command1的Click事件

mand1.Click()

4、刷新表单thisform.refresh

关闭(释放)表单thisform.release(★★★非常重要★★★)

鼠标指针指向首行、顶部、第一项gotop

5、定义数组X

(1)DemissionX

(1)

定义全局/私有变量XPublic/PrivateX

6、当某事件在命令窗口中涉及到某项属性的加减乘除的,直接计算,不用加括号(包括属性与数值的加减乘除、属性与属性之间的加减乘除)

举例:

thisform.text1.value*2

thisform.text1.value+thisform.text2.value

7、表单的“数据环境”

位置在表单设计器上面的固定菜单里,用于存放表,可以将表或者表的某个字段直接拖进表单设计器中(如图第二个按钮)

8、设置主控索引

setorderto字段名(如setordertocj)

9、筛选记录

setfilterto字段

(如果自定义变量X要求显示cj字段值时,setfiltertocj=X)

注意:

如果setfilterto后面不加字段名,相当于筛选全部,也就是不进行筛选

10、有些控件当中要套嵌有其他控件,如表格、页框等

(1)删除控件中的控件:

在属性编辑栏中选中要删除的控件,使其处于编辑状态,然后点击到表单设计器中该控件的位置,按Delete删除

(2)在控件中添加控件:

在属性编辑栏中选择要添加的母控件,点击控件设计器中要添加的控件,在表单设计器中需要添加的位置点击一下即可

11、跟字体相关的一些属性设置,开头均为Font****

加粗FontBold字体名称FontName

倾斜FontItalic字体大小FontSize

下划线FontUnderline字体颜色FontColor

另外:

对齐方式Alignment

12、设置焦点

this.parent.控件名(容器).SetFocus

 

13、同时设置多个相同控件的相同属性为相同的值

thisform.SetAll(“属性名称”,属性值,”控件名称”)

注意1:

这里的控件名称,必须是控件的完整英文名称,如列表框(ListBox)、编辑

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2