第二章:VF程序设计基础
VF基础知识总结(1-8章)

11.MIN()函数字符函 Nhomakorabea:日期时间函数:
1.LEN()函数
1.DATE()函数
2.LOWER()函数
2.TIME()函数
3.UPPER()函数
3.DATETIME()函数
4.SPACE()函数
4.YEAR()函数
5.TRIM()函数
5.MONTH()函数
6.LTRIM()函数
6.DAY()函数
小结:排序与索引的区别
1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关 键字,不需要打开表;
2、排序生成一个新表,索引是针对原表生成一个指针文件 3、升降序的表示与书写方式不同:排序/a升序/d降序/c不区分大小写,索引 ascending和descending。 4、排序与索引的to的含义不同,排序的to 表示到一个新表,索引的to表示建立 单索引文件。
3、各类文件选项卡: ①“全部”选项卡(以下五项的全部内容) ②“数据”选项卡(数据库、自由表、查询、视图) ③“文档”选项卡(表单、报表、标签) ④“类”选项卡 ⑤“代码”选项卡 ⑥“其他”选项卡
第二章 数据与数据运算
1、字段数据类型(11种)
字符型
C
数值型
N
逻辑型
L(1)
日期型
D(8)
日期时间型 T(8)
****************************************************************** 小结:
1、用use 打开表时,记录号位于第一条记录 2、执行带all的命令,记录指针指向eof()=.T. 3、当为.T.时,bof的记录号总是为1,eof的记录号是记录数+1 4、空表的总记录是0,bof的记录号是1,eof的记录号是1
第二章 VF基础

二、常量与变量
(一)常量
在命令或程序中直接引用的,其值固定不变的数据。
1、字符型常量 例:‘中国’、‚ABC”、 [123] 2、数值型常量 例:-123.56,789 3、浮点型常量
例:-123e+4
4、逻辑型常量 真:.T. .t. .Y. .y.
假:.F.
.f.
.N.
.n.
5、日期型与日期时间型常量 1)赋值方法 传统格式日期常量: 日期型 严格格式日期常量:{^1999/05/05} 日期时间型: {^1999/05/05 9:30:00 a} (1)传统的日期格式为{mm/dd/yy}或者{mm/dd/yyyy} 。 (2)严格的日期格式:{^yyyy-mm-dd}可以在任何 情况下使用, 而传统的日期格式只能在 SET STRICTDATE TO 0下使用。
汉字
同类字符顺序递增
拼音
比较规则 > < >=
<=
从关系运算符的左边开始
例: ?“ab”<“abc”,“1234”<“ABCD”
? “地方‛<“中央‛ = != 从右串开始比较,比较完则完。 例:?‚ab”=“abc” ?‚abc”=“ab” == 两串完全相同,结果才为真 例:?‚abc”==“ab” ?‛ABC”==“ABC”
设置精确比较环境:
set exact on/off
$ 左边字符串是否包含在右边字符串中 例: ‚ab”$ “acdabde” “ab”$ “aceebe”
说明:A用双等号==时只有当两个字符串完全相同时运算结果才是逻辑真,否则为逻辑假。
B用单等号=时运算结果与SET EXACT 的设置有关。系统默认为OFF,字符串的比 较以右边的字符串为目标,右字符串结束即终止比较。当处于 ON时,先在较短 的字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较。
VF程序设计基础

第二章 Visual FoxPro程序设计基础
功能: ①格式1表示清除所有内存变量。 ②格式2表示清除指定的内存变量。 ③格式3表示清除所有的内存变量。在人机会话状态时 其作用与格式1相同。如果出现在程序中,则应该加 上短语ENTENDED,否则不能删除全局内存变量。 ④格式4表示选用LIKE短语清除与通配符相匹配的内存 变量,选用EXCEPT短语清除与通配符不相匹配的内存 变量。
第二章 Visual FoxPro程序设计基础
1.简单的内存变量 变量都有名,通过变量名来使用变量中存放的数 据(访问变量值)。 向简单内存变量赋值不用先定义,赋值时变量不 存在将自动产生。有两种赋值格式: ① <内存变量名>=<表达式> ② STORE <表达式> TO <内存变量名表> ●等号一次给一个变量赋值。STORE 命令可以同时给多 个变量赋相同值,变量名间用逗号隔开。
第二章 Visual FoxPro程序设计基础
③SET CENTURY ON | OFF | TO [ 世纪值] ROLLOVER [年份参照值] 命令功能:用于决定如何显示或解释一个日期数据 的年份。ON显示世纪,即用4位数字表示年份。 OFF不显示世纪,即用2位数字表示年份。该项是 系统默认设置。 ④SET STRICTDATE TO [0|1|2] 命令功能:用于设置是否对日期格式进行检查。 0:不进行严格的日期格式检查。 1:进行严格的日期格式检查。为系统默认设置。 2:进行严格的日期格式检查,并且对CTOD和CTOT 函数的格式也有效。
全国计算机等级考试二级VF全套资料

全国计算机等级考试二级VF全套二级VF学习讲义 (1)第一章前言――从零开始 (2)第一章数据库基础知识 (3)第2章V ISUAL F OX P RO 程序设计基础 ............................................................................ 错误!未定义书签。
第3章V ISUAL F OX P RO 数据库及其操作 ........................................................................ 错误!未定义书签。
第4章关系数据库标准语言SQL ........................................................................................ 错误!未定义书签。
第5章查询与视图 ................................................................................................................ 错误!未定义书签。
第6章表单设计与应用 ........................................................................................................ 错误!未定义书签。
第7章菜单设计与应用 ........................................................................................................ 错误!未定义书签。
第8章报表的设计和应用 .................................................................................................... 错误!未定义书签。
VF教案第2章第1节

第二章 Visual Foxpro 程序设计基础
格式 1:SCATTER [F1ELDS<字段名表>] [MEMO] TO <数组名>? [BLANK] 功能:复制表的当前记录的指定字段到数组元素,若不指定字段 ,则复制除备注型 M 和通用型 G 之外的全 部字段。 格式 2:SCATTER [F1ELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO]TO<数组名>[BLANK] 功能:复制用通配符指定包括或排除的字段 ②将数组数据复制到表的当前记录。 格式 1:GATHER FROM <数组名>[FIELDS <字段名表>][MEMO] 功能:将数组中的数据作为一个记录复制到表的当前记录中,若数组元素个数多于记录中字段的个数,则 多余部分被忽略。 格式 2:GATHER FROM <数组名>[FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO] 功能:复制用通配符指定包括或排除的字段
4
酒泉职业技术学院 VF 教案
说明:①选用 LIKE 只显示与通配符相匹配的内存变量。 ②[TO PRINTER]显示的同时送往打印机; [TO FILE] 存入给定文件名的文本文件.TXT 中。 ③ LIST 滚动显示,DISP 分页显示 4.内存变量的清除 格式 1:CLEAR MEMORY 格式 2:RELEASE<内存变量名表> 格式 3:RELEASE ALL [EXTENDED] 格式 4:RELEASE ALL [LIKE<通配符>|EXCEPT<通配符>] 5.表中数据与数组数据之间的交换 ①将表的当前记录复制到数组
VF程序设计基础

Enddo
?“s=”,s cancel
?“s=”,s
cancel
3、“指针”型循环
“指针”型循环控制语句,根据用户设置在表中的当前 记录指针,决定循环体的执行次数。 ⑴格式:SCAN [〈范围〉][for/while 条件表达式] 〈命令序列〉
ENDSCAN
⑵功能:该语句在指定的范围内,依次寻找满足条件的记 录,并对找到的记录执行命令序列。
CASE〈条件表达式N〉 〈命令序列N〉 [ OTHERWISE 〈命令序列N+1〉] ENDCASE
4、注意结构的完整性。
条件1
Y Y
命令序列1 命令序列2
N
条件2 N 条件N N otherwise N
Y Y
命令序列N 命令序列N+1
ENDCASE后
例3: 求Y(X)的值。
1
Y= 0
(x>0)
(x=0)
-1
(x<0)
SET TALK OFF INPUT “请输入X” TO X DO CASE CASE X>0 Y=1 CASE X=0 Y=0 OTHERWISE Y=-1 ENDCASE ? “Y=”,Y SET TALK ON CANCEL
二、循环结构
循环结构是指反复执行某段程序的结构。 1、条件型循环 DO WHILE <条件表达式> 条件表达式 Y 命令序列
一、程序的建立
1、菜单方式
2、MODIFY COMMAND <程序文件名> (也可用于修改)
二、程序的执行
1、菜单方式: “程序”->“运行” 2、命令:do <程序文件名>[.prg] 程序结束常用命令: • Cancel:终止程序,返回命令窗口。 • Return:结束当前程序,返回上级程序。
vf第2章

FoxPro编程基础 第2章 Visual FoxPro编程基础
表2-1 算 术 运 算 符
运算符 + * / ^ 或 ** % 名称 加 减 乘 除 乘方 求余 说明及示例 同数学中的加法,如 3+5 同数学中的减法,如 8-2 同数学中的乘法,如 2 * 6 同数学中的除法,如 8 / 4 同数学中的乘方,如 6 ^ 2 表示 6
2
26 % 3 表示 26 除以 3 所得的余数,结果为 2
FoxPro编程基础 第2章 Visual FoxPro编程基础
算术运算符的运算优先级为()→ ^或** → *和/ → % → + 和2) VFP表达式的书写规则 VFP算术表达式与数学中的表达式在写法上有所不同, 在书写表达式时应特别注意: (1) 每个符号占1格,所有符号都必须一个一个并排写在 同一横线上,不能在右上角或右下角写方次或下标。例如, 52要写成5 ^ 2,x1+x2要础 第2章 Visual FoxPro编程基础
FoxPro编程基础 第2章 Visual FoxPro编程基础
7) 双精度型 双精度型(Double) 双精度型用于取代数值型数据,以提供更高的数值精度。 双精度型只能用于数据表中字段的定义,它采用固定存储长 度的浮点数形式。与数值型不同,双精度型数据的小数点的 位置是由输入的数据值决定的。其取值范围是:+/4.94065645841247E-324~+/-8.9884656743115E307。 每个双精度型数据占8个字节。
FoxPro编程基础 第2章 Visual FoxPro编程基础
【例2-1】定义合法的变量名示例。 】 ABCD 7ab P0000 _xyz IF 姓名 是合法的变量名
第二章:VF程序设计基础

考点二:变量:表示可变的值。
分为内存变量和字段变量。
1.简单内存变量:每个变量都有一个名字,可以通 过变量名访问变量的值。变量名必须以字母、汉 字或者下划线开头,后接汉字、字母、下划线、 数字。(在自治区的笔试考试中会出现此类题目)
例:dimesion b(4) b(1)=“01001” b(2)=“宁宁” gather from b disp
2.2 表达式
考点四:数值、字符与日期时间表达式
表达式是指由常量、变量、函数通过运算符 连接形成的式子。
优先级 运算符
1
()
2
** 或 ^
3
*/ %
4
+-
说明
乘方 乘,除,求余 加,减
(2)给数组赋值,与前相同。 如:
a(1)=10 ,a(4)=“city” ,a=25 bus(1,1)=“17路” ,bus(10)=“101”
2019-9
(15)如果有定 dimension data(3) , 则 data(2) 的初值是:________。 A)整数 0 B)不定值 C)逻辑真 D)逻辑假
Store “This is Visual Foxpro” to a ?AT(“fox”,a) ?ATC(“fox”,a) ?AT(“is”,a,2) ?AT(“xo”,a)
8.子串替换函数 用字符串2替换字符串1中指定的字符 STUFF(Cexp1,起始位置,长度,Cexp2)
S1=“GOOD BYE!” S2=“MORNING” ?STUFF(S1,6,3,S2) ? STUFF(S1,1,4,S2)
2. 货币型:代码—Y,用来表示货币值,定界符:$。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考点二:变量:表示可变的值。
分为内存变量和字段变量。
1.简单内存变量:每个变量都有一个名字,可以通 过变量名访问变量的值。变量名必须以字母、汉 字或者下划线开头,后接汉字、字母、下划线、 数字。(在自治区的笔试考试中会出现此类题目)
set exact on
?“ab”=“a” 结果:.F.
顺序相同,字母相同就为真.
set exact off
?“ab”=“a“ 结果:.T.
顺序相同,左包含右就为真.
3) $ :如果前一个字符串是后一个字符串的 子串,得到逻辑真,否则,得到逻辑假。 如: “ab” $ “12ab34” “我“ $ “我们” “香蕉” $ “水果”
那么主窗口中将显示 A)张三 B)张三 您好 C)张三您好 D)出错
考点三:内存变量的常用命令
1. 显示内存变量:list memory | display memory
2. 清除内存变量: clear memory | release [变量名][all]
1. 表中数据与数组数据之间的交换 将表的当前记录复制到数组
关于截取函数的练习
?LEFT(“GOOD BYE!”,2) ?RIGHT(“GOOD BYE!”,3)
?SUBSTR (“GOOD BYE!”,6,2)
趣味练习
1.将”DCBA”转换成”ABCD” 2.将”去去来来”转换成”来来去去” 3.将”你爱我”转换成”我爱你” 4.将”移转叫呼情爱”转换成”爱情呼叫转移”
给变量赋值:变量名=表达式 ,
store 表达式 to 变量名1,变量名2
显示变量的值:?变量名(换行显示)
??变量名(不换行显示)
2. 数组变量:由一系列数组元素组成,每一个数 组元素相当于一个内存变量。数组要先定义后 使用。在一切使用简单内存变量的地方都可以 使用数组;但在同一运行环境中,数组名不能 与简单变量名重复;
?CHRTRAN(“计算机ABC”,”计算机”,”电脑”) (3)如果第三个字符串包含的个数多于第二个字符串包含的个 数,多余的字符被忽略。 ?CHRTRAN(“大家好!”,”大家”,”你们好”)
8. 比较两个字符串对应位置上的字符,若全 等,返回.T. ,否则返回.F. LIKE(Cexp1,Cexp2)
7. 求一组数中的最大值或最小值 格式:MAX(Nexp1,……) MIN(Nexp1,……)
8. 求Nexp1除以Nexp2的余数 格式:MOD(Nexp1,Nexp2)
考点六:字符函数
1. 返回字符串的长度,注意:一个汉字占两个 字符空间 格式:LEN(Cexp)
2. 大小写字母转换 UPPER(Cexp) 小写转大写 LOWER(Cexp) 大写转小写
3.字段变量:表中的每个字段,就是一 个字段变量。
如果字段变量与内存变量同名,那 么,访问内存变量时要在变量名前 加前缀:m.内存变量名或者m->内 存变量名,否则系统访问的将是同 名的字段变量。
真实考题:
(22)假设职员表已在当前工作区打开,其 当前记录的“姓名”字段值为“张三” (字符型,宽度为6)。在命令窗口输入并 执行如下命令: 姓名=姓名-“您好” ? 姓名
第二章:VF程序设计基础
考核知识点
常量、变量和表达式 常用函数:字符处理函数,数值计算函
数,日期时间函数,数据类型转换函数 和测试函数。 程序与程序文件:程序的概念,程序的 基本结构,多模块程序设计。
重要考点:
常量和变量的概念、类型及特点; 表达式的类型; 函数的使用:trim, left, right, substr,
格式:scatter [fields <字段名表 >] to <数组名> 将数组数据复制到表的当前记录
格式:gather from <数组名> [fields <字段名表>]
例:use 学生 dimesion a(4),b(3) scatter to a scatter fields 姓名,年龄 to b ?a(1),a(2),a(3),a(4),b(1),b(2),b(3)
3. 数组在定义后,系统自动赋初值.F.,可以用一 维数组的形式访问二维数组。
(1)定义数组:declare 或 dimension 数组名(下标n, n)
如:dimesion a(5) && 定义了一个有5个元素的一维数组,数组名为a。 declare bus(3,4) && 定义了有12个元素的二维数组,数组名为bus。
例:dimesion b(4) b(1)=“01001” b(2)=“宁宁” gather from b disp
2.2 表达式
考点四:数值、字符与日期时间表达式
表达式是指由常量、变量、函数通过运算符 连接形成的式子。
优先级 运算符
1
()
2
** 或 ^
3
*/ %
4
+-
说明
乘方 乘,除,求余 加,减
考点七:日期和时间函数
1. 系统日期和时间函数 2. DATE( ) 返回当前系统日期 ,结果为日期
型; 3. TIME( ) 返回当前系统时间,结果为字符
型; 4. DATETIME( ) 返回当前系统日期时间,
结果为日期时间型
2. 求年份、月份、天数 YEAR(Dexp) MONTH(Dexp) DAY(Dexp)
1. 数值表达式 求余规则
当被除数与除数符号相同时,直接求出余数; 当被除数与除数符号相异时,最后余数为两数
相除的余数再加除数的值。
例:9**(5-3)%3*5=___
自治区考题: 请将以上例题中的数学表达式改写成VF语言中
的表达式。
2.字符表达式:用+或-将字符型数据连 接起来,其结果仍是字符型。
at, like, date, str, val, isnull, empty, vartype, eof, bof, iif 程序与程序文件、程序的选择结构、程 序的循环结构、多模块程序设计。
考点一:常量
常量用以表示一个具体、不变的值。 不同类型常量的书写格式不同。分为:
1. 数值型:代码—N,用来表示一个数量的大小。 无定界符。如:0,20,-3.14 ,1.25E-2
6.返回字符串1在字符串2中出现的次数 OCCURS(Cexp1,Cexp2)
Store “abracadabra” to s ?occurs(“a”,s) ? occurs(“b”,s) ? occurs(“c”,s) ?occurs(“e”,s)
7.求字符串1在字符串2中出现的位置 AT(Cexp1,Cexp2,[Nexp])
注意: &&只可在Cexp1中可使用通配符 &&通配符有两种:
*表示任意零个、一个或多个字符。 ?表示任意一个字符。 &&返回值是逻辑型。
store “abc” to x y=“abcd” ?like(“abc*”,x) ?like(“ab*”,x) ?like(“abc*”,y) ?like(x,y) ?like(“?b?”,x) ?like(“Abc*”,x)
2) Set strictdate to 1 进行严格的日期型格式 检查。
3) 2)Set century on|off 打开或关闭世纪年份 的显示
4) 3)Set mark to “符号” 规定年月日之间的 分隔符
5) 4)Set date to ymd|mdy|dmy 显示日期时 年月日的顺序
日期运算 1)日期±天数 2)如:{^2019-07-10} ± 5 3)日期-日期 4)如:{^2019-07-10} – {^2019-05-10} 5)日期时间±秒数 6)如: {^2019-07-10 12:10:00} ± 50 4)日期时间-日期时间 如: {^2019-07-10 12:10:00} -
9.字符替换函数
CHRTRAN(Cexp1,Cexp2,Cexp3)
分为三种情况
(1)当第一个字符串中的一个或多个相同字符与第二个字符串 中的某个字符相匹配时,就用第三个字符串中的对应字符(与第 二个字符串的那个字符具有相同位置)替换这些字符。
?CHRTRAN(“ABACAD”,”ACD”,”X12”) (2)若第三个字符串包含的字符个数少于第二个字符串包含的 字符个数,导致没有对应字符,那么第一个字符串中相匹配的各 字符将被删除。
2. 货币型:代码—Y,用来表示货币值,定界符:$。
3. 字符型:代码—C,就是一串字符,定界符: “ ” , ‘’ , [] &&必须是在英文状态下输入
4.日期型:代码—D,表示日期,定界符,{ }, 如:{^2019-07-20}, 5.日期时间型:代码—T,表示一个日期时间,定界符,
{ }, 如:{^2019-07-20 20:10:30} 6.逻辑型:代码—L,只有逻辑真,逻辑假两种值,定界
{^2019-07-10 11:10:00}
4. 关系表达式
运算符 < > = <>,#,!=
说明 小于 大于 等于 不等于
运算符 <= >= == $
说明 小于等于 大于等于 全等(精确比较) 子串包含测试
提示:1)全等只有在两个字符串完全相等时,结果才为真;
2)等于的结果受set exact on|off 的影响,如:
1. 3.生成指定的空格字符 格式:SPACE(Nexp)
4. 删除字符串的前后空格 TRIM(Cexp1) 删除尾部空格 LTRIM(Cexp1) 删除前端空格 ALLTRIM(Cexp1) 删除前后空格