76
王王王 王王王王王王

王敬敏 华北电力大学

  • Upload
    menefer

  • View
    262

  • Download
    5

Embed Size (px)

DESCRIPTION

第二章. Visual Foxpro 操作基础. 王敬敏 华北电力大学. 本章学习目标:. 掌握 Visual FoxPro 的基本操作,熟练掌握命令的使用规则。 重点: Visual FoxPro 的基本操作。 难点: Visual FoxPro 的命令。. Visual FoxPro 操作基础. 2.3 Visual FoxPro 操作概述 2.3.1 Visual FoxPro 操作方式 2.3.2 Visual FoxPro 可视化设计工具 2.3.3 Visual FoxPro 系统环境的设置 2.3.4 Visual FoxPro 帮助系统. - PowerPoint PPT Presentation

Citation preview

Page 1: 王敬敏 华北电力大学

王敬敏华北电力大学

Page 2: 王敬敏 华北电力大学

本章学习目标:

掌握 Visual FoxPro 的基本操作,熟练掌握命令的使用规则。

重点: Visual FoxPro 的基本操作。 难点: Visual FoxPro 的命令。

Page 3: 王敬敏 华北电力大学

Visual FoxPro 操作基础2.3 Visual FoxPro 操作概述 2.3.1 Visual FoxPro 操作方式 2.3.2 Visual FoxPro 可视化设计工具 2.3.3 Visual FoxPro 系统环境的设置 2.3.4 Visual FoxPro 帮助系统

2.2 Visual FoxPro 的用户界面 2.2.1 Visual FoxPro 系统菜单 2.2.2 Visual FoxPro 命令窗口 2.2.3 Visual FoxPro 工具栏 2.2.4 Visual FoxPro 状态栏

2.1 Visual FoxPro 的安装与启动 2.1.1 Visual FoxPro 的运行环境 2.1.2 Visual FoxPro 的安装 2.1.3 Visual FoxPro 启动与退出

2.4 Visual FoxPro 命令概述 2.4.1 Visual FoxPro 命令的结构 2.4.2 Visual FoxPro 命令中的常用短语 2.4.2 Visual FoxPro 命令中的常用短语

Page 4: 王敬敏 华北电力大学

1. Visual FoxPro 6.0 的启动 启动 Visual FoxPro 有多种方法,可采用以下三种方式之一。 (1) 从“开始”菜单启动 (2) 从资源管理器中启动 (3) 从“运行”对话框中启动

2.1.3 Visual FoxPro 启动与退出

Page 5: 王敬敏 华北电力大学

2. 退出 Visual FoxPro

(1) 在 vfp 主菜单中 , 点“文件”菜单,选“退出”项;(2) 按 Alt+F4 组合键;(3) 按 Ctrl+Alt+Del 组合键,进入“关闭程序”窗口,按“结束任务”按钮;(4) 在 Microsoft Visual FoxPro 的系统环境窗口,单击其右上角的“退出”按钮;(5) 在“命令”窗口,输入命令 Quit 。

Page 6: 王敬敏 华北电力大学

2.2Visual FoxPro 的用户界面 如图所示, Visual FoxPro 的用户界面由 Visual FoxPro 系统菜单、工具栏、命令窗口和状态栏等构成。

Page 7: 王敬敏 华北电力大学

2.3 Visual FoxPro 操作概述 2.3.1Visual FoxPro 操作方式 1. 菜单操作方式 (1) 选择菜单项 (2) 对话框的使用 2. 命令操作方式 3. 程序工作方式

Page 8: 王敬敏 华北电力大学

2.3.2Visual FoxPro 可视化设计工具 1.Visual FoxPro 向导 2. Visual FoxPro 设计器 3. Visual FoxPro 生成器

Page 9: 王敬敏 华北电力大学

2.3.2Visual FoxPro 可视化设计工具 1. Visual FoxPro 向导 Visual FoxPro 系统为用户提供许多功能强大的向导。 用户通过系统提供的各种不同的向导设计器,不用编程就可以创建良好的应用程序界面,并完成许多有关对数据库的操作。 常用的向导设计器有:表向导、报表向导、表单向导、查询向导 等。

Page 10: 王敬敏 华北电力大学

2. Visual FoxPro 设计器

Visual FoxPro 系统提供的设计器,为用户提供了一个友好的图形界面。用户可以通过它创建并定制数据表结构、数据库结构、报表格式和应用程序组件等。 常用的设计器有:表设计器、查询设计、视图设计器、列表框生成器、报表设计器、数据库设计器、菜单设计器等。

Page 11: 王敬敏 华北电力大学

3. Visual FoxPro 生成器 Visual FoxPro 系统提供的生成器,可以简化创建和修改用户界面程序的设计过程,提高软件开发的质量。每个生成器都由一系列选项卡组成,允许用户访问并设置所选对象的属性。用户可以将生成器生成的用户界面直接转换成程序代码,把用户从逐条编写程序、反复调试程序的工作中解放出来。 常用的生成器有:组合框生成器、命令组生成器、表达式生成器、列表框生成器等。

Page 12: 王敬敏 华北电力大学

2.4.1Visual FoxPro 命令的结构

在命令格式中的约定符号 : [ ]中的内容是可选的 〈〉 中的内容是必选的 | 表示在其中任选一项

2.4 Visual FoxPro 命令概述

命令动词 + 命令短语

Page 13: 王敬敏 华北电力大学

VFP 的一般命令格式

命令动词 [ 范围 ] [ FIELDS 〈表达式表〉 ]

[[FOR 〈条件〉 ] ︱ [WHILE 〈条件〉 ]]

Page 14: 王敬敏 华北电力大学

2.4.2 Visual FoxPro 命令中的常用短语

1.FIELDS 子句 FIELDS 〈字段名表〉 FIELDS 〈表达式表〉

Page 15: 王敬敏 华北电力大学

2. 范围子句 (1) ALL :对表的全部记录进行操作。(2) NEXT n:只对包括当前记录在内的以下 n个记录进行操作。(3) RECORD n:只对第n个记录进行操作。(4) REST:自当前记录开始到表尾的所有记录。其中 n(n≠0) 为数值量,若有小数则自动舍去小数部分。

Page 16: 王敬敏 华北电力大学

3. FOR 子句和 WHILE 子句 FOR 〈条件〉的作用是:在规定的范围中,按条件检查全部记录。 WHILE 〈条件〉的作用是:在规定的范围内,只要条件成立,就对当前记录执行该命令,并把记录指针指向下一个记录,一旦遇到使条件不满足的记录,就停止搜索并结束该命令的执行。

Page 17: 王敬敏 华北电力大学

2.4.3 Visual FoxPro 命令的书写规则 (1) 每个命令必须以一个命令动词开头,而命令中的各个子句可以按任意次序排列。(2) 命令行中各个词应以一个或多个空格隔开。(3) 一个命令行的最大长度是 254 个字符。(4) 命令行的内容可以用英文字母的大写、小写或大小混写。(5) 命令动词和子句中的短语可以用其前 4 个以上字母缩写表示。(6) 不可用 A到J之间的单个字母作表名。(7) 尽量不要用命令动词、短语等 Visual FoxPro 的保留字。(8) 一行只能写一条命令,每条命令的结束标志是回车键。

Page 18: 王敬敏 华北电力大学

王敬敏华北电力大学

Page 19: 王敬敏 华北电力大学

第第 33章 章  Visual FoxProVisual FoxPro 的数据及其运的数据及其运算算

本章知识要点了解并掌握基本数据类型以及 Visual FoxPro 的常用函数、表达式的使用。重点: Visual FoxPro 的常用函数,内存变量的使用。难点:内存变量的使用。

Page 20: 王敬敏 华北电力大学

3.1 Visual FoxPro 的数据类型 1. Character ( 字符型 ,用字母 C表示 ) 2. Numeric ( 数值型 ,用字母 N表示 ) 3. Currency ( 货币型 ,用字母 Y表示 ) 4. Date ( 日期型 ,用字母 D表示 ) 5. Date Time ( 日期时间型 ,用字母 T表示 ) 6. Logical ( 逻辑型 ,用字母 L表示 ) 7. Memo ( 备注型 ,用字母 M表示 )(只用于字段 )

8. General ( 通用型,用字母 G表示 ) ( 只用于字段 )

9. 二进制字符型和二进制备注型 (只用于字段 )

Page 21: 王敬敏 华北电力大学

Date ( 日期型 ,用字母 D表示 )

日期型数据用来表示日期,系统规定其长度为 8位。系统默认格式为 MM/DD/YY, 即月 / 日 / 年的格式(年度也可是 4位)。

Date Time ( 日期时间型 ,用字母 T表示 )

日期时间型数据用来表示日期和时间,系统规定其长度为 8位。系统默认格式为 {MM/DD/YY hh:mm:ss} 。

范围:日期: 01/01/0001 ~ 12/31/9999

时间: 00:00:00 ~ 23:59:59

Page 22: 王敬敏 华北电力大学

 信息中心专门人才基本情况一览表编号 姓名 性别 出生日期 工资 津贴 党员

否工作简历 照片

Bj10001 刘伟箭 男 1960.08.23 2000.00 450 T (略 ) (略 )

Jl04010 黄晓远 男 1970.08.12 1000.00 400 F (略 ) (略 )

Bj11002 刘简捷 男 1958.12.31 1800.00 500 T ( 略 ) ( 略 )

Gz05001 藤波海 男 1956.04.14 1160.00 500 F ( 略 ) ( 略 )

Gz05002 杨行东 男 1949.03.30 1260.00 550 F ( 略 ) ( 略 )

Jl04001 林惠繁 女 1969.02.03 8000.00 400 T ( 略 ) ( 略 )

Sy02030 李鹏程 男 1946.02.08 3000.00 550 F ( 略 ) ( 略 )

Sy02035 王国民 男 1935.05.20 5000.00 650 F ( 略 ) ( 略 )

Sh01001 金银桥 女 1969.01.24 2000.00 450 F ( 略 ) ( 略 )

sh01002 林立荞 女 1964.08.16 4500.00 500 F ( 略 ) ( 略 )

M型、 G型字段中的数据存在同名的 FPT 文件中

Page 23: 王敬敏 华北电力大学

3.2Visual FoxPro 的常量与变量 3.2.1 常量

常量是指在操作过程中或程序运行过程中其值保持不变的一种数据。 VFP 中常量类型有 6 种:字符型、数值型、逻辑型、货币型、日期型和日期时间型。

1. 字符型常量:字符型常量是用定界符 (单引号、双引号或中括号 )括起来的一串字符。

如: “ That’s right!” 、 [ 籍贯 ]

‘2003102136’

Page 24: 王敬敏 华北电力大学

2. 数值型常量

数值型常量可由正负号、数字与小数点组成。

在 VFP 中数值型常量有两种表示方法:小数形式和指数形式。

3. 逻辑型常量

逻辑型常量只有两个值:“真”值和“假”值,用 .T. , .F. ,或 .Y. , .N. 表示。

注意:字母前后的圆点不能省略。

Page 25: 王敬敏 华北电力大学

4. 货币型常量

货币型常量与数值型常量类似 ( 不能采用指数形式 ) ,只是需加上一个前置符 $ 。如果货币型常量多于 4位,那么系统将自动进行四舍五入。

如: $3.5472869 则存储为: $3.5473

5. 日期型常量

日期型常量用 { } 括起来(如: mm/dd/[yy]yy ),三部分内容之间的分隔符可为 /、 -、 .。 如: {05/22/2004} 、 {05-22-04}

Page 26: 王敬敏 华北电力大学

6. 日期时间型常量

与日期型常量相似,也需用 { } 括起来,系统默认格式为:

{MM/DD/[YY]YY [,]hh[:mm[:ss]][a|p]]}

Hh 、 mm 、 ss 的默认值分别为 12、 0、 0.

a|p 的默认值为 am。

Page 27: 王敬敏 华北电力大学

( 1)日期格式中的世纪值设置:

SET CENTURY ON | OFF | TO [n Century]

其中, ON 表示日期值输出时显示 10 位,年份占 4 位。

TO [n Century] 指定日期数据所对应的世纪值, n 是一个 1~ 99 的整数。

7. 日期格式设置

( 2)设置日期显示格式:

SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | USA | MDY | DMY | YMD | SHORT | LONG

Page 28: 王敬敏 华北电力大学

( 3 )严格的日期格式:{^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]}

Page 29: 王敬敏 华北电力大学

3. 变量分类

变量分为:

字段变量内存变量数组变量系统变量

Page 30: 王敬敏 华北电力大学

( 1)字段变量

字段变量(又称字段名变量)是指数据表中的各字段名,它是表中最基本的数据单元,随着记录的不同各字段所对应的内容是变化的。

学 号 姓 名 性别 出生年月98010101 张大为 男98010412 李丽霞 女99010415 郭延 男99010415 刘茜 女

Page 31: 王敬敏 华北电力大学

(2) 内存变量

①内存变量的概念

内存变量是一种独立于数据库之外的变量。在维护和操作数据库时,经常需要一些内存单元,用来存放一些临时的数据或一些计算结果,这些临时开辟的内存单元就是内存变量。内存变量可以参与计算处理。

Page 32: 王敬敏 华北电力大学

②内存变量的类型

内存变量的类型取决于所存放数据的类型,内存变量的类型有:字符型、数值型、货币型、逻辑型、日期型和日期时间型。

③内存变量名

内存变量名由字母、数字和下划线组成,不允许有空格。内存变量名必须以字符或下划线开头。

Page 33: 王敬敏 华北电力大学

④给内存变量赋值

给内存变量赋值的同时也建立了内存变量,最常用的赋值命令有两种:

命令格式:

< 内存变量名 > = < 表达式 >

STORE < 表达式 > TO < 内存变量名表 >

例: a1 = 6

STORE 6 TO a1,a2,c

Page 34: 王敬敏 华北电力大学

⑤ 输出和显示内存变量的值

命令格式: ? <表达式表 >

或: ?? <表达式表 >

功能:计算并显示表达式的值。

?: 表示结果值显示在下一行;

??:结果显示在同一行。

当有多个表达式时各表达式间用逗号分隔。

例:

? a1,a2,c

?? a1,a2,c

Page 35: 王敬敏 华北电力大学

⑥ 输出显示内存变量

命令格式:

LIST MEMORY [LIKE < 通配符 >][ TO PRINT] 或: DISPLAY MEMORY [LIKE < 通配符 >][ TO PRINT] 功能:显示当前每个已经定义的内存变量的名称、数据类型和其值。若选择[ TO PRINT]选择项,则将当前显示的内容打印出来。 例: LIST MEMORY LIST MEMORY LIKE A*

Page 36: 王敬敏 华北电力大学

⑦ 保存内存变量

命令格式: SAVE TO < 文件名 > [ ALL LIKE<通配符 >|EXCEPT< 通配符 > ]

功能:将当前已经定义的内存变量的全部或一部分存入到内存变量文件中。系统将自动生成扩展名为 .MEM 的文件。

例:

SAVE TO BL.MEM

SAVE TO CL ALL EXCEPT A*

Page 37: 王敬敏 华北电力大学

⑧ 恢复内存变量

命令格式: RESTORE FROM < 文件名 > [ADDITIVE ]

功能:将指定的内存变量文件中的内存变量装入到内存,同时系统将清除原内存中内存变量( 无 ADDITIVE 时 )。

例:

      RESTORE FROM BL

Page 38: 王敬敏 华北电力大学

⑨ 内存变量的清除

命令格式:

CLEAR MEMORY

RELEASE [<内存变量表 >][ALL [LIKE|EXCEPT < 通配符

>]]

功 能:清除内存变量并释放相应的内存空间。

其中第一条命令是清除所有的内存变量,第二条命令是清除指定的内存变量。

Page 39: 王敬敏 华北电力大学

变量被定义为一组同名的下标变量的集合。

① 数组的定义

命令格式:

DIMENSION <数组名 >(<下标上界 1>[,<下标上界 2])[,…]

下标上界是一数值量,下标的下界由系统统一规定为 1。

例: dime a(50),b(4,7)

(3) 数组变量

Page 40: 王敬敏 华北电力大学

(4) 系统变量 系统变量是由 VFP 自身提供的内存变量。系统变量名都是以下划线开始。它与一般变量的使用方法相同。 在定义内存变量名时,不能以下划线开始。

② 数组的赋值

可以使用赋值命令给数组元素赋值,例如 ,a(24)=7

也可以给整个数组的各个元素赋以相同的值 ,例如 ,b=73

在没有向数组元素赋值之前,数组元素的初值均为逻辑假( .F. )。

Page 41: 王敬敏 华北电力大学

定义:将常量、变量和函数用运算符连接起来的式子称为表达式。

分类:

算术表达式

字符表达式

日期和时间表达式

关系表达式

逻辑表达式等

3.3 表达式

Page 42: 王敬敏 华北电力大学

1. 算术表达式

算术表达式由算术运算符、数值常量、变量和函数组成,结果为数值型数据。

算术运算符有(按优先级从高到低的顺序排列):

( ) ; ** 或 ^ ; * ; / ; % ; + ; -

( 括号 ) ( 乘方 ) ( 乘 ) ( 除 ) ( 求余数 ) ( 加 ) (减 )

例: y = x2-3x+9

Page 43: 王敬敏 华北电力大学

是用字符运算符将字符型数据连接起来的式子,其运算结果是字符型数据。运算符有两种: (1). 连接运算 “+”:将两个字符串连接起来形成一个新的字符串。 “-”:是去掉前一字符串的尾空格,然后与后面字符串连接起来,并把去掉的尾空格放到结果串的末尾。 (2). 包含运算 <字符串 1> $ <字符串 2> 包含运算的结果是逻辑值:若 <字符串 1> 包含在 <字符串 2>之中,其表达式值为 .T. ,否则为 .F. 。

2. 字符型表达式

Page 44: 王敬敏 华北电力大学

3. 日期和时间表达式

格式 1: <日期型数据 > + <天数 >

< 天数 > + <日期型数据 >

格式 2 : <日期型数据 > - <天数 >

格式 3: <日期型数据 1> - <日期型数据 2>

格式 4: <日期型数据 > + <秒数 >

< 秒数 > + <日期型数据 >

格式 5 : <日期型数据 > - <天数 >

格式 6: <日期时间型数据 1> - <日期时间型数据 2>

Page 45: 王敬敏 华北电力大学

4. 关系表达式

关系表达式由关系运算符和字符表达式、数值表达式或日期表达式组成。关系运算符有以下几种:

< ( 小于 ) 、 <=( 小于等于 ) 、 > ( 大于 ) 、 >= ( 大于等于 )

< > 或 # 或! = ( 不等于 ) 、 = ( 等于 )

= = ( 字符全同比较 )、 $ ( 字符串包含运算符 )

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

进行关系运算时,关系运算符两边的数据类型应相同。关系运算可以进行数值比较、字符比较、日期比较。

Page 46: 王敬敏 华北电力大学

比较规则如下: ( 1)数值型数据:按数值大小进行比较 ; 日期时间型数据:按年、月、日的先后进行比较 ; 逻辑型数据: .T.比 .F.大。 字符型数据:按“工具”菜单中“选项”的设置进行比较,默认按字符的 ASCII码值的大小进行比较,汉字按拼音顺序进行比较。

( 2)在 SET EXACT OFF 状态下,精确比较“ ==”:只有在两字符串完全相同时才为真;非精确比较“ =”:当等号右边的串与等号左边的串的前几个字符相同时,运算结果才为真。 例: ?“ res” < “ret”、 ? “李丽英” == “李丽”

Page 47: 王敬敏 华北电力大学

( 3)运算符 $只能比较两个字符串,若左边的字符串是右边字符串的子串,则比较结果为 .T. ,否则为 .F. 。

例: ? “丽英” $ “李丽英”

? “AB” $ “CDAFBRT”

关系运算符的优先级相同,按从左向右、圆括号内优先的顺序进行。

Page 48: 王敬敏 华北电力大学

5. 逻辑表达式

逻辑表达式是由逻辑运算符将逻辑型数据连接起来的式子。它实际是一个判断条件,结果为一个逻辑值。

(1). 逻辑运算符:

AND (与)、 OR(或)、 NOT (非)

使用时运算符两边可以有小圆点也可无小圆点。

逻辑运算的优先顺序是: NOT→AND→OR (依次降低 )

使用格式: < 关系表达式 > <逻辑运算符 > < 关系表达式 >

Page 49: 王敬敏 华北电力大学

(2). 逻辑运算

①NOT 是单目运算,只作用于后面的一个逻辑操作数。

NOT L :若操作数 L为真,则返回假;否则返回真。

②AND 是双目运算。

L1 AND L2 :逻辑型操作数 L1 和 L2 同时为真,表达式值为真;只要其中一个为假,则结果为假。

③OR 也是双目运算。

L1 OR L2 :逻辑型操作数 L1 和 L2 中只要有一个为真,表达式即为真;只有 L1 和 L2均为假时,表达式才为假。

Page 50: 王敬敏 华北电力大学

问 题

1.VFP提供了哪几种数据类型 ?

2.VFP 中 C、 D、 T、 L型常量在使用时有何约束 ?

3.VFP 中变量分为几类 ?

4. 如何给内存变量赋值?如何输出和显示?

5. 将下列式子写成 VFP 的表达式:

yx

yy

)7.3(6

42

2

Page 51: 王敬敏 华北电力大学

3.4 Visual FoxPro 主要函数

函数常用来执行一些特殊的数据处理,充分正确地使用函数,可简化操作和程序,增强数据处理功能。

1. 函数调用:

函数名 ([ 参数表 ])

函数名后的括号()不能省。参数表用方括号括起来表示可省,即有些函数不需要参数。

Page 52: 王敬敏 华北电力大学

2. 函数分类:

① 数值函数

② 字符函数

③ 日期和时间函数

④ 数据类型转换函数

⑤ 测试函数

Page 53: 王敬敏 华北电力大学

函数举例:数值函数: INT( 3.14) 取整结果为 3 MAX( 10 , 5 , 12) 结果为 12字符函数: SUBSTR (“华北电力大学”, 1, 8) 结果为“华北电力” UPPER ( “ abcd”) 结果为“ ABCD”日期函数: DATE () 结果为 09/12/2007 YEAR ( DATE ()) 结果为 2007转换函数: CTOD(“09/12/2007”) DTOC(DATE())

Page 54: 王敬敏 华北电力大学

3. Visual FoxPro 主要函数

1. 数值运算函数

数值运算函数用来进行数值计算 ,函数的返回值均是数值型。

1.绝对值函数

格式: ABS(<expN>)

功能 : 返回数值型表达式〈 expN〉的绝对值。

例: ABS ( -123 )

Page 55: 王敬敏 华北电力大学

2 .平方根函数 格式: SQRT(<expN>) 功能 : 返回〈 expN〉的算术平方根值 ,〈 expN〉的值必须是正数。

例: ? SQRT ( 25 )

? SQRT ( 3+6 )

Page 56: 王敬敏 华北电力大学

3. 取整函数

格 式 功 能

INT(<expN>) 取〈 expN〉的整数部分。

CEILING(<expN>) 取大于或等于指定表达式的最小整数

FLOOR(<expN>) 取小于或等于指定表达式的最大整数

例: ? INT ( 56.72 )

? CEILING(56.72)

? FLOOR(56.72)

? INT ( -56.72 )

? CEILING(-56.72)

? FLOOR(-56.72)

Page 57: 王敬敏 华北电力大学

4.四舍五入函数

格式 : ROUND(〈 expN1〉 ,〈 expN2〉 )

功能 : 设 expN2=n 。函数对〈 expN1〉求值,并保留 n 位小数,从 n+1 位小数起进行四舍五入。如果 n<0( 指定的小数位数为负数 ),该函数在〈 expN1〉的值的整数部分按 n 的绝对值位进行四舍五入 ,尾数部分都是 0。

例: ? ROUND(11,2)

?ROUND(2435.67,-2)

Page 58: 王敬敏 华北电力大学

5.求余数函数

格式: MOD(〈 expN1〉 ,〈 expN2> )

功能 : 返回〈 expN1〉除以〈 expN2〉所得的余数。

当 <expN1> 和 <expN2> 同号时,函数值为 :MOD ( |expN1|,|expN2|);当 <expN1>和 <expN2> 异号时,函数值为:

|expN2|- MOD ( |expN1|,|expN2|),结果的符号与 <expN2>相同;

例: ? MOD(15,4)

? MOD(-15,-4)

? MOD(-15,4)

? MOD(15,-4)

Page 59: 王敬敏 华北电力大学

6.求最大值函数和最小值函数

格式 : MAX(<表达式 1>, <表达式 2>,……, <表达式 n>)

MIN(<表达式 1>, <表达式 2>,……, <表达式n>)

功能 : MAX 求 n 个表达式中的最大值。

MIN求 n 个表达式中的最小值。

说明 :〈表达式表〉中的各表达式的值应是相同的数据类型 (N、 C、 Y、 D、 T),且至少有两个表达式。对 expC,根据每个字符的 ASCII码值的大小进行比较。

例: ? MAX(43,89)

? MIN('ABCK','ABCF')

Page 60: 王敬敏 华北电力大学

2 字符操作函数1.求字符串长度函数 格式 : LEN(〈 expC〉 ) 功能 : 返回〈 expC〉的长度,长度的单位是半角字符个数 ,一个全角字符为 2个半角字符,若是空串,则长度为 0。

例: ? LEN (‘ ABCDEFG’) ? LEN (“中华人民共和国”)

Page 61: 王敬敏 华北电力大学

2. 取子字符串函数

①取左子字符串函数格式 : LEFT(〈 expC〉 ,〈 expN〉 )功能 : 在〈 expC〉中 ,从左端开始截取〈 expN〉个字符组成新字符串。 例: ? LEFT (‘中华人民共和国’, 4)② 取右子字符串函数

格式 : RIGHT(〈 expC〉 ,〈 expN〉 )功能 : 在〈 expC〉中 ,从右端开始截取〈 expN〉个字符组成新字符串。

例: ? RIGHT (‘中华人民共和国’, 4)

Page 62: 王敬敏 华北电力大学

③ 取子字符串函数

格式: SUBSTR ( <expC> , <expN1> [, <expN2>])

功能 : 从字符表达式〈 expC〉的第 <expN1>个字符开始 , 取〈 expN2〉个字符 ,组成新字符串。

例: ? SUBSTR (‘中华人民共和国’, 5,4)

Page 63: 王敬敏 华北电力大学

3.求子字符串位置函数

格式 : AT(〈 expC1〉 ,〈 expC2〉 )

ATC(〈 expC1〉 ,〈 expC2〉 )

功能 : 查找〈 expC1〉在〈 expC2〉中的起始位置 ,如果没有找到 ,返回数值 0。

ATC函数在子串比较时不区分字母大小写。

例: ? AT('LG','ABRLGUOLGP')

? AT('Lg','ABRLGUOLGP')

? ATC('Lg','ABRLGUOLGP')

Page 64: 王敬敏 华北电力大学

4. 删除字符串前后空格函数

格 式 功 能

LTRIM(〈 expC〉 ) 去除〈 expC〉的前导空格

RTRIM(〈 expC〉 ) 去除〈 expC〉的尾部空格

ALLTRIM(〈 expC〉 )去除〈 expC〉的前、后所有的空格

例: ? LTRIM(” 大学生 “ )

? RTRIM(” 大学生 “ )

? ALLTRIM(” 大学生 “ )

Page 65: 王敬敏 华北电力大学

4. 删除字符串前后空格函数

格 式 功 能

LTRIM(〈 expC〉 ) 去除〈 expC〉的前导空格

RTRIM(〈 expC〉 ) 去除〈 expC〉的尾部空格

ALLTRIM(〈 expC〉 )去除〈 expC〉的前、后所有的空格

例: ? LTRIM(” 大学生 “ )

? RTRIM(” 大学生 “ )

? ALLTRIM(” 大学生 “ )

Page 66: 王敬敏 华北电力大学

5.产生空格函数

格式 : SPACE(〈 expN〉 )

功能 : 生成若干个空格。空格数由〈 expN〉的值确定。

例:

? ALLTRIM(“ 当代 ” )+ALLTRIM(“ 大学生 ” )

? ALLTRIM(“ 当代 ” )+SPACE(4)+ALLTRIM(“ 大学生 ” )

Page 67: 王敬敏 华北电力大学

6.大小写字母转换函数

格式 : UPPER(〈 expC〉 )

功能 : 将 <expC>中的小写字母转换成大写字母。

格式 : LOWER(〈 expC〉 )

功能 : 将 <expC>中的大写字母转换成小写字母 。

例: ? UPPER('a')

? LOWER('Y')

Page 68: 王敬敏 华北电力大学

7. 宏替换函数 & 宏替换函数 &,又称宏替换运算符,它将字符型内存变量或字符型数组变量的值置换出来。

格式 : & 〈字符型内存变量〉[ .〈字符表达式〉]

功能 : 将字符型内存变量的值替换出来。

例: p=“3+4”

? p

? &p

Page 69: 王敬敏 华北电力大学

8. 字符串替换函数

格式: STUFF(<字符式 1>, <数值式 1>, <数值式2>, <字符式 2>)

功能:用 <表达式 2> 去替换 <表达式 1>中由 <数值式 1>开始的 <数值式 2>个字符。

例: ?STUFF("asdfgh",3,2,"yyyy")

9. 产生重复字符函数

格式: REPLICATE(<字符型表达式 >,<数值型表达式>)

功能:重复给定字符若干次,次数由数值型表达式给定。 例: ?REPLICATE("az",5)

Page 70: 王敬敏 华北电力大学

1. 求系统日期和时间函数 : DATE() TIME() DATETIME() 2. 求年份、月份和天数函数 : YEAR(<日期型表达式 >|<日期时间型表达式 >) MONTH(<日期型表达式 >|<日期时间型表达式 >) DAY(<日期型表达式 >|<日期时间型表达式 >)3. 求时、分和秒函数 : HOUR(<日期时间型表达式 >) MINUTE(<日期时间型表达式 >) SEC(<日期时间型表达式 >)

3 日期和时间函数

Page 71: 王敬敏 华北电力大学

1. 将字符转换成 ASCII码的函数: ASC(<字符型表达式 >) 2. 将 ASCII 值转换成相应字符函数: CHR(<数值型表达式>) 3. 将字符串转换成日期或日期时间函数 格式: CTOD(<字符型表达式 >) CTOT(<字符型表达式 >) 4. 将日期或日期时间转换成字符串函数 格式: DTOC(<日期表达式 >|<日期时间表达式 >[,1]) TTOC(<日期时间表达式 >[,1]) 5. 将数值转换成字符串函数: STR(<数值式 1>[ , <数值式 2>[ , <数值式 3>]]) 6. 将字符串转换成数值函数: VAL(<字符型表达式 >)

4 数据类型转换函数

Page 72: 王敬敏 华北电力大学

练 习1 、设: A=’08/28/04’, 求: month(ctod(A)) 和 day(ctod(A)) 。

3、输出函数运算后的结果: (1) ? Val(“2008”) (2) ? Val(“2008beijing”) (3) ? STR(156.823,8,3) (4) ? STR(156.823) (5) ? STR(156.823,4,1) (6) ? STR(156.823,2)

Page 73: 王敬敏 华北电力大学

1. 数据类型测试函数: VARTYPE(<表达式 >,[<逻辑表达式>]) 2. 表头测试函数: BOF([< 工作区号 >])|<别名 >])3. 表尾测试函数: EOF([< 工作区号 >|<别名 >])4. 记录号测试函数: RECNO([< 工作区号 >|<别名 >])5. 记录个数测试函数: RECCOUNT([< 工作区号 |别名 >])6. 查找是否成功测试函数: FOUND([< 工作区号 |别名 >])7. 文件是否存在测试函数: FILE(< 文件名 >)8. 判断值介于两个值之间的函数: BETWEEN(< 被测试表达式 >,<下限式 >,<上限式 >)9. 条件函数: IIF(<逻辑型表达式 >,<表达式 1>,<表达式 2>)

2.5.5 测试函数

Page 74: 王敬敏 华北电力大学

练 习1 、 ? “亚洲 "+space(5)-space(6)+"中国 "

3 、求正实数 x的小数部分,表达式为( )

2 、在 1983 年 1月 1日至 1985 年 12 月 31 日之间出生的学生,条件表达式为( )

4、求自然数 m的十位数字,表达式为( )

6 、求实数 n保留 4 位小数,第 5 位小数进行四舍五入处理,表达式为( )

5 、判断 n 是否奇数,表达式为( )

7 、将 Y中的大写字母转换成相应的小写字母,表达式为( )

Page 75: 王敬敏 华北电力大学

编号 姓名 性别 出生日期 工资 津贴 党员否

工作简历 照片

Bj10001 刘伟箭 男 1960.08.23 2000.00 450 T (略 ) (略 )

Jl04010 黄晓远 男 1970.08.12 1000.00 400 F (略 ) (略 )

Bj11002 刘简捷 男 1958.12.31 1800.00 500 T ( 略 ) ( 略 )

Gz05001 藤波海 男 1956.04.14 1160.00 500 F ( 略 ) ( 略 )

Gz05002 杨行东 男 1949.03.30 1260.00 550 F ( 略 ) ( 略 )

Jl04001 林惠繁 女 1969.02.03 8000.00 400 T ( 略 ) ( 略 )

Sy02030 李鹏程 男 1946.02.08 3000.00 550 F ( 略 ) ( 略 )

Sy02035 王国民 男 1935.05.20 5000.00 650 F ( 略 ) ( 略 )

Sh01001 金银桥 女 1969.01.24 2000.00 450 F ( 略 ) ( 略 )

sh01002 林立荞 女 1964.08.16 4500.00 500 F ( 略 ) ( 略 )

人才 .dbf

Page 76: 王敬敏 华北电力大学

对人才 .dbf 写出表达式:姓别 =“男”

工资 +津贴 >2000

Year( 出生日期 )<=1960 and 党员否

Year(Date())-year( 出生日期 )<=40 and 性别 =“女”

工资 <=3000元 and 职称 =“教授” or 工资 <=2000 and 职称 =“副教授”

1 、写出性别为“男”的选择条件

2 、收入大于 2000元的职工

3 、 60年以前出生的党员

4 、 40岁以下的女职工

5 、工资 3000元以下的教授或工资 2000元以下的副教授