1“SCAN ENDSCAN”命令是当前表中顺序移动记录指针,并对满足指定条件的每条记录执行“SCAN”与“ENDSCAN”之间的命令块。不打开表,自然就谈不上在 表中移动记录指针,并对记录执行命令了。 答案选择B是对的,但题目本身不严谨,因为:在VF,数据库与表是两个概念,表可以是属于某个数据库的“数据库表”,也可以是不属于任何数据库的“自由表”;执行“SCAN ENDSCAN”必须打开的是“表”,而不是“数据库”,例如,根本就不建立数据库,仅对一个当前打开的自由表也可以执行“SCAN ENDSCAN”。这个题目混淆了VF的“数据库”与“表”,应当改为“必须打开某一个表”。“书上的例子没有打开”可能是省略了USE 命令,但在解释命令时一定有“当前表”之类的限定。总之,只能对当前工作区打开的表执行“SCAN ENDSCAN”
2“&”是执行宏替换的命令,它把内存变量和数组元素的内容作原字符串使用,它后面紧接的变量确实只能是字符型,但该变量在执行宏替换时,可以根据给该变量赋值时的书写格式,作为VF支持的各种数据类型使用。例如:执行已知X="134"后,&X 就是 134,&X+478 就是 134+478,两者结果完全一样(此时,虽然 X 本身是字符型变量,它的值是"134",但在执行 &X+478 时,用数值 134 取代 &X,即实际执行的是 134+478,结果是 612;如果写成 X="'134'" 或 X='"134"',则在执行 &X +478 时,用字符串 "134" 取代 &X,即实际执行的是 "134"+478,将发生“ *** 作数类型不匹配”错误,得不到结果;要得到"134478"的结果,两条语句应该是先执行 X="'134'" ,再执行 &X +"478")
X 赋值格式 &X 的数据类型 &X 的等效表达
X="134" 数值型 134
X="'134'" 字符型 '134'
X="{^1999-11-25}" 日期型 {^1999-11-25}
X="T" 逻辑型 T
……
1、在VFP中输入命令:crea 学生基本信息表,按窗口填写即可;
2、repl all 总分 with 英语+计算机+语文,平均分 with average(英语,计算机,语文)
建立程序:modify command <程序名>
clear
close all
(1)计算每条记录的总分
use 学生表
replace all 总分 with 数学+语文+英语+数据库
(2)将总分大于等于360分的女同学的总分提高10%
replace all 总分 with 总分11 for 总分>=360
(3)将总分大于等于320分的记录,其奖学金评定为800元
replace all 奖学金 with 800 for 总分>=320
求总分字段最大值,最小值
go top
a=总分
min=1000
max=0
do while ! eof()
b=总分
if a>b
max=a
if b<min
min=b
endif
else
max=b
if a<min
min=a
endif
endif
skip
enddo
(4)将总分最高的记录其奖学金增加500元,并显示该记录
replace 奖学金 with 奖学金+500 for 总分=max
display
(5)将总分最低的记录作逻辑删除,并显示该记录
locate for 总分=min(总分)
delete
display
use
1 命令DISPLAY FOR RECORD( )=3不能显示当前表的第3条记录。( 错误)
2 不同数据记录的记录编号可以是相同的。(正确 )
3 表单的数据源可以是表,也可以是视图。( 正确)
4 索引查询命令seek只能使记录指针指向表中满足条件的第一个记录。(正确 )
5 表的数据记录也存储在数据库文件中。(正确 )
6 @…say…get语句中的get子句必须用read语句激活,才能修改指定变量的值。( 正确 )
7 在表单的常用方法中,显示表单的方法是SHOW。(正确 )
8 有备注型字段的表文件,当删除所对应的表备注文件后,该表文件仍可打开。(错误 )
9 打开表文件时,VFP自动打开该表的结构索引文件。( 正确)
10 查询文件不能更新数据表中的数据。( 正确)
13 Visual FoxPro编程基础
--------------------------------------------------------------------------------
VFP是由FoxPro发展而来,并且根据“可视化编程”的需要,增加了一些新的 *** 作。它的语句、函数和语法规则与Xbase(如dBASE、FoxBase、FoxPro)语言基本上是兼容的,而且功能更加强大。
一、数据和数据类型
1.数据的分类
数据是计算机程序处理的对象,也是运算产生的结果。
按数据的类型分类:数值型数据、字符型数据、逻辑型数据等。
按数据的处理层次分类:常量、变量、函数和表达式。
2.数据的类型
数据类型是数据的基本属性。对数据进行 *** 作的时候,只有同类型的数据才能进行 *** 作,若对不同类型的数据进行 *** 作,将被系统判为语法出错。
(1)字符型(Character):由字母(汉字)、数字、空格等任意ASCII码字符组成。
字符数据的长度为0~254,每个字符占1个字节。
(2)货币型(Currency):在使用货币值时,可以使用货币型来代替数值型。
货币型数据取值的范围是:
-9223372036854775807~9223372036854775807
小数位数超过4位时,系统将进行四舍五入的处理。每个货币型数据占8个字节。
(3)日期型(Date):用以保存不带时间的日期值。
日期型数据的存储格式为“yyyymmdd”其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位。
日期型数据的表示有多种格式,最常用的格式为mm/dd/yyyy。
日期型数据取值的范围是:公元0001年1月1日一公元9999年12月31日。
(4)日期时间型(DateTime):用以保存日期和时间值。日期时间型数据的存储格式为 “yyyymmddhhmmss”其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位,hh为时间中的小时,占2位,mm为时间中的分钟,占2位,ss为时间中的秒,占2位。
日期时间型数据中可以只包含一个日期或者只包含一个时间值,缺省日期值时,系统自动加上1999年12月31日,省略时间值时,则自动加上午夜零点。
(5)逻辑型(Logical):用于存储只有两个值的数据。存入的值只有真(T)和假(F)两种状态,占1个字节。
(6)数值型(Numeric):用来表示数量,它由数字0~9、一个符号(+或-)和一个小数点()组成。数值型数据的长度为1~20,每个数据占8个字节。
数值型数据取值的范围是:
-09999999999E+19~09999999999E+20
以下数据类型只能被用于数据表中的字段:
(7)双精度型(Double):用于取代数值型,以便能提供更高的数值精度。双精度型只能用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型数据的小数点的位置是由输入的数据值来决定的。每个双精度型数据占8个字节。
(8)浮点型(Float):只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。
(9)通用型(General):用于存储OLE对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、一个字处理器的文本、等,是由其他应用软件建立的。
(10)整型(Integer):用于存储无小数部分的数值,只能用于数据表中字段的定义。在数据表中,整型字段占用4个字节,取值范围是:
-2147483647~2147483647
整型以二进制形式存储,不像数值型那样需要转换成ASCII字符存储。
(11)备注型(Memo);备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用10个字节,并用这10个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。
备注型字段的实际内容变化很大,不能直接将备注内容存在数据表(DBF)文件中。
系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为.DBT。
由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理。
二、常量与变量
在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。
1.常量
常量是一个命名的数据项,在整个 *** 作过程中其值保持不变。如PI值,即3.1415926535是数值型常量。 VFP定义了如下类型的常量:
数值型常量,如:20,16,100,1
字符型常量,用单引号或双引号括起来的字符串,如:"ABCD"
逻辑型常量,只有两种:T和F.
日期型常量和日期时间型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.变量
VFP有3种形式的变量:
内存变量——存放单个数据的内存单元
数组变量——存放多个数据的内存单元组
字段变量——存放在数据表中的数据项
每个变量都有一个名称,叫做变量名,VFP通过相应的变量名来使用变量。变量名的命名规则是:
(1)以字母、数字及下划线组成,中文VFP可以使用汉字作变量名。
(2)以字母或下划线开始,中文VFP可以汉字开始。
(3)长度为1~128个字符,每个汉字占2个字符。
(4)不能使用VFP的保留字。
变量的作用域包括定义它的过程以及该过程所调用的子过程范围。
三、运算符与表达式
运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为 *** 作数。表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等 *** 作数以合理的形式组合而成。
表达式可用来执行运算、 *** 作字符或测试数据,每个表达式都产生唯一的值。表达式的类型由运算符的类型决定。在VFP中有5类运算符和表达式:
算术运算符和算术表达式
字符串运算符和字符串表达式
日期运算符和日期表达式
关系运算符和关系表达式
逻辑运算符和逻辑表达式
1.算术运算符与算术表达式
算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。例如:502+(70—6)/8的运算结果为108.00。算术表达式的格式为:
<数值1><算术运算符1><数值2>[<算术运算符2><数值3>…]
(1)算术运算符。
VFP提供的算术运算符如表1。1所示。在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运算符。它们运算的含义与数学中基本相同。
表11 算术运算符
运算符 名称 说 明
+ 加 同数学中的加法
- 减 同数学中的减法
乘 同数学中的乘法
/ 除 同数学中的除法
^或 乘方 同数学中的乘方,如4^3表示43
% 求余 12%5表示12除以5所得的余数2
算术运算符的优先权依次为:
( ) → ^、 → 、/ → % → +、-
(2)表达式的书写规则。
算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意:
每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。例如:23要写成2^3,Xl十X2要写成X1+X2。
原来在数学表达式中省略的内容必须重新写上。例如:2X要写成2X。
所有括号都用小括号(),且括号必须配对。例如:3[x+2(y+z)]必须写成3(x+2(y+z))。
要把数学表达式中的有些符号,改成VFP中可以表示的符号。例如:要把2πr改为2pir。
2.字符串运算符与字符串表达式
一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。它可以是一个简单的字符串常量,也可以是若干个字符串常量或字符串变量的组合。VFP提供的字符运算符有两个(其运算级别相同),如表1-2所示。
表1-2 字符运算符
运算符 名称 说明
+ 连接 将字符型数据进行连接
- 空格移位连接 将前一数据尾部的空格移到后面数据的尾部
字符串表达式的格式为
<字符串1><字符串运算符1><字符串2>
[<字符串运算符2><字符串3>…]
例如:
"ABCl23"+"666xyz"连接后结果为:"ABCl23666xyz"
"计算机"+"世界" 连接后结果为:"计算机世界"
"ABC "-"DEFG" 连接后结果为:"ABCDEFG "
"ABC "+"DEFG" 连接后结果为:"ABC DEFG "
字符串表达式的值为字符串。
在字符串中嵌入引号,只需将字符串用另一种引号括起来即可。例如:
QM="'"
S=S+QM+ALLTRIM(THISEdit1Value)+QM+","
3.日期时间运算符与日期时间表达式
日期型表达式由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行加“+”、减“-”运算。有下面3种情况:
两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如:
{^1999/12/19}-{^1999/11/16}结果为数值型数据:33
一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数据(向后推算的日期)。例如:{^1999/11/16}+33结果为日期型数据:{^1999/12/19}
一个表示天数的数值型数据可从日期型数据中减掉它,其结果仍然为一日期型数据(向前推算的日期)。例如:{^1999/12/19}-33 ,结果为日期型数据:{^1999/11/16}
VFP将无效的日期处理成空日期。
4.类与对象运算符
类与对象运算符专门用于实现面向对象的程序设计。有以下两种:
.——点运算符,确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。
::——作用域运算符,用于在子类中调用父类的方法。
5.名表达式
在VFP中,许多命令和函数需要提供一个名。可在VFP中使用的名有:
表/DBF文件名 、 表/DBF别名 、 表/DBF字段名 、 索引文件名、文件名、 内存变量和数组名、窗口名、 菜单名、表单名、 对象名、 属性名、 …
在VFP中定义一个名时,需要遵循以下原则:
名中只能使用字母或下划线开始。
名中只能使用字母、数字和下划线字符。
不能使用VFP的保留字。
名的长度可以为1—128个字符,但自由表中的字段名、索引标记名最多为10个字符。文件名按 *** 作系统的规定。
名不是变量或字段,但是可以定义一个名表达式,以代替同名的变量或字段的值。
名表达式为VFP的命令和函数提供了灵活性。将名存放到变量或数组元素中,就可以在命令或函数中用变量来代替该名,只要将存放一个名的变量或数组元素用一对括号括起来。如:
STORE "CITY" TO a
REPLACE (a) WITH "Beijing"
字段名CITY被存放在变量a中,在使用REPLACE命令时,名表达式(a)将用字段名代替变量。这种方法称为间接引用。
四、函数
对于用户来说,程序设计语言中的函数与数学上的函数没有什么区别,使用函数要有参数(自变量),可以从函数得到一个返回的值(因变量)。而从程序设计的角度来看,函数是子程序的一种,它能完成一种特定的运算。
1.函数的分类
VFP的函数有两种,一种是用户自定义的函数,一种是系统函数。自定义函数由用户根据需要自行编写 , 系统函数则是由VFP提供的内部函数,用户可以随时调用。
VFP提供的系统函数大约有380多个,主要分为:数值函数、字符处理函数、表和数据库函数、日期时间函数、类型转换函数、测试函数、菜单函数、窗口函数、数组函数、SQL查询函数、位运算函数、对象特征函数、文件管理函数以及系统调用函数等14类。
2.常用函数
VFP提供了大量的系统函数供编程人员使用,下面列出常用的一些函数。
(1)数学函数
函数格式 说 明
ABS(N) 求N的绝对值
COS(N) 求N的余弦函数
EXP(N) 求N的e指数函数
INT(N) 取N的整数,对负数取较小的整数
LOG(N) 求N的自然对数
MAX(N1,N2) 求N1、N2中的最大者
MIN(N1,N2) 求N1、N2中的最小者
MOD(N1,N2) 求N1除以N2的余数
PI() 求圆周率
RAND(N) 产生0—1之间的随机数
ROUND(N1,N2) 按N2指定的小数位数求N1四舍五入后的值
SIGN(N) 求N的正负符号
SIN(N) 求N的正弦函数
SQRT(N) 求N的平方根
TAN(N) 求N的正切函数
(2)字符串函数
函数格式
说 明
ALLTRIM(C) 去掉C的前导空格和尾随空格
ASC(C) 求C中最左边一个字符的ASCII码值
AT(C1,C2) 返回C1在C2中出现的开始位置(整数值)
LEFT(C,n) 从字符串C的左边取长度为n的子串
LEN(C) 求字符串C长度
RIGHT(C,n) 从字符串C的右边取长度为n的子串
L0WER(C) 将字符串C中的大写字母转换为小写字母
SPACE(n) 返回n个空格字符组成的字符串
SUBSTR(C,n[,m]) 从字符串C中提取从n开始的m个字符的子串,若省略m则取n开始的所有字符
UPPER(C) 将字符串表达式中的小写字母转换为大写字母
(3)日期函数
函数格式 说 明
DATE() 系统当前日期
TIME() 系统当前时间
DATETIME() 系统当前日期和时间
DOW(D) 取日期表达式D的星期号(1为星期天)
YEAR(D) 取日期D的年份值
MONTH(D) 取日期D的月份值
DAY(D) 取日期D在月份中的天数值
HOUR(D) 取时间D中的小时数
MINUTE(D) 取时间D中的分钟数
SEC(D) 取时间D中的秒数
(4)类型转换函数
函数格式
说 明
CHR(ASCII码) 返回与ASCII码相应的字符
CTOD(C) 转换C表达式为对应的日期值
CTOT(C) 转换C表达式为对应的日期时间值
DTOC(D) 转换日期表达式D为字符串
STR(N,n,m) 转换数值表达式N为数字字符串
TTOC(D) 转换日期时间表达式D为字符串
VAL(C) 返回数字字符串C对应的数值
五、对象的属性、事件与方法
对象(object)在现实生活中是很常见的,如:一个人是一个对象,一台PC机是一个对象。如果将一台PC机拆开来看便有“显示器、机箱、软盘驱动器、硬盘、键盘、鼠标器…”,每一个又都是一个对象,即PC机对象是由多个“子”对象组成的。此时PC机又称为一个包容器(Container)对象。在可视化编程中,对象是应用程序的基本元素,常见的对象有表单、文本框、列表框等。
从可视化编程的角度来看,对象是一个具有属性(数据)和方法(行为方式)的实体。一个对象建立以后,其 *** 作就通过与该对象有关的属性、事件和方法来描述。
1、对象的属性
属性(Propeny)是指对象的一项描述内容,用来描述对象的一个特性,不同的对象有不同的属性,而每个对象又都由若干属性来描述。在可视化编程中,常见的属性有标题(Caption)、名称(Name)、背景色(Backcolor)、字体大小(FontSize)、是否可见(Visible)等。通过修改或设置某些属性便能有效地控制对象的外观和 *** 作。
属性值的设置或修改可以通过属性窗口来进行,也可以通过编程的方法在程序运行的时候来改变对象的属性。在程序中设置属性的一般格式是:
表单名对象名属性名=属性值
2.对象的事件
所谓事件(Event),是由VFP预先定义好的、能够被对象识别的动作,如单击(Click)事件、双击(DblClick)事件、装入(Load)事件、移动鼠标(MouseMove)事件等,不同的对象能识别的事件不全相同。对象的事件是固定的,用户不能建立新的事件。为此,VFP提供了丰富的内部事件,这些事件足以应付Windows中的绝大部分 *** 作需要。
事件过程(Event Procudure)是为处理特定事件而编写的一段程序。当事件由用户触发(如C1ick)或由系统触发(如Load)时,对象就会对该事件作出响应(Respond)。响应某个事件后所执行的程序代码就是事件过程。
3.对象的方法
方法(Method)是与对象相关联的过程,但又不同于一般的Visual FoxPro过程。方法程序紧密地和对象连接在一起,并且与一般Visual FoxPro过程的调用方式也有所不同。
与事件过程类似,VFP的方法属于对象的内部函数,只是方法用于完成某种特定的功能而不一定响应某一事件,如添加对象(Addobject)方法、绘制矩形(Box)方法、释放表单(Release)方法等。方法也被“封装”在对象中,不同的对象具有不同的内部方法。VFP提供了百余个内部方法供不同的对象调用。与事件过程不同的是,根据需要可由用户自行建立新方法。
4.事件与方法的程序调用
事件过程由事件的激发而调用其代码,也可以在运行中由程序调用其代码,而方法的代码只能在运行中由程序调用。
在程序中调用事件代码的格式是:
表单名对象名事件名
在程序中调用对象方法的格式是
[[<变量名>]=]表单名对象名方法名
六、控件与对象
Visual FoxPro编程的最大特点,就是在可视的环境下以最快的速度和效率开发具有良好用户界面的应用程序,其实质就是利用VFP所提供的图形构件快速构造应用程序的输入输出屏幕界面。控件(Control)是某种图形构件的统称,如“标签控件”、“文本框控件”、“列表框控件”等,利用控件创建对象则是构造应用程序界面的具体方法。
1.常用控件和内部对象
常用控件由VFP的基类提供,共21个,每个控件用“表单控件”按钮表示,如表1-7所示(P17)。
2.表单对象
表单(Form)是应用程序的用户界面,也是进行程序设计的基础。各种图形、图像、数据等都是通过表单或表单中的对象显示出来,因此表单是一个容器对象。
在FoxPro的早期版本中表单被称为屏幕(Screen),在Visual Basic中则称为窗体。
(1)表单的结构。
VFP的表单具有和Windows应用程序的窗口界面相同的结构特征。一个典型的表单有图标、标题、极小化按钮、极大化按钮、关闭按钮、移动栏、表单体及其周围的边框。其中除了表单体之外的所有特征都可以部分或全部从表单中被删除。
(2)表单属性
在VFP中,表单的属性就是表单的结构特征。通过修改表单的属性可以改变表单的内常用的表单属性如表1—8所示。
属性名 作 用
AutoCenter 用于控制表单初始化时是否总是位于VFP窗口或其父表单的中央
BackColor 用于确定表单的背景颜色
BorderStyle 用于控制表单是否有边框:系统(可调)、单线、双线
Caption 表单的标题
Closable 用于控制表单的标题栏中的关闭按钮是否能用
ControlBox 用于控制表单的标题栏中是否有控制按钮
MaxButton 用于控制表单的标题栏中是否有极大化按钮
MinButton 用于控制表单的标题栏中是否有极小化按钮
Movable 用于控制表单是否可移动
TitleBar 用于控制表单是否有标题栏
WindowState 用于控制表单是极小化、极大化还是正常状态
WindowType 若表单是模式表单,则用户在访问windows屏幕中其他任何对象前必须关闭该表单
(3)表单的事件与方法。
就像属性那样,只有部分的表单事件与方法经常被使用,很多事件与方法很少被使用,除非你在编写一个非常复杂的应用程序。可以在代码窗口的“过程”下拉列表框中看到所有表单事件与方法的列表,也可以在“属性”窗口的“方法程序”选项卡中看到所有表单事件与方法的列表。
下面只列举那些最常用的事件与方法。
常用的表单事件:
Load事件——当表单被装入内存时发生;
Init事件——当表单被初始化时发生;
Activate事件——当表单被激活时发生。
上述事件被激发的顺序为Load、Init、Activate。
Destroy事件——当表单被释放时发生;
Unload事件——当表单被关闭时发生。
上述事件被激发顺序为Unload、Destroy。
Resize事件——当用户或程序去改变表单的大小时
发生。
常用的表单方法:
Hide方法——隐藏表单;
Show方法——显示表单;
Release方法——释放表单;
Refresh方法——刷新表单。
3.对象的引用
(1)对象的包容层次。
VFP中的对象根据它们所基于的类的性质可分为两类:容器类对象和控件类对象。
容器类对象可以包含其他对象,并且允许访问这些对象,例如表单集、表单、表格等控件类对象只能包含在容器对象之中,而不能够包含其他对象,例如命令按钮、复选框等。表1-9(P20)列出了每种容器类对象所能包含的对象。
(2)对象的引用。
作为应用程序的用户界面,表单上可以包含许多对象,而这些对象又有可能具有互相包含的层次关系。若要引用一个对象,需要知道它相对于容器层次的关系。例如,如果要在表单集中处理一个表单的控件,则需要引用表单集、表单和控件。
1)绝对引用:通过提供对象的完整容器层次来引用对象。
若要使表列中的控件无效,需要提供以下地址:
FormsetFormPageFramePageGridColumnControlEnabled=F
2)相对引用:在容器层次中引用对象时,可以通
过快捷方式指明所要处理的对象。
例如:THISFORMSETFrmlCmdlCaption="关闭"
表示将本表单集的名为Fnnl的表单中的Cmdl对象的标题(Caption)属性设置为"关闭"。
THISFORMCmdlCaption="关闭"
表示将本表单的名为Cmdl对象的标题(Caption)属性设置为"关闭"。
THIS.Caption=”关闭”
对于需要改变标题的控件,表示将本对象的标题(Caption)属性设置为"关闭"。
THIS.Parent.BackColor=RGB(192,0g0)
表示将本对象的父对象的背景色设置为暗红色。
表1—10列出了一些属性和关键字,这些属性和关键字允许更方便地从对象层次中引用对象。
表1-10 引用对象的属性和关键字
属性或关键字 引 用
ActiveControl 当前活动表单中具有焦点的控件
ActiveForm 当前活动表单
ActivePage 当前活动表单中的活动页
Parent 该对象的直接容器
THIS 该对象
THISFORM 包含该对象的表单
THISFORMSET 包含该对象的表单集
说明:只能在方法程序或事件过程中使用THIS、
THISFORM和THISFORMSET。
只指出你作错的题。
第17题
选 B)1
第19题
选 B)表从数据库移出后,仍然具有数据库表的特性
注:表从数据库移出后,成为自由表,不具有数据库表的特性。
第20题
选 C)101
注:指针到达最后一条记录尾部后不会再移动。
第21题
选 B)SET RELATION TO 学号 INTO ST
第22题
选 D)SELECT FF
第23题
选 B)DELETE
第26题
选 D)视图
第28题
选 B)1
注:不管条件是否成立,S的值都为1,然后输出。
前面的估计都会 *** 作吧。
我把后面的命令部分给你写一下。
打开表stud1dbf
Use stud1dbf
浏览stud1dbf的结构信息,浏览stud1dbf的记录信息
Display structure
List
修改表stud1dbf的结构,添加字段年龄/N/2,并设置年龄字段与生日字段的记录有效性规则
Modify structure
字段名:年龄;类型:INT
Replace 年龄=year(date())-year(生日)
在表stud1dbf后追加一条记录
Append blank
显示姓“张”的同学的信息
List for left(姓名,2)=”张”
显示stud1dbf中所有男同学的信息
List for 性别=”男”
逻辑删除记录号为5、6、7的记录
Delete all for recn()>=5 and recn()<=7
恢复记录号为5、6的记录
RECALL for recn()>=5 and recn()<=6
删除已有删除标记的记录
pack
关闭stud1dbf
Use
打开stud2dbf
Use stud2dbf
计算每个学生的总分,总分=数学+语文+综合。
Replace all 总分 with 数学+语文+综合
显示总分成绩为600分以上的学生学号、总分
List 学号,总分 all for 总分>=600
按总分由高到低对stud2 dbf排序生成新表stud3 dbf,新表中包含学号、数学、语文、综合成绩、总分字段
Sort on 总分 field 学号,数学,语文,综合成绩,总分 to stud3 dbf
将总分为600分以上的学生人数统计出来存入变量X中
Count all for 总分>=600 to X
计算所有学生的语文总分,数学总分,分别存入变量c、d中(用sum)
Sum all 语文,数学 to c,d
计算所有学生的语文平均分,数学平均分,分别存入变量c、d中(average)
average all 语文,数学 to c,d
关闭stud2 dbf表
Use
打开表stud3 Dbf,用浏览窗口观察排序后的数据,
Use stud3
在表stud3dbf的第五行插入一条记录,并输入内容
Go 5
Insert blank before
(输入内容)
关闭表stud3 Dbf
Use
打开STUDENTdbc数据库设计器,如果stud2表不在库中,将其添加,否则,
不做 *** 作
modify database STUDENTdbc
添加或不添加stud2表
在第一工作区中打开stud1 dbf表,浏览表的记录
Use stud1 Dbf in 1
在第二工作区中打开stud2 dbf表,浏览表的记录
Use stud2 Dbf in 2
在第一工作区中按学号建立主索引,索引名为xh
Select 1
点击VF的标题栏的“显示”,再选中“表设计器”。选中“索引”,在“索引名”一栏输入关键字,再在“类型”中选“主索引”就OK了
按生日建立普通索引,索引号为bir
Index on 生日 tag bir
确定xh为主控索引。
“表设计器”—》“索引”中设置
用list或brow命令列出所有学生信息(观察与无索引之前的不同)
Browse
在第二工作区中按学号建立候选索引,索引名为xh
同上
以学号字段建立俩个表之间的关联,父表为stud1 dbf,子表为stud2dbf,用brow命令打开两个表的浏览窗口,观察两表之间的数据联动。(用set relation 命令建立临时联系)
Select 1
set relation to xh into stud2
当前工作区为1,通过list命令列出所有学生学号、姓名、年龄、数学、语文、综合、总分字段的值。
Select 1
List 学号,姓名,年龄,数学,语文,综合,总分
根据自己的理解设置参照完整数(建立两个表之间永久联系再设置)
自己的理解
关闭工作区1中的表。
Use in 1
关闭工作区2中的表。
Use in 2
这是等级考试上机题库的吧?
第三步,对项目文件中点击,打开对数据库“供应零件”选择修改,即打开数据库的界面,对“零件”右击选择修改,将零件号设置为主索引,同理,将“供应”的零件号设置普通索引,然后用鼠标点击带有钥匙标识的“零件号”拖向“供应”的零件号,至此,建立了永久联系
第四步,右击“供应”选择修改,在字段有效性部分,对“规则”输入"数量>0 and 数量<9999”,在信息部分输入"数量超范围"
以上就是关于跪求VFP高手进来解答全部的内容,包括:跪求VFP高手进来解答、VFP数据库基本 *** 作,求解答、vfp编程题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)