第 3 章 vfp 简介

66
第3第 VFP 第第

Upload: sitara

Post on 26-Jan-2016

105 views

Category:

Documents


14 download

DESCRIPTION

第 3 章 VFP 简介. 一、 VFP 的界面组成 二、 VFP 的操作方式 1、命令操作方式 2、菜单操作方式 3、工具操作方式 4、程序操作方式. 交互. 命令操作方式 — 指在交互窗口键入命令即可操纵数据库。 如:删除一条记录,键入 DELETE 优点:能直接使用系统的各种命令和函数 菜单操作方式 — 系统将若干命令做成菜单,用户可通过菜单选择 来操纵数据库。 工具操作方式 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章   VFP  简介

第 3 章 VFP 简介

Page 2: 第 3 章   VFP  简介

一、 VFP 的界面组成

二、 VFP 的操作方式 1 、命令操作方式 2 、菜单操作方式 3 、工具操作方式 4 、程序操作方式

交互

Page 3: 第 3 章   VFP  简介

命令操作方式 — 指在交互窗口键入命令即可操纵数据库。 如:删除一条记录,键入 DELETE 优点:能直接使用系统的各种命令和函数

菜单操作方式 — 系统将若干命令做成菜单,用户可通过菜单选择 来操纵数据库。

工具操作方式 —VFP 中提供了许多工具,如:表设计器、数据库 设计器

程序操作方式 — 将命令序列编写成程序,通过运行程序来操作 数据库。

Page 4: 第 3 章   VFP  简介

VFP 的命令格式、特点 : (p19)

命令格式: 命令动词 [< 子句 >] 其中:命令动词—特定的英语单词或符号,表明要完成的动作。 大小写均可,多于 4 个字母时,可只键入前 4 个。 (如: DISPLAY——DISP 或 disp )

< 子句 >— 用英语单词标识,用来对所要执行的命令进行

某些限制性说明,如操作对象、范围、条件等。

Page 5: 第 3 章   VFP  简介

[……] 方括号中的内容为可选项。

<……> 尖括号中的内容由用户提供。

| 其中可选择一项

Page 6: 第 3 章   VFP  简介

典型格式:

命令动词 [< 范围 >] [FIELDS< 字段名表 >] [FOR WHILE< 条件 >]

其中:①< 范围 > 子句:指出命令对库表文件记录的作用范围

ALL— 对所有记录进行操作 NEXT <n> — 对从当前记录开始的 n 个记录进行操作 RECORD<n> — 仅对第 n 条记录进行操作 REST— 对从当前记录开始到最后一条记录进行操作

Page 7: 第 3 章   VFP  简介

② FIELDS< 字段名表 > : 表示只处理表文件中指定的几个字段。

如: USE STUDENT

LIST FIELDS 学号,姓名,档案

Page 8: 第 3 章   VFP  简介

③FOR< 条件 > : 限定该命令仅对满足条件的记录进行操作, 与范围子句一起使用表示仅在一定范围内 对满足条件的记录进行操作。

如: USE STUDENT

LIST FOR age>20

Page 9: 第 3 章   VFP  简介

④WHILE< 条件 > : 从当前记录开始 , 在指定范围内,对记录逐条进行

比较, < 条件 > 成立,继续执行命令,一旦 < 条件> 不成立,立即停止执行。(记录指针指在第一个< 条件 > 为 .F. 的记录上,不论其后有无符合条件的记录)

如: USE STUDENT

LIST WHILE age>20

Page 10: 第 3 章   VFP  简介

第 4 章 VFP 基础知识

Page 11: 第 3 章   VFP  简介

一、 VFP 的数据类型

字符型( Character ):存储文本信息 数值型( Numeric ):存储整数或小数,精度: 16 位 浮点型( Float ):等价于数值型(出于兼容性考虑) 日期型( Date ):如 09/22/2007 日 期 时 间 型 ( Date Time ): 09/22/200717 :

12PM 双精度型( Double ):其精度 >> 数值型、浮点型,主 要用于存储科学计算中的天文数字

Page 12: 第 3 章   VFP  简介

货币型( Currency ):存储货币类数值,该类型至 多只能保留小数点后 4 位 整型( Integer ):不包括小数、效率更高。其范围 为: -2147483647 ~ +2147483647 。 逻辑型( Logic ):为布尔值——真 (.T. , .Y.) 或 假 (.F. , .N.) 备注型( Memo ):用于保存大量文字信息,长度 不限,但在字段定义时默认为 4 位。 通用型( General ):保存 OLE 对象,如:图象、

声音 等,字段定义时默认为 4 位。

Page 13: 第 3 章   VFP  简介

二、常量与变量

 1 、常量

① 数值型 ② 货币型 ③ 字符型 ④ 日期型 ⑤ 日期时间型 ⑥ 逻辑型

Page 14: 第 3 章   VFP  简介

以下是各类型常量需注意的问题:

① 数值型 数值型可以用科学记数法表示, 如: 5.678E12

② 货币型

采用 4 位小数

Page 15: 第 3 章   VFP  简介

③ 字符型

字符常量也称为字符串; 可用“ ” 、‘ ’或 [ ] 引用,三者等价 (“ ” 、‘ ’、 [ ] 称为定界符)

Page 16: 第 3 章   VFP  简介

传统的日期格式④ 日期型 严格的日期格式

a. 传统的日期格式 ( 受日期格式设置命令的影响 )

mm/dd/yy 或 mm/dd/yyyy 如: 03/15/90

b. 严格的日期格式 ( 可在任何情况下使用 )

{^yyyy-mm-dd}

如: {^1990-03-15}

Page 17: 第 3 章   VFP  简介

• 日期格式设置命令:

( 1 )是否显示世纪值 ( 即年份用 4 位显示 ) SET CENTURY ON|OFF

( 2 )指定显示日期值时使用的分隔符 SET MARK TO [< 日期分隔符 >] 如: SET MARK TO “—”

( 3 )设置日期显示格式 SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH |ITALIAN |GERMEN |JAPAN |USA |MDY | DMY |YMD

Page 18: 第 3 章   VFP  简介

常用日期格式

短语 格式 短语 格式AMERICAN mm/dd/yy GERMEN dd.mm.yy

USA mm-dd-yy JAPAN yy/mm/dd

ANSI yy.mm.dd MDY mm/dd/yy

BRITISH /FRENCH dd/mm/yy DMY dd/mm/yy

ITALIAN dd-mm-yy YMD yy/mm/dd

Page 19: 第 3 章   VFP  简介

( 4 )是否检查日期格式 SET STRICTDATE TO [ 0 | 1 | 2 ]

0 — 不进行严格的日期格式检查 1 — 进行严格的日期格式检查(默认) 2 — 进行严格的日期格式检查,并且对 CTOD ()和 CTOT ()的格式也有效。

Page 20: 第 3 章   VFP  简介

⑤ 日期时间型 格式: {< 日期 > , < 时间 >}

⑥ 逻辑型 逻辑真: . T. . t . 或 . Y. . y .

逻辑假: . F. . f . 或 . N. . n .

Page 21: 第 3 章   VFP  简介

2 、变量

字段变量——存在于库表文件中,为多值变量。 内存变量——存在于内存中,是在程序或命令 状态时用于存放数据的临时工作单元。 它独立于表文件,为单值变量。

字段变量

内存变量

Page 22: 第 3 章   VFP  简介

( 1 )字段变量

同一字段取值不同,不唯一,故为多值变量

Page 23: 第 3 章   VFP  简介

① 简单内存变量

建立内存变量的方法: a.变量名 =值 (例: A=100 ) b . STORE 值 TO 变量名 (例: STORE 100

TO A )

注: STORE 和 =均可用于赋值,但是用 STORE 可以给多 个 内 存 变 量赋值 , 如 STORE 100 TO A , B , C

( 2 )内存变量

Page 24: 第 3 章   VFP  简介

那么内存变量到底是什么数据类型,是否需要事先定义呢?

N=100 ( N为数值型) N=“ABC” ( N为字符型)

Page 25: 第 3 章   VFP  简介

注: a.内存变量无须预先定义,区分类型,其类型 由赋予变量的值的类型决定。

b.字段变量与内存变量同名,字段变量优先。 要引用内存变量,则在其前加M-> 。 如:在 STU.DBF 中有一记录“姓名”字段值为“王青”

又在命令窗口建立了一个“姓名”内存变量: 姓名 = 李涛 ?姓名 ? M-> 姓名

c.内存、字段变量由字符、数字或下划线组成, 以字符或下划线开头,字段长度 : 自由表中 <=10 ,数据库表中 <=128

Page 26: 第 3 章   VFP  简介

② 数组 一系列数据值的有序集合。

数组定义及赋值: a.定义: DIMENSION/DECLARE < 数组名 1

> [ , < 数组名 2> ,…… ] DIMENSION A(5),B(2,3)

Page 27: 第 3 章   VFP  简介

b 、赋值

A(3)=25 A=30 B(2,1)=5 B(5)= .T.

Page 28: 第 3 章   VFP  简介

3 、其它与变量、表达式有关的常用命令

( 1 )表达式的显示:? | ??( 2 )内存变量的显示 LIST MEMORY [LIKE< 通配符 >]

DISPLAY MEMORY [LIKE< 通配符 >]

( 3 )内存变量的清除 clear memory —— 所有 release < 内存变量 > —— 所有或部分

Page 29: 第 3 章   VFP  简介

三、表达式 —— 由常、变量和函数通过特定的运算符 连接起来的式子

表达式的五种类型: 数值表达式 字符表达式 日期时间表达式 关系表达式 逻辑表达式

Page 30: 第 3 章   VFP  简介

1 、数值表达式 <expN>

算术运算符 优先级 高 ( ) ** 、 ^ * 、 / % 低 + 、 -

—— —— 幂运算(如幂运算(如 3**3=3^3=273**3=3^3=27 ))

———— 取模(如取模(如 26%8=226%8=2 ,类似于求余),类似于求余)

Page 31: 第 3 章   VFP  简介

2 、字符表达式 <expC>

字符运算符: + —— 字串简单连接 - —— 两串相并,去掉前一字串尾端的空格, 加至最后 $ —— 字串比较, <expc1>$<expc2> ,若

<expc1> 包含于 <expc2> ,则表达式值为 .T.( 真 ) , 否则为 .F.( 假 ) 。

Page 32: 第 3 章   VFP  简介

例 1 : 比较 ‘ ABC└┘’+ ‘DEF└┘’ 和 ‘ ABC└┘’ – ‘DEF└┘’

例 2 : mem1=”Visual” mem2=”Foxpro” mem3=mem1+mem2 ? mem1$mem3 .T.

Page 33: 第 3 章   VFP  简介

课堂思考:

请写出’ ABC└┘’+’DEF└┘’+’G’及’ ABC└┘’-’DEF└┘’+’G’

的值

Page 34: 第 3 章   VFP  简介

3 、日期时间表达式 +、 -

例: {^2002-09-21}+100 {^2002-09-21}- {^2002-05-13} (两日期相差天数)

Page 35: 第 3 章   VFP  简介

4 、关系表达式

格式: < 表达式 1> <关系运算符 > < 表达式 2>

操作数类型须一致,结果为逻辑值。

关系运算符: < 、 <= 、 > 、 >= 、 <> 、 = 、 == 、

$

注意:精确比较 (==)与模糊比较 (=)

Page 36: 第 3 章   VFP  简介

5 、逻辑表达式 优先级 高 !, NOT AND 低 OR

例如: a=.t. ?not a

Page 37: 第 3 章   VFP  简介

不同类型运算符的优先级:

优先级 高 数值、字符、日期时间表达式 关系表达式 低 逻辑表达式

Page 38: 第 3 章   VFP  简介

四、常用函数

标准函数:近 300 个 用户自定义函数

函数

Page 39: 第 3 章   VFP  简介

函数的格式:

函数名 ( 参数 )

表明做了什么运算表明做了什么运算 运算对象运算对象

Page 40: 第 3 章   VFP  简介

五类常用函数:

数值函数 字符处理函数 日期类函数 数据类型转换函数 测试函数

Page 41: 第 3 章   VFP  简介

1 、数值函数 几个常用数值函数:

( 1 )求绝对值 ABS

如: ? ABS ( -5 ) y= ABS ( 5-3 )

( 2 )求符号 SIGN

如: ? SIGN ( -8 )

55

y=2y=2

-1-1

Page 42: 第 3 章   VFP  简介

( 3 )求平方根 SQRT

如: ? SQRT ( 9 )

( 4 )求圆周率 PI

如: ? PI ()

( 5 )求整数 INT

如: ? INT ( 3.14 ) ? INT ( -3.14 )

3

-3

3

3.14

Page 43: 第 3 章   VFP  简介

( 6 )四舍五入 ROUND 如: ? ROUND ( 2.345, 2 ) ? ROUND ( 234.345, -1 )

( 7 )求余 MOD 如: ? MOD ( 10, 3 ) ? MOD ( 10, -3 )

2.352.35

230230

11

-2-2

Page 44: 第 3 章   VFP  简介

( 7 )求最大、最小值

如: ? MAX ( 2, 12 )

? MIN ( 10, -3 ) -3-3

1212

Page 45: 第 3 章   VFP  简介

2 、字符处理函数 几个常用字符处理函数:

( 1 )求字串长度 LEN 如: X=‘abc’ ? LEN ( X )

( 2 )生成空格字符串 SPACE 如: Y= SPACE ( 4 )

33

Y=“ ” (YY=“ ” (Y 为为 44 个字符个字符 的空格串的空格串 ))

Page 46: 第 3 章   VFP  简介

( 3 )大小写转换

UPPER

小写 大写 LOWER

? UPPER(‘ IBM pc/xt ’)

? LOWER(INTERNET)

IBM PC/XTIBM PC/XT

internetinternet

Page 47: 第 3 章   VFP  简介

( 4 )删除空格  ①  TRIM—— 去右端空格 如: Y= TRIM (‘ test ’ )

去左端空格和去两端空格函数 ?

( 5 )取子串 ① LEFT—— 求左方子串 如: NS= LEFT (‘ DATABASE’ , 4 ) ? NS

求右方子串和任意子串函数 ?

Y=‘ test’Y=‘ test’

DATADATA

LTRIM 、 ALLTRIM

RIGHT 、 SUBSTR

Page 48: 第 3 章   VFP  简介

( 6 )求子串出现次数 OCCURS 如: S= ’abcaabcd‘ ? OCCURS (’ a‘ , S )

( 7 )求子串位置 AT 如: ? AT (“ TER” ,“ COMPUTER” )

33

66

Page 49: 第 3 章   VFP  简介

3 、日期类函数 几个常用字符处理函数:

( 1 )求系统日期和时间 ① DATE ()——求当前日期 ② TIME ()——求当前时间 ③ DATETIME ()——求当前日期时间

如: ? DATE () 注:()中不需带参数

Page 50: 第 3 章   VFP  简介

( 2 )求年、月、日

① YEAR ()——求日期的年份 ② MONTH ()——求日期的月份 ③ DAY ()——求日期的日子

如: ? YEAR ( DATE ()) 20092009

Page 51: 第 3 章   VFP  简介

( 3 )求时、分、秒

① HOUR ()——求日期时间的小时 ② MINUTE ()——求日期时间的分钟 ③ SEC ()——求日期时间的秒

如: ? HOUR ( DATETIME ())

Page 52: 第 3 章   VFP  简介

4 、数据类型转换函数

( 1 )数值型

日期型

ASCII码

VAL STR

CTODDTOC

ASCCHR

字符型

Page 53: 第 3 章   VFP  简介

部分函数格式:

STR(< 数值型表达式 >[,< 总长度 >][,< 小数位度 >])

VAL ( < 字符型表达式 > ) DTOC ( < 日期型表达式 > )

具体用法见书中例子

Page 54: 第 3 章   VFP  简介

( 2 )宏替换函数 &

格式: & < 字符型变量 >[.] 功能:代换一个字符型变量的内容。若

函 数后跟的不是空格,则加 .

如: ACCEPT‘请输入姓名:’ TO XM

(请输入姓名:陈刚) ?‘欢迎 & XM 使用工资管理系统’

Page 55: 第 3 章   VFP  简介

5 、测试函数 几个常用测试函数:

( 1 )值域测试 BETWEEN 如: ? BETWEEN ( 5 , 1 , 10 )

( 2 )空值测试 ISNULL 如: X= .NULL. ? ISNULL ( X )

.T..T.

.T..T.

Page 56: 第 3 章   VFP  简介

( 3 )是否为空测试 EMPTY 如: X=0 Y=“ ” ? EMPTY ( X ) , EMPTY ( Y )

( 4 )数据类型测试 VARTYPE 如: X= 10 ? VARTYPE ( X )

.T..T.

NN

Page 57: 第 3 章   VFP  简介

( 5 )表文件尾测试 EOF

( 6 )表文件首测试 BOF

何谓表文件首、尾?假设一个表 4 条记录 , 我们看看表文件首尾的位置 :

11223344

文件首文件首

文件尾文件尾

文件首在文件首在第第 11 条记录之前条记录之前,文件尾在,文件尾在最后最后 11 条记录之后条记录之后。。

Page 58: 第 3 章   VFP  简介

什么是记录指针和当前记录?当前记录——记录指针指向的记录;

注:表文件刚打开时,指针总是指向第一条记录 (即首记录为当前记录);

Page 59: 第 3 章   VFP  简介

( 7 )记录号测试 RECNO

如: USE STU

? RECNO ()

( 8 )记录个数测试 RECCOUNT

如:假设 STU 中有 40 条记录 USE STU

? RECCOUNT ()

11

4040

Page 60: 第 3 章   VFP  简介

( 9 )条件测试 IIF

格式: IIF ( < 逻辑表达式 > , < 表达式 1> , < 表达

式 2> ) 功能: < 逻辑表达式 > 值为 .T.——返回表达式 1 的值, 为 .F.——返回表达式 2 的值。 例: x=9 ? IIF ( x<10 , 1 , 2 )

11

Page 61: 第 3 章   VFP  简介

作用:该函数在某些情况下可以替代 IF……ELSE……ENDIF 语句

如:

Y= IIF ( x<10 , 1 , 2 )<=><=>IF x<10IF x<10 Y=1Y=1ELSE Y=2 ELSE Y=2 ENDIFENDIF

Page 62: 第 3 章   VFP  简介

其他函数:

系统环境函数 OS () 给出当前使用的操作系统名SYS ( 5 ) 给出当前默认驱动器名SYS ( 17 ) 给出所用的 CPU 名

显示信息函数 MESSAGEBOXMESSAGEBOX ()()

Page 63: 第 3 章   VFP  简介

例:

MESSAGEBOX ‘( 你好!’)MESSAGEBOX ‘( 操作有误!’, 2+16+0 ,‘提示

信息’)

Page 64: 第 3 章   VFP  简介

对话类型及含义 对话类型值 对话框按钮

0 “确定”按钮1 “确定”、“取消”按钮2 “终止”、 “重试”、 “忽略”按钮3 “ 是”、 “否”、 “取消”按钮

5 “重试”、 “取消”按钮 对话类型值 图标

16 “终止”图标32 “问号”图标48 “感叹号”图标64 “ 信息”图标

对话类型值 缺省按钮0 第 1 个按钮256 第 2 个按钮512 第 3 个按钮

4 “ 是”、 “否”按钮

Page 65: 第 3 章   VFP  简介

Messagebox() 函数的返回值取决于用户所选择的按钮,返回值情况如下表所示:

按钮 返回值确定 1

取消 2

终止 3

重试 4

忽略 5

是 6

否 7

Page 66: 第 3 章   VFP  简介

作业:在屏幕上显示当天日期格式 1 :今天日期: 03/06/09格式 2 :今天日期: 2009 年 3 月 6 日

上机 : NB=1234.56 ? STR(NB,7,1) ? STR(NB,6,2) ? STR(NB,7,2) ? STR(NB,6,3) ? STR(NB,7,3) ? STR(NB,5,1) ? STR(NB,8,1) ? STR(NB,5,2) ? STR(NB,8,2) ? STR(NB,3) ? STR(NB,8,3) ? STR(NB,4) ? STR(NB,6,1) ? STR(NB,5)