9299.net
大学生考试网 让学习变简单
赞助商链接
当前位置:首页 >> 其它课程 >>

VF复习教案

VF复习教案


第一章 一、数据和数据库: 1、 2、

数据库基础知识

数据:是记载客观事物的状态、特征、特性的符号。 数据库 (DB) 是按一定的组织结构存储在计算机内可共享使用的相关数 :

据的集合。 说明:数据库以文件的形式组织,包含一个或多个文件。 二、计算机数据管理 经历了从低级到高级的发展过程,如下几个阶段: (1)人工管理: (2)文件系统 (3)数据库系统 (4)分布式数据库系统

一、数据库系统(DBS):就是指计算机系统中引用了数据库技术后的完整系统。 组成:硬件:主机、键盘、显示器 软件:操作系统、数据库管理系统(DBMS) 数据库(DB) 用户 即:DBS 包含 DBMS 和 DB 说明: 1、数据库管理系统:是用来建立、存取、管理和维护数据库的软件系统。 2、数据库系统的核心是数据库管理系统。
1

3、 4、 5、

数据库管理系统是用户与数据库之间的接口。 VF 是一种关系型数据库管理系统 数据库应用系统指系统开发人员利用数据库系统资源开发出来的,面向

某一类实际应用的软件系统。它不属于数据库系统。

三个概念: 实体:现实世界任何可相互区别的事物。 实体集:同类型的实体的集合。 关系模式:是描述表由哪些属性(字段)组成。 二、数据模型(三种) 1、 层次模型:倒置的树。

特点:有且只有一个根结点。 2、 3、 网状模型:任意连通的基本层次模型构成一个网状模型。 关系模型:用二维表结构表示实体以及实体之间联系的模型。

二维表又被称为关系 构成关系模型的二维表条件: (1) 表中不允许有重复的字段名 (2) 表中每一列数据必须具有相同的数据类型。 (3) 表中不允许有两条完全相同的记录 (4) 表中行的排列次序及列的排列次序可任意。 (5) 关系规范化:如表中不能再包含表 三、表间关系(三种)
2

1、

一对一关系:

A 表一个记录——B 表一个记录 B 表一个记录——A 表一个记录 两个表必须有一个相同的索引作主关键字字段 例:学籍表、成绩表 2、 一对多关系

A 表一个记录——B 表多个记录 (父表) (子表)

父表使用主关键字或候选索引关键字 子表使用普通索引关键字 例:学籍表、图书借阅表 3、 多对多

A 表一个记录——B 表多个记录 B 表一个记录——A 表多个记录 四、关系型数据库 (一) 关系述语 1、 关系:一个关系就是一张二维表 关系模式:对关系的描述,即关系的结构 2、 元组:在二维表中的行称为元组,也称为记录 3、 属性:在二维表中的列称为属性,也称为字段 说明: 元组是属性值的集合
3

关系是元组的集合 4、 关键字:字段或字段的组合 主关键字和候选关键字起唯一标识一个元组的作用。 5、 外部关键字:如果表中一个字段不是本表的主关键字或候选关键字, 而是另一个表的主关键字或候选关键字,这个字段叫外部关键字。 (二) 关系操作(关系运算) 1、 选择: 从关系(表)中找出满足条件的若干记录,组成新表 一个表,从行的角度 2、 投影 从表中指定若干个字段组成新表 一个表,从列的角度 3、 连接 将两个数据库文件按某个条件筛选部分 (或全部) 记录及部分 (或全部) 字段组合成一个新的表文件 两个表 第 二章 VF 系统初步 一、 VF 的三种工作方式 利用菜单系统、利用命令窗口、利用各种生成器自动产生程序或编写程序文 件(前两种属于交互式工作方式。 ) 二、 项目管理器 项目:指文件、数据、文档和 VF 对象的集合。
4

(一)

六个选项卡

1、 数据:包含一个项目中的所有数据。即:数据库、自由表、查询、视图 2、 文档:包含表单、报表、标签三类文件。 3、 类 4、 代码:包含三大程序,一是.PRG 的程序文件,二是函数库 API,三是应用程 序.APP 文件 5、 其他:包括文本文件、菜单文件和其他文件 6、 全部:以上各类文件的集中显示窗口。 (二) 按钮

新建:新建文件。说明:利用文件——新建创建的文件不属于任何项目文件 添加:将一个已经存在的文件添加到项目文件中。 修改:修改项目文件中的指定文件 移去:将文件从项目中移去 移去:从项目中移去文件,文件仍在原目录(磁盘中) 删除:不仅从项目中移去,还从磁盘中删除该文件。 浏览:在浏览窗口中显示一个表 关闭和打开:打开或关闭一个数据库 运行:执行选定的查询、表单或程序 连编:连编一个项目或应用程序,生成.EXE 文件。 (三) 项目的建立和修改(扩展名为.pjx)

建立:CREATE PROJECT 项目名 修改:MODI PROJECT
5

第三数据库及其操作 第一节 数据库、表的操作 .DCT(数据库备注文

建立数据库时会产生三个文件:.DBC(数据库文件)、 件) .DCX(数据库索引文件) 一、 数据库操作

1、 建立:可以使用项目管理器、命令、数据库向导等方法 方法一:文件——新建 方法二:在项目管理器中新建 方法三:CREATE 2、 修改 MODIFY DATABASE 3、 打开 OPEN DATABASE 库名 [EXCLUSIVE|SHARED] 说明: (1)EXCLUSIVE 表示以独占方式打开,不允许其他用户使用该库 SHARED 表示以共享方式打开,允许其他用户使用该库。 (2)在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数 据库。 (3)要打开一个表不一定要先打开数据库,但打开库表时,数据库 随之打开。 (4)打开数据库时,库中表不会自动打开。 (5)一个工作区中只能打开一个表,但一个表可以在多个工作区中打
6

DATABASE 库名

开。 (6)关闭数据库时,库中相关表随之关闭。 设置当前数据库:SET 4、 关闭 CLOSE DATABASE CLOSE 关闭当前数据库 DATABAS TO 库名

DATABASE ALL 关闭所有打开的数据库

CLOSE ALL 关闭所有工作区打开的数据库、表和索引。 5、 删除 DELETE DATABASE 库名 二、 表的操作 A、用户可以创建数据库表也可以创建与数据库无关的自由表 B、建立表后产生两个文件:.dbf .fpt(存放备注型和通用型字段) C、字段名规定: 长度:自由表 10 个字符,数据库表 128 个字符 组成:由字母、数字、汉字、下划线组成,不能有空格,开头必须是字母 或汉字。 D、字段的属性包括字段名、数据类型、宽度、小数位数 字段类型(13 种)和宽度:课本 21 页。 类型 字符型 数值型 缩写 C N 字节数 最大长度 254 个字节 最大长度 20 个字节(其中包括 小数点和正负号)
7

日期型

D

8 个字节,年份 4 个,月份 2 个,日子 2 个

日期时间型 逻辑型 备注型 通用型 货币型 整型 浮动型 双精度型

T L M G Y I F B

日期 8 个,时间 6 个字节 1 个字节 4 个字节 4 个字节 8 个字节 4 个字节 最大长度 20 个字节 8 个字节

说明:记录的长度为所有字段长度之和+1。 指存放逻辑删除标记符) (1 1、表的建立、打开、关闭 建立:CREATE 表名 显示结构:LIST STRUCTURE 修改结构:MODIFY STRUCTURE 打开:USE 表名 关闭:USE 2、表的浏览、编辑 浏览:BROWS [FOR 条件] [范围] [FIELD 不能省略 编辑表:EDIT [FOR 条件] [范围] [FIELD 不能省略
8

字段列表]

字段列表]

3、记录的显示、定位 (1)显示:LIST | DISPLAY [范围] [FOR | 表达式] [OFF] [TO PRINT] WHILE 条件] [FIELDS

说明:A、备注型、通用型分别显示为 MEMO、GEN B、表达式可以为字段列表,也可以为表达式列表。 如 LIST 语文+数学

C、FOR 显示满足条件的所有记录。 ?RECNO() 为记录总数+1 ; ?EOF() 为.T. WHILE:从当前记录开始顺序显示满足条件的记录,直到遇到不 满足条件的记录为止。 ?RECNO( ) 为不满足条件的第一条记录的记录号。 D、范围: ALL NEXT REST 例:GO N 从当前记录开始的 N 条记录(包含当前记录) 从当前记录开始到最后一条记录(包含当前记录) 2;LIST REST ; ?EOF() 结果为.T.

RECORD N E、命令后不加任何参数时,LIST 默认显示全部记录。 DISPLAY 默认显示当前记录 (2)定位 绝对定位:GO|GOTO 表达式|TOP|BOTTOM

说明:表达式为记录号时可以省略 GO|GOTO
9

TOP:指第一条记录(不一定是记录号最小的记录) BOTTOM:最后一条记录(不一定是记录号最大的记录) 相对定位:SKIP [数值表达式] 例:GO TOP SKIP -1 ?RECNO() ?BOF( ) 结果为:1 .T. 4、记录的删除与恢复 逻辑删除: DELE [FOR|WHILE 条件] [范围] GO SKIP 1 ?RECNO() ?EOF( ) 结果为:总记录数+1 .T. BOTTOM

恢复:RECALL [范围] [FOR|WHILE 条件] 物理删除:PACK 删除所有记录:ZAP 说明: SET DELETE ON|OFF 默认为 OFF,则有删除标记的记录参加操作。 设为 ON , 则有删除标记的记录不被以下命令处理: LIST、 DISPLAY、 SUM、 COUNT、AVERAGE 5、成批替换 REPLACE 字段名 WITH 表达式 [范围] [条件]

本命令不能修改 M、G 型字段
10

6、 顺序查找 LOCATE 记录 CONTINUE 找到则 FOUND()为.T.,找不到则 FOUND()为.F.,EOF()为.T. 7、 记录的追加、插入 追加:APPEND [BLANK] 在表尾部增加记录 插入:INSERT [BEFORE] [BLANK] 在指定位置插入, 没有 BEFORE 则在当前记录之后插入一条空记录。 8、 数据统计 (1)统计记录个数: COUNT [范围] [FOR|WHILE 条件] [TO (2)求和|平均值命令 SUM|AVERAGE 内存变量] 说明:无参数则统计表中所有 N 型字段的和或平均值 内存变量的个数与 N 型表达式的个数对应。 (3)分类汇总 TOTAL ON 关键字 TO 汇总文件 [范围] [FOR|WHILE [范围] [FOR|WHILE 条件] N 型表达式 [TO 内存变量] [FOR 条件| WHILE 条件] [范围] 查找满足条件的第一条

条件] 现[FIELDS 字段表] 说明: A、表首先按关键字进行索引或排序。索引必须打开索引,排序则对排
11

序文件中进行分类汇总,形成新的表文件。 B、汇总文件与当前文件结构完全相同,但不包括 M,G 型字段。 9、 表文件的复制 COPY 表] 表结构的复制:COPY STRUCTURE 表] 第二节 索引文件 TO 新表文件名 [FIELDS 字段 TO 新表文件名 [范围]内 [FOR 条件] [FIELDS 字段名

索引是由指针构成的文件,索引文件和表文件分别存储,并不改变表中记 录的物理顺序。 一、 索引类型四种 主索引:关键字值不能重复,只有一个主索引,只能是数据库表 候选索引:字段值不能重复,可有多个候选索引,可是库表或自由表 普通索引:字段值可重复,可有多个普通索引(用表设计器建立的是普通索 引) 唯一索引:字段值可重复,可有多个唯一索引。 (唯一:指索引项而不是字段值唯一。重复的索引字段值只有唯一一 个出现在索引项中) 说明:主索引和候选索引保证了实体完整性。 二、索引文件分类 单索引文件 复合索引文件:又分为结构复合索引和非结构复合索引。
12

说明:通用型、备注型字段不能作索引表达式。 1、 单索引:.IDX ON 索引关键字表达式 TO 索引文件名 [UNIQUE]

建立:INDEX

[FOR 条件] 说明: (1)索引关键字要转换成类型相同的 (2)UNIQUE:唯一索引 (3)单索引随表的关闭而关闭,不随表的打开而打开。 打开:SET 2、 INDEX TO 索引文件名

复合索引 .CDX ON 索引关键字表达式 TAG 索引名 [OF 索引文件

建立:INDEX 名] [FOR

条件] [ASCE|DESC] [UNIQUE] [CANDIDATE]

说明:A、有 OF 是结构复合索引,无 OF 是结构复合索引 B、ASCE|DESC 升|降序

C、UNIQUE 表示唯一索引,CANDIDATE 表示候选索引

结构复合索引 与表文件同名,扩展名不同

非结构复合索引 不能与表同名,用户自己定义

随表的打开而打开(但表不会自 不随表的打开而打开。 动按索引排序) 打开:SET INDEX TO 文件名 索引名]]

设置当前索引:SET ORDER TO [<数值表达式> [TAG 3、 关闭索引

SET INDEX TO
13

对单索引、非结构复合索引,就是关闭打开的索引文件。 对结构复合索引就是取消当前索引。 三、 快速查询 FIND <字符串><数值> SEEK <表达式> 说明:FIND 后的字符串可用引号也可以不用引号括起来。 FIND 后面若是内存变量名,必须在变量前使用宏替换符。 SEEK 后的字符串必须用引号括起来 第三节 VF 提供了 32767 个工作区。 一个工作区只能打开一个表,但一个表可在多个工作区中打开。 一、工作区的使用 1、选择工作区:SELECT 工作区号 1-32767; 工作区别名:前十个 A-J 后面的是 W11-W32767 0 表示选择编号最小的未被使用的工作区。 2、在工作区中打开表文件 (1) 、USE 文件名 [ALIAS 别名] [AGAIN] 工作区号|别名|0 工作区的使用

AGAIN 表示在不同工作区再次打开已经打开的表 (2)在当前工作区为指定工作区打开表(不改变工作区号) USE 表名 IN 工作区号 [ALIAS 别名]
14

3、关闭表 (1) 用 SELECT 选工作区,用 USE 逐个关闭 (2) USE IN 工作区号/别名 (3) 关闭全部表并清除内存 4、访问其他工作区 在字段名前加<别名>或工作区号(不能是数字代号) 别名.字段名 别名->字段名 关闭其他工作区中的表 CLEAR ALL

5、创建表间逻辑连接(关联) (临时关系) SET RELATION TO 关键字表达式 INTO 别名

说明: (1)使用此命令前先在不同工作区打开两个表 (2)当关键字表达式为记录号时,被关联表可不建索引 其他表达式被关联表必须建索引。 取消关联:SET 补充: RELATION TO

1、

数据库表与自由表的区别 主 索 字 段 参照完 字 段 默 认 表 间 永 久 长表名、长文件名 引 属性 整性 的控件类 联系 不支持 不支持, 字段名最多包
15

自 由 不 支 不 支 不支持 不支技

表 库表

持 支持

持 支持 支持 支持 支持

含 10 个字符 支持, 字段名最多包含 128 个字符

2、

参照完整性

参照完整性与表之间的联系有关,它的大概含义是:当插入、删除或修改一个 表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数 据操作是否正确。 在建立参照完整性之前必须首先清理数据库,所谓清理数据库是物理删除数据 库各个表中所有带有删除标记的记录。用“数据库”菜单下的“清理数据库” 主表建立主索引,子表建立普通索引。
例表: 学生: (父表) 学号 姓名 1 张三 2 李四 3 王五 成绩: (子表) 学号 姓名 课程 成绩 1 张三 英语 99 1 张三 语文 98 2 李四 英语 88 2 李四 语文 78 3 王五 英语 86 3 王五 语文 78 参照完整性规则包括更新规则、删除规则、插入规则。 一、更新规则:规定了当更新父表中的主关键字值时,如何处理相关的子表的记录。 1、级联:主控制子。父表中的主关键字值更改,则自动更新子表中相关记录 (例:将学生表中王五的学号改为 4,则子表王五的学号自动改为 4) 2、限制:子控制主。若子表中有相关的记录,则禁止更新父表中的主关键字值。 (例:如想更改父表中王五的学号,不允许。因为子表中有学号为 3 的记录) 3、忽略:不作参照完整性检查,父表可随意更新关键字值。 二、删除规则:规定了当删除父表中的记录时,如何处理子表中的相关的记录。 1、级联:主控制子。父表删除记录,自动删除子表中相关的所有记录。 (例:父表中把学号为 3 的记录删除,子表中学号为 3 的两条记录也自动删除) 2、限制:子控制主。若子表中有相关的记录,则禁止删除父表中的记录。 (例:如想删除父表中学号为 3 的记录,不允许。因为子表中有学号为 3 的记录) 3、忽略:删除父表的记录时与子表无关。 三、插入规则:规定了当插入子表中的记录时,是否进行参照完整性检查。 1、限制:若父表没有相匹配的主关键字段值时,则子表禁止插入记录。
16

(例: 如子表中想插入记录: 4 李明 语文 89 而如想插入记录: 1 张三 数学 94 2、忽略:在子表中可以随意插入记录。

不允许。 因为父表中没有相匹配的学号。 允许。 )

第四章 第一节 一、常量

数据与数据运算 常量和变量

常量表示一个具体的、不变的值。 分类: 1、数值型常量 组成:数字 0-9、小数点、和正负号组成 在内存中用 8 个字节表示 可使用科学记数法 2、货币型常量 前置符号$ 4 位小数 在内存中占 8 个字节 3、字符型常量(也称字符串) 用定界符:单引号、双引号、方括号 说明:如某定界符本身也是字符串的内容,则需用另一种定界符。 不含任何字符的字符串叫空串(””), 与 (“ ”)不同。 4、日期型常量 定界符:{ } 表示方法:{^yyyy-mm-dd} 或 ctod(“mm-dd-yy”) 5、日期时间型常量
17

{日期时间} 时间格式为:hh:mm:ss[a|p] a 表示上午 ,P 表示下午 用 8 个字节存储 6、逻辑型常量 真:.y. .Y. .T. .t. 假:.n. .N. .F. .f. 注意:两边的点不能省 占用 1 个字节。 二、变量 指值可以随时改变的量 1、分类 字段变量:表中的字段名 内存变量:是内存中的一个存储区域 说明:变量的类型可以改变,变量的类型取决于所赋值的类型。 2、变量的数据类型 与内存变量的数据类型相同 当字段变量与内存变量重名时,内存变量前加 M. 或 M-> 3、数组 数组是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素 相当于一个变量使用,但用 LIST 个。
18

MEMO 命令显示已定义的内存变量数是 1

一个数组中各元素的数据类型可不同。 定义数组: DIME 数组名(下标)

说明:A、数组创建后,系统自动给每个元素赋.F.值 B、数组下标的下限是 1 C、DIME STORE A(3) 2 TO A

则 A(1)、 A(2)、 A(3)的值都是 2 D、可用一维数组的形式访问二维数组 4、内存变量常用命令 (1)内存变量赋值 格式 1:STORE <表达式> to <变量名表>

格式 2:<内存变量名>=<表达式> (2)表达式值显示 格式:?[<表达式表>] (说明:如没有表达式则输出回车符换行) ??<表达式表> (3)内存变量的显示 LIST MEMO [LIKE <通配符>]

(4)变量用内存变量文件保存 SAVE TO 文件名 [ALL LIKE|EXCEPT]

(5)内存变量的清除 格式 1:CLEAR MEMO 清除所有的内存变量
19

格式 2:RELEASE

<内存变量名表>

清除指定的变量

格式 3:RELEASE ALL [EXTENDED] 清除所有的内存变量 第二节 表达式

表达式是用运算符将常量、变量和函数连接起来的式子。 表达式同常量、变量一样,也有数据类型(求值以后) 单个常量、变量及函数可以认为是特殊的表达式。 1、数值表达式 用算术运算符将数值型数据连接起来。结果:数值型 算术运算符: () **或^ * / % 2、字符表达式 用字符串运算符连接 +:两串首尾相边 -:两串连接,并将前字符串尾部空格移到新串尾部。 3、日期时间表达式 运算符:+ - 结果:字符型 + -

格式 日期+天数 天数+日期 日期-天数 日期-日期 日期时间+秒数

结果类型 日期型 日期型 日期型 数值型 日期时间型
20

秒数+日期时间 日期时间—秒数 日期时间-日期时间 4、关系表达式 由关系运算符连接

日期时间型 日期时间型 数值型

结果:逻辑型

关系运算符:<、 >、 =、<>#或!=、<=、>=、= =、$ 说明: (1)= =和$仅用于字符串,其他运算符用于任何类型数据,但两边数据类 型要一致。 (2)逻辑型数据可比较:.T.>.F. (3)西文字符按 ASCII 值比较,常用的一级汉字按拼音顺序比较。 5、逻辑表达式 由逻辑运算符连接 结果:逻辑型

逻辑运算符:.NOT.或!、.AND.、.OR. 讲解:字符串精确比较与 EXACT 设置 1、= = :只有当两个字符串完全相同 (包括空格以及各字符的位置)时,才为.T. 例:?”ABC ”= =”ABC” 2、= :与 SET 结果为.F.

EXACT ON|OFF 设置有关

(1) 默认 OFF 状态:只要右边的字符串与左边的字符串的前面部分内容相 匹配,结果为.T.(以右边的字符串为目标,右边字符串结束即终止比较) 例:?”abcde”=”abc” 结果为.T. ?”abc”=”abc ” 结果为.F.
21

?”abc

”=”abc” 结果为.T.

(2)设为 ON 状态:比较到两个字符串全部结束 先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等, 然后再比较。 例:?”abc”=”abc ” 结果为.T. ?”abc ”=”abc” 结果为.T. 第三节 一、 数值运算函数 (1-5 函数结果都为数值型,6 较特殊) 1、 2、 绝对值:ABS(<数值表达式>) 求平方根:SQRT(<数值表达式>) 说明:数值表达式不能为负值 3、 求整:INT(<数值表达式>) 返回整数部分,不四舍五入。 4、 四舍五入:ROUND(<数值表达式 1>, (<数值表达式 2>) ) VFP 常用函数

说明: (<数值表达式 2>)大于 0,表示保留的小数位数,不于 0 表示 整数的舍入位数。 5、 求余:MOD(<数值表达式 1>, (<数值表达式 2>) )

说明: (1)表达式 1 为被除数,表达式 2 表示除数 (2) 余数正负号与除数相同 (3) 同号则为两数相除的余数,异号则为两数相除的余数再加上除数的值。 MOD(10,-3)为-2;MOD(-10,3)为 2 ; MOD(-10,-3)为-1
22

6、求最大值: MAX (<数值表达式 1>, <数值表达式 2>??) 求最小值: MIN(<数值表达式 1>, <数值表达式 2>??) 说明:表达式的类型还可以是字符型、货币型、日期型 ?MAX(“汽车”,”飞机”,”轮船”) 结果为:飞机 二、 字符函数 1、 2、 3、 4、 求字符串长度 LEN(<字符表达式>) 结果:为数值型 空格字符串生成函数:SPACE(<数值表达式>) 删除前后空格:ALLTRIM(<字符表达式>) 取子串 LEFT(<字符表达式>,<长度>) RIGHT(<字符表达式>,<长度>) SUBSTR(<字符表达式>,<起始位置>,<长度>) 5、 求子串位置 AT(<字符表达式 1>,<字符表达式 2>,<数值表达式>) 说明:数值表达式指第几次出现,省略则默认为 1 函数结果为数值型。 6、&<字符型变量> 替换出字符型变量的内容 7、REPLICATE(<字符串表达式>,<数值表达式>) 产生一个由<字符串表达式>重复<数值表达式>次构成的新字符串。 三、 日期和时间函数 1、 系统日期、时间函数

DATE() 结果:日期型
23

TIME() 结果:字符型 DATETIME() 2、 结果:日期时间型

求年份、月份、天数

YEAR(<日期表达式>|<日期时间表达式>) MONTH(<日期表达式>|<日期时间表达式>) DAY(<日期表达式>|<日期时间表达式>) 说明:这三个返回值都是数值型 四、 数据类型转换函数 1、 数值转换成字符串

STR(<数值表达式> [,<长度>[<,小数位数>]]) 说明:长度默认为 10, 小数位数默认为 0,则四舍五入取整。 2、 字符串转换成数值

VAL(<字符表达式>) 若字符串内出现非数字字符,则只能转换前面部分。 3、 字符串转换成日期

CTOD(<字符表达式>) 4、 日期转换成字符串

DTOC(<日期表达式>[,1]) 选项 1,则字符串格式为 YYYYMMDD 五、 测试函数 1、 测试数据类型:TYPE( “<变量或表达式>” )
24

说明:引号不能省 2、 检测指定的文件是否存在:FILE( “<文件名>” )

说明:写明扩展名且用引号引起来。 A=“AB.DBF” 3、 条件测试: ?FILE(A)

IIF(<逻辑表达式>,<表达式 1>,<表达式 2>) 4、 表文件尾测试函数: EOF([<工作区号>|<表别名>]) 说明:如打开表,表文件中不包含任何记录,则为.T. 如指定工作区中没有打开表文件,则为.F. 表文件首测试: BOF([<工作区号>|<表别名>]) 说明:如打开表,表中不含记录,则为.T. 如指定工作区中没打开表,则为.F. 5、 记录号测试(测试当前记录)

RECNO([<工作区号>|<表别名>]) 6、 记录个数测试

RECCOUNT([<工作区号>|<表别名>]) 没打开表则返回 0 7、 8、 SELECT()返回当前工作区区号 DBF([数值表达式])返回该区中打开的数据库文件名字,省略 参数则测试当前工作区中打开的数据库文件名字。
25

说明:数值表达式为工作区号 9、 FCOUNT([数值表达式])返回该区中打开的表文件的字段个数。

10、 FOUND([数值表达式])搜索命令检测函数 判断该区中搜索定位命令的执行情况。 如最后一个 LOCATE,CONTINUE,FIND,SEEK 执行成功,则返 回.T. 第五章 第一节 程序设计基础 程序与程序文件

程序是能够完成一定任务的命令的有序集合,程序文件又叫命令文件 一、程序文件建立 .prg MODIFY 二、运行 DO <命令文件> 三、修改 MODIFY COMMAND [<文件名>] COMMAND [<文件名>]

四、 VF 中的交互式命令

命令

是否以回车键结 数据类型 束

定界符

WAIT ACCEPT INPUT

否 是 是

单个字符 一串字符

不用 不用

字符型、数值型、 除数值型的都加
26

逻辑型、日期型 第二节 程序的基本结构

VF 支持两种类型的程序设计方式:一种是结构化程序设计方式,一种是面向对 象的程序设计方式。 结构化程序设计有三种基本结构:顺序结构、选择结构、循环结构 一、 顺序结构 按命令在程序中出现的先后顺序依次执行。 二、 选择结构 1、 2、 条件语句 IF ?? ENDIF 分支语句 DO CASE ??ENDCASE

三、 循环结构 循环体:被重复执行的代码段称为循环体。 1、条件循环 DO WHILE ??ENDDO

2、计数循环:FOR ??ENDFOR 说明:步长值默认为 1 条件成立: FOR A=10 TO 2 STEP -1 当步长为正值,循环变量<=终值 当步长为负值,循环变量>=终值 3、 扫描循环 SCAN??ENDSCAN 功能: 记录指针自动、 依次在当前表的指定范围内满足条件的记录上移动,
27

对每一条记录执行循环体内的命令。 4、 多重循环(也叫循环嵌套)

说明:循环语句成对出现 循环结构只能嵌套不能交叉 不同层次的循环变量不要重名,以免混淆。 LOOP 结束本次循环,EXIT 结束整个循环语句。 第三节 子程序和过程文件

一、内存变量的作用域 1、 公共变量(即所说的全局变量) <内存变量表>

建立:PUBLIC 作用域:各级程序

程序执行完变量不从内存消失。 定义位置:可在任何地方定义 2、 私有变量

建立:PRIVATE <内存变量表> 或 A=2 作用域:建立它的模块及其下属各层模块 建立它的模块程序运行结束,私有变量自动消除。 说明:定义私有变量,并隐藏上级程序中的同名变量,当私有变量被释放时, 被隐藏的变量恢复原值。 3、 局部变量 (LOCAL 不缩写)
28

建立:LOCAL <内存变量表>

作用域:只能在建立它的模块中使用,不能在上层或下层模块中使用。 当建立它的模块运行结束时,局部变量自动释放。 也隐藏同名变量。 二、子程序 子程序以独立的程序文件方式存在磁盘上,一般以 RETURN 命令结束。 子程序一般分为:程序头、程序体、结束标志。 1、 建立:与一般程序文件建立方法一样。 RETURN RETURN RETURN RETURN 三、过程文件 过程文件包含多个过程,用过程名来区分。 过程文件可以单独成一文件,也可以与主程序在一个程序文件中。 1、建立:MODIFY 过程文件的格式: PROCEDURE 语句序列 1 RETURN ENDPRO ?? 2、 过程调用
29

返回主程序 表达式:将表达式值返回主程序 TO TO 程序名:返回指定程序 MASTER:返回到最高级主程序

COMMAND

文件名

过程 1

打开——调用——关闭 (1) 打开 SET PROCEDURE TO (2) 调用: (3) 关闭 SET PROCE TO :关闭所有打开的过程文件 过程文件名列表:关闭指定文件 过程文件名表

RELEASE PROC CLOSE PROC 四、 自定义函数 1、 2、

定义:用户按一定的规则自行定义函数,这种函数称为自定义函数。 格式:FUNCTION <函数名> [ PARAMETERS <语句序列> RETURN [<返回值>] [<变量名表>]

<参数表>]

说明: (1)可将自定义函数放在主程序的后面,调用时用函数名。 也可将自定义函数单独存成一个文件,调用时用文件名。 (2)如果调用时有参数传递,则在自定义函数中的第一个可执行语 句必须是 PARA (3)返回值类型:可以是常量、变量、表达式。若省略则返回.T.

调用模块程序(子程序、过程名、自定义函数)的格式: 格式 1:DO <文件名>|<过程名> WITH <实参列表>

格式 2: <文件名>|<过程名> (实参列表)
30

第四节

参数传递

主程序调用子程序、过程或函数时常需要参数传递。 一、实参、形参 实参:出现在主程序中,跟在格式 1 的 WITH 后或格式 2 的()内。 可以是常量、变量、表达式、函数。 形参:出现在子程序、过程、自定义函数中,跟在 PARAMETERS 后,用于 接收实参的值。 形参被调用时才有效,调用结束即释放。 说明: (1)实参与形参在数量、类型和顺序上应一致,形参数量多时,多余的 值为.F. (2)实参是变量时,在子程序中实参变量名被隐藏。 实参是数值传递时,子程序中实参变量名不隐藏。 二、参数传递说明表: 调用方式 参数是常量、表达式、 参数是变量 (A) DO??WITH?? AA(??) 第三章 值传递,不返回值 默认值传递,不返回值 创建查询和视图 地址传递,返回值

使用查询和视图可以从一个或多个表中检索用户需要的数据。 查询与视图的区别: (1)更新数据方面 查询结果只能浏览,不能对数据进行修改。
31

视图结果可以修改,并可以把修改后的结果回存到源表中。 (2)查询文件是一个独立的数据文件,不属于任何数据库 视图文件是数据库的一部分,保存在数据库中。

第一节

创建查询

两种方法:一种是查询向导 另一种是查询设计器 查询文件扩展名为: 一、使用查询向导创建 文件——新建——查询——查询向导 项目管理器——数据标签——查询——新建——查询向导 创建过程中需设置:要显示的字段、筛选条件、是否按某字段排序 二、使用查询设计器创建 1、设置表间的联接类型: 内部联接: 默认 列出左字段列表与右字段列表相匹配的记录 左联接:列出左的全部记录,且列出右中与左相匹配的记录 右联接:列出右字段中的所有记录,且列出左中与右字段相匹配的记录。 完全联接:列出两表中的所有记录,不考虑匹配问题 2、设置查询条件: 在实例框中输入:字符串只要与表的字段名不同,则可以不用定界符 日期型:用花括号引起来 逻辑型:必须加句点号
32

.qpr

如果是多个条件,根据要求用 AND 或 OR 3、分组查询:指只输出关键字段值相同的多条记录中的一条。 4、创建计算字段查询 利用“字段”选项卡中的“函数和表达式”创建一个计算表达式 格式:表达式 as 字段名称

说明:只是在运行查询时看到增加的字段,并非真正改变了表。 三、运行查询 方法一:在“项目管理器”中,单击“查询”文件——运行 方法二:程序——运行——找到文件 方法三:命令:DO 查询文件名.qpr (注意扩展名不能省略)

方法四:查询菜单——运行查询 四、设置查询去向 可将查询结果输出到不同的界面,默认输出为“浏览” 查询——查询去向 1、浏览:浏览显示结果 2、临时表:保存到一个临时表中,关闭表时自动清除 运行完可立即用“显示”——“浏览??” 3、表:保存在一个自由表中 运行完,可在硬盘上找到该表文件 4、图形:保存在一个图形文件中 5、屏幕:运行后,在屏幕上输出 6、报表:将查询结果保存在一个报表文件中
33

7、标签:将查询结果保存在一个标签文件中。

第二节 视图分为:本地视图和远程视图 本地视图:从本地提取表中的相关记录

创建视图

远程视图:从远程数据库(远程服务器中)提取表中的记录。 一、使用视图设计器创建本地视图(方法与查询相同) 1、启动“视图设计器” 2、添加表或视图 3、建立表间联接 4、选择显示字段、筛选条件、排序依据、分组依据等 5、完成后运行 二、更新视图 创建视图时要更新数据,必须设置更新条件。 设置更新条件时,必须给每个表定义关键字段。关键字段的值要“唯一” ,否 则需指定多个关键字段来避免重复。 “更新条件”选项卡: 1、表:列出当前添加到设计器中的所有表 2、字段名:列出可以更新的字段 钥匙:关键字段 铅笔:可更新的字段 3、发送 SQL 更新:要更新原始表中的数据,必须选中此项
34

4、SQL WHERE 子句 “关键字段” :当源表中的关键字段被修改时,更新失效。 “关键字段和可更新字段” :当修改了源表中的关键字段或任何可更新的 字段时,更新失效 (例:1 步:先改表中学号 2 步:运行视图,改学号。结果更 新失败) “关键字和已修改字段” :从视图首次检索后,如果关键字段或任何被用 户本地修改过的字段在源表中又被改变,则更新失败。 说明:首次检索指将原表中的更新应用到视图中。 (例:1 步:先改表中学号 2 步:运行视图 号 4 步:在视图中改学号。结果更新失败) 3 步:再改表中学

5、选择更新方式 SQL DELETE 然后 INSERT: 先删除记录, 然后以在视图中输入的新值 取代源值 SQL UPDATE:使用 SQL UPDATE 命令来更新记录 三、创建参数视图 目的:每次运行视图时,根据输入值的不同而检索到不同的结果。 在设置筛选条件时,在实例处输入:?提示信息 四、视图打开、浏览、删除 打开:USE <视图名> 浏览:BROWS 删除:DROP VIEW
35

NODATA IN <工作区>

说明:查询、视图的数据源是一样的。都是数据库表、自由表、视图 VFP 中 messagebox( )函数的完整用法

一、功能:messagebox( ) 函数显示一个用户自定义对话框。 二、语法:MESSAGEBOX(“提示信息”[,对话框属性 [,对话框窗口标题]]) 三、参数: (1) 提示信息:指定在对话框中显示的文本。 (2) 对话框窗口标题:指定对话框窗口标题栏中的文本。若省略标题栏中将显 示“Microsoft Visual FoxPro”。 (3) 对话框的属性 messagebox( ) 函数 nDialogBoxType(对话框的属性)·参数 设置按钮属性 0:【确定】 1:【确定】【取消】 设置图标 设置默认按钮

16: “停止”图标 0: 第一个按钮 32:问号 256:第二个按钮 512:第三个按钮

2: 【放弃】 【重试】 【忽 48:惊叹号 略】 3:【是】【否】【取消】 64:信息(i)图标 4:【是】【否】 5:【重试】【取消】 格式举例:

messagebox("是否真的要退出系统?",2+32+256,"退出")
36

对话框提示信息文本为“是否真的要退出系统?” 对话框标题栏文本为“退出” 2 表示:按钮: 【放弃】 【重试】 【忽略】 。 32 表示:消息框显示图标问号。 256 表示:默认按钮:第二个按钮“重试”。 四、返回值(N 型) 回值 1 2 3 4 5 6 7 例:测试返回值: X=MESSAGEBOX( “是否退出” “退出系统” ,2, ) 运行后点击“确定”按钮,则 X 值为 1 按钮 确定 取消 放弃 重试 忽略 是 否

第六章

表单

6.1 6.2 创建表单(FORM) 表单是为了方便用户对数据记录的控制,由一个或多个页面组成的,类似于标 准的窗口。 表单的数据源是表(数据库表或自由表) 、视图。 一、 面向对象的基本概念 对象(object) :独立存在的实体。客观世界的任何实体都可以被看成是对象。

37

如一个文本框,一个按钮 属性(property):对象的特征。如文本框的大小,字体等 事件(event):指对象所发生的特定事情(动作) 。是固定的,由系统提供,用户 不能创建。如按钮的 CLICK 事件。需由用户编写代码来完成对此动作的响 应。 方法(method):描述对象行为的过程,即“干什么” 类:具有相同特征的对象的集合。同一类对象具有相同的属性和方法。如容器 类和控件类 说明: 1、 事件: (1)事件由系统预先定义,用户不能定义新事件

(2)事件作用于对象,对象识别事件并作出反应 (3)事件可由系统引发,如生成对象时系统就引发 INIT 事件;也可由用 户引发,如用户单击产生 CLICK 事件。 (4) 事件代码在事件引发时执行,也可像方法一样被显示调用。 如:调用方法:THISFORM.LIST1.ADDITEM(“计算机系”) 调用事件代码:THISFORM.COMMAND1.CLICK (5) 没编写代码的事件,即使发生也不会有任何反应。 2、方法: (1)方法也称方法程序,是对象能够执行的操作。 (2)方法程序代码由 VF 定义,对用户是不可见的。 3、 方法与事件的区别 (1) 用户可以新建方法,但不可新建事件 (2) 方法与事件有相似之处,都是为了完成某一任务。但同一事件可完
38

成不同的任务,取决于所编写代码,如“开始” “退出”两按钮的 CLICK 事件任务不同。方法是任何时候调用都完成同一任务。 二、 创建表单(表单文件的扩展名为.scx,同时生成扩展名为.SCT 的表单备注 文件) 1、两种方法:利用向导、利用表单设计器 2、具体操作方法:三种 A、文件——新建——表单——(向导、表单设计器) B、在项目管理器中:文档——表单——新建(向导、表单设计器) C、命令:CREATE 3、表单种类 A、 单一表单:基于一个表或视图(表单的数据源就是表或视图) B、 一对多表单:基于多个表或视图(父表、子表) 4、运行表单(4 种方法) A、项目管理器,选表单——点“运行” B、工具栏上的! (运行按钮) C、程序——运行菜单 D、命令:DO FORM 表单文件名 表单文件名 FORM 表单名(表单设计器)

5、打开已存在的表单文件:MODIFY FORM 6、创建表单集: (1)打开表单设计器 (2) “表单”菜单——创建表单集

(3) “表单”菜单——添加新表单、移除表单
39

三、 表单属性、事件及方法 1、属性 alwaysontop:指定表单是否总位于其他打开窗口之上(默认 F) autocenter: 指定表单对象首次显示时,是否自动在 VF 主窗口中居中 backcolor : 指定表单窗口的背景色 borderstyle: 指定表单的边框样式 0-无边框 1-单线边框 2-固定对话框 3-可调边框

caption: 表单的标题栏显示的文本 height: 表单高度 width: 表单宽度 maxbutton: 是否有最大化按钮 minbutton: 是否有最小化按钮 moveable: 表单是否能移动(表单运行时) 2、表单的常用事件 LOAD:在运行表单时先引发表单的 LOAD 事件。因为此时表单的控件尚未 建立,所以该事件代码不能用于处理表单中控件,但可打开数据库和表等。 INIT:窗体初始化数据时引发。它在 LOAD 事件之后。 CLICK:单击表单空白处或单击控件引发此事件。 DBCLICK:双击表单空白处或双击控件引发此事件。 ACTIVATE:在表单对象被激活时引发,用鼠标单击或用其他方法设置该窗体 为激活表单。 GOTFOCUS:当控件获得焦点时引发
40

LOSTFOCUS:当控件失去焦点时引发 DESTROY:在释放表单时触发。 Unload:在关闭表单或表单集时触发。在 DESTROY 事件之后。

3、方法:属于 VF 中的内部函数,完成特定功能 RELEASE:从内存中释放表单或表单集,关闭表单。 REFRESH:刷新对象的屏幕显示 SHOW:显示表单,将 VISIBLE 置为.T.,并将该表单置为活动对象 HIDE:将表单隐藏,将 VISIBLE 置为.F. SETFOCUS:让对象获得焦点,使其成为活动对象 四、 对象的引用 1、 引用对象本身的属性方法和事件: “THIS”

例:if this.caption=”确定” 2、 引用与本身对象处于同一容器中的对象:THIS.PARENT.对象名

例:this.parent.command1.enabled=.t. 3、引用当前表单中的对象:THISFORM.对象名 五、表单控件的使用 1、 控件使用

表单“属性”对话框组成:对象列表框、选项卡、属性设置框、列表框 容器:可容纳其它对象的对象,为父对象 6 个基本容器类:表单、表单集、命令按钮组、选项按钮组、表格、页面 控件:已含在容器中的对象,但不能作为父对象。如文本框、命令按钮等
41

说明: (1) 同时生成多个控件:先单击“按钮锁定” (2) 控件大小:在表单中单击——默认大小 在表单中拖动——定义大小 (3)绑定数据时,用到“生成器锁定” 2、控件的公共属性 控件的属性窗口组成:全部、数据、方法程序、布局、其他 5 个选项。 数据:显示对象的数据属性。 方法程序:显示对象的方法程序。

布局:显示对象的外观属性。 其他:用户自定义对象属性。 caption: name: left、top: height、width: backcolor、forecolor: fontname、fontsize: visible: enabled: autosize: tabstop: readonly: 3、控件公共事件 事件 发生时间
42

控件上显示的文字 控件名称 控件位置 控件的高、宽 控件背景颜色、文字颜色 文字的字体、字号 控件是否显示 控件是否有效 是否能依据其标题文字的大小自动调节大小 当按 tab 键时能否将焦点移到该控件上。 控件中的内容是否只读

Click Rightclick Gotfocus Lostfocus Keypress 4、公共方法 方法 SetFocus 结果

单击该对象时 右击该对象时 该对象获得焦点时 失去焦点时 当按下某键时

说明

将焦点移到某控件上 只有当 enabled 为.t.时 去(获得焦点)

6.3 表单控件的使用 一、标签控件(LABEL) 用于显示文本,一般用来描述固定的信息,常用提示和说明信息。可以单独 使用也可以与其他控件接合使用。 属性: CAPTION NAME 控件标题 控件名称

ALIGNMENT 指文本在控件中的对齐方式: 0—左 (默认) 1-右、 2、 居中 FONTSIZE FONTNAME TOP 文字大小 文字字体 上边距离
43

LEFT HEIGHT WIDTH

左边距离 高 宽

BACKSTYLE 标签背景是否透明:1-不透明 0-透明 AUTOSIZE VISIBLE 指定标签是否能随其中文本的大小而改变:T、F 指定对象是可见还是隐藏:T、F

二、文本框、编辑框控件:用于显示和编辑数据,以及通过表单给内存变量赋 值。 数据类型有字符型、数值型、逻辑型、日期型。 文本框(TEXT) :一般包含一行数据,数据类型为字符型、数值型、逻辑型、日 期型或日期时间型。 编辑框(EDIT) :比文本框容纳的字符更多,带有滚动条。编辑长字段或备注型 字段。数据类型为字符型。 1、属性: INPUTMASK 如何输入和显示数据 输入:X 代表任意字符;9 代表任意数字 显示:货币符号$、 .小数点位置、*左边显示 CONTROSOURCE 为文本框中编辑的数据指定一个字段或内存变量。 运 行时文本框将显示变量内容, 对文本框编辑结果也保 存在该变量 VALUE 返回文本框的当前内容。 0.00 只能输入数字 如 (整数 部分位数任意)
44

ENABLE

T-文本框可以编辑

F-文本框不能编辑

PASSWORDCHAR 指文本框控件内是显示用户输入的字符还是显示占 位符,指定用作占位符的字符 TABSTOP READONLY 指定用户能否用 TAB 键将焦点移到对象上 T、F 指定文本框是否只读,设为只读后,文本框只能显示 VALUE 属性的内容不能修改 FONTBOLD FONTITALIC SCROLLBARS .T.文字加粗体 .T.文字为斜体 控件滚动条的类型:0-无垂直滚动条 2-有垂直滚动

条(这是编辑框比文本框多出的属性) 2、事件 KEYPRESS CLICK DBCLICK GOTFOCUS LOSTFOCUS 3、方法 SETFOCUS:使文本框得到焦点,方便输入 例子:TEXT1.KEYPREE 事件 在控件上按某个键响应事件 单击鼠标响应事件 双击鼠标响应事件 文本框得到焦点响应事件 文本框失去焦点响应事件

IF

nkeycode=13 Thisform.text2.setfocus
45

endif 结果:当在 TEXT1 中按回车,TEXT2 得到焦点 说明:nkeycode 是按下键的 ASCII 值。 (”回车”的 ASCII 值为 13) 三、命令按钮及命令按钮组:用来引导用户完成某种功能,响应用户的动作并 执行特定的操作 命令按钮(COMMAND) 命令按钮组(COMMANDGROUP) :使许多命令按钮设计成一组 1、属性 CAPTION PICTURE DEFAULT CANCEL VALUE 标题文本(在按钮上显示的文字) 标题图像(在铵钮上显示的图像) .T.表示按回车可选择此命令按钮 .T.表示按 ESC 可选择此命令按钮 命令按钮组中被选中的命令按钮序号

BUTTONCOUNT 按钮组中按钮的个数 AUTOSIZE 是否自动调整控件大小以容纳其内容

2、常用事件 CLICK 例子:用命令按钮完成 第一条、上一条、下一条、删除、退出 COMMAND1(第一条) GO TOP THISFORM.REFRESH

46

COMMAND2(上一条) IF NOT BOF()

SKIP -1 ENDIF THISFORM.REFRESH

COMMAND3(下一条) IF NOT EOF() SKIP ENDIF THISFORM.REFRESH

COMMAND4(最后一条) GO BOTTOM THISFORM.REFRESH

COMMAND5(删除) DELE PACK

COMMAND6(退出) THISFORM.RELEASE
47

四、列表框(LIST) :以列的形式显示一组数据供用户选择 组合框(COMBOL) :兼有列表框和文本框的功能 1、属性 rowsource rowsourcetype boundcolumn 列表框中的数据来源,可与指定字段相绑定 数据来源的类型 当列表框包含多项时, 指定哪一列作为 VALUE 属性 的值 1-第一列 columncount LIST(i) SELECT(i) multiselect moverbars sorted 2-第二列

列表框中列的数目 第 i 行的值 (列表框中第 I 行的数据, 其中 I 为变量) 第 i 行是否被选中,T-选中 F-未选中 是否可选择多项(这是列表框才有的) 项目是否可移动 当 ROWSOURCETYPE 为 0 时,列表框中的各项目 是否自动排列(按字母)

integralheight controlsource

是否自动调整高度 指定一个变量或字段保存用户从组合框中选择的结 果

listcount

列表框中的项目个数,可指定一个数值

incrementalseerch 是否支持键盘搜索。.T.时当在列表框中按键盘上的 某键时会自动定位到该字母开头的项上。 listindex 当前选取第几个项目
48

SELECTED 2、方法 ADDITEM REMOVEITEM CLEAR 例子:

表示某条目是否处于选中状态。.t. .f.

增加列表项 移动列表框中项目 移动所有项

增加列表项:THISFORM.LIST1. ADDITEM(“张明”,2) 移动选中项:REMOVEITEM(THISFORM.LIST1.LISTINDEX) 移去所有项:THISFORM.LIST1.CLEAR 五、选项按钮组(单选按钮) :用于建立一个选项按钮组供用户选择,每次用户 只能从中选择一个选项 OPTIONGROUP:OPTION1、OPTION2 在同一时刻,一组中只有一个 OPTION 是选中状态 属性: BUTTONCOUNT CAPTION CONTROLSOURCE 设置组内的按钮的个数 按钮的标题 组的数据来源

DISABLEDBACKCOLOR 失效控件的背景色 DISABLEDFORECOLOR VALUE 失效控件的前景色 OPTIONGROUP 的表示当前选中的按钮是第几个, 也可为按钮标题。 OPTION 的表示当前的 OPTION 是否被选中,选中
49

为 1,否则为 0 六、复选框(CHECK) :用于反映某些条件是否成立,表示为真和假两种状态, 允许用户修改其状态 1、属性 CAPTION PICTURE STYLE 控件的标题文本 控件上显示的图像 显示风格。0-标准 1-图形状态

CONTROLSOURCE 确定复选框的数据源 VALUE 当前复选框的状态。0 或.f.-未选中;1 或.T.-选中;2 或.NULL.禁用 2、常用事件:CLICK 例子:CHECK1.CLICK 事件 IF THIS.VALUE=1 THISFORM.LABEL1.FORECOLOR=RGB(255,0,0) ENDIF 七、微调控件(SPINNER) 功能:用来在输入数值时,利用上、下箭头来增、减数值,也可以通过键盘 的上、下方向键来调整或利用键盘直接输入数值 1、属性 KEYBOARDHIGHVALUE 利用键盘输入数值上限 KEYBOARDLOWVALUE SPINNERHIGHVALUE 利用键盘输入数值下限 利用鼠标输入数值上限
50

SPINNERLOWVALUE INCREMENT VALUE CONTROLSOURCE INPUTMASK 2、常用事件 DOWNCLICK UPCLICK

利用鼠标输入数值下限 微调控件向上(下)递增(减)的幅度,默认为 1.00 初始状态的值 与控件建立联系的数据源 设置在一个控件中如何输入和显示数据

在单击向下箭头时产生 在单击向上箭头时产生

INTERACTIVECHANGE 微调按钮数值改变时产生 八、表格控件(GRID) 用来显示和维护表或视图中的数据,允许用户对表格中的数据进行操作。 表格是按行和列操作和显示的容器 1、属性 COLUMNCOUNT DELETEMARK SCROLLBARS 列数 是否显示删除标记所在列 控件所具有的滚动条类型:0-无; 1-水平; 2-垂直; 3-水平、 垂直 GRIDLINES 表格中是否显示水平线和垂直线。0-无;1-水平;2-垂直; 3-水平和垂直

ALLOWADDNEW

为 T 时,在表中选中一条记录后按向下键头会增加一条空 记录
51

RECORDSOURCE LINKMASTER CHILDORDER RELATIONEXPR

指定与表格绑定的数据源 指定与表格控件中所显示子表相链接的父表(即父表名) 指定建立一对多关系中子表的索引标识 基于父表的字段与子表中的索引相关的表达式

说明:红字的四个属性在建无数据环境的一对多表单时常用。 2、GRID 表格控件包含的对象 一个表格对象包含:表头对象(HEADER) 、列(COLUMN)对象、列中文本 对象(TEXT) 3、表格中列的增、删、移动 增加列:选中表格,改变表格的 COLUMNCOUNT 属性值(不在编辑状态下) 删除列:在表格编辑状态下,单击非 HEADER 区域,此时选中的是列,再按 DELETE 键,删除列后,COLUMNCOUNT 自动减 1 移动列:拖动表头区域 4、创建一对多表单:用途是在表单运行时,当父表中显示某条记录时,另一个 表同时显示相关记录。 父表:主索引 方法一:有数据环境 方法二:没有数据环境, (通过设置 GRID 属性) 九、页框(PAGEFRAME)和页(PAGE):通过页框和页可以方便分类组织对象。 页框是页的容器,一个页框可以包含多个页。页本身也是一种容器,一个页 可以包含多个对象。当前被选中的页面为活动页面。 1、常用属性:
52

子表:普通索引

CAPTION PAGECOUNT ACTIVEPAGE TABS TABSTYLE TABSTRECH

设置标题的文本 页数 指定活动页面 指定页面标题是否显示 指定页面标题排列方式.0-两端;1-非两端 页面标题内容较长时,指定所有页的标题排列方 式。0-单行;1-多行

2、在页面上加入和选择对象 右击页框——编辑 单击各页的标签,即可选中此页,可向该页中添加对象。 十、ACTIVEX 绑定控件(又称为 OLE 绑定控件) 常用来在表单上显示与通用型有关的 OLE 对象,常与表中的通用型字段相 关联。显示内容随着记录的变化而变化。 常用属性 设置与表中某一通用字段相关联 ONTROLSOURCE STRETCH 设置 OLE 对象与显示区域的大小比例 0-剪裁;1-等比填充;2-变比填充 AUTOSIZE 根据显示内容的大小自动调整控件的大小,默 认为 F 十一、图像框(IMAGE)
53

用于显示图片文件,以加强程序的界面效果,通常图像框中使用的图片文 件格式为.BMP 常用属性: TOP LEFT 距上方距离 距左方距离 .JPG

HEIGHT、WIDTH 高度、宽度 ENABLED VISIBLED PICTURE 设定是否可用 设定是否可见 指定对象中显示的图片

第七章 报表设计 报表是数据组织与输出的重要形式之一,它是数据库管理系统中常用的打印文 档功能之一。 (打印文档还有标签) 1、报表组成:数据源和数据布局 (1)数据源:指报表的数据来源,可以是数据库表、自由表、视图、查询、临 时表 (2)数据布局:指定报表中各个输出内容的位置和格式。 说明:每次打印时,打印出来的报表的内容不是固定不变,会随数据库的内 容的改变而改变。 2、报表的保存 保存后产生两个文件:报表定义文件.frx 报表备注文件.frt
54

3、修改报表文件:MODI REPORT 文件名 3、报表的种类:单一报表、一对多报表 4、创建报表的方法有 3 种: 报表向导、用“快速报表” 、用“报表设计器” 一、 使用向导创建报表 文件——新建——报表——向导 二、用报表设计器创建 1、 打开报表设计器创建 (1)文件——新建——报表——新建报表 (2) “文档”标签——报表——新建——新建报表 页标头:称为“表头” ,该区域中内容被打印在每一页报表的上方 细节:称为“表体” ,显示报表的具体内容,即每条记录 页注脚:称为“表尾” ,被打印在每一页的下方。一般显示报表的补充资料, 如日期、页码 标题打印一次,页标头打印多次 2、 报表设计器

(1)报表控件工具栏:标签、域控件、线条、图片绑定控件等。 (2)布局工具栏 (3)数据分组 (4)数据环境 (5)调色板工具 3、报表控件的使用
55

(1)标签:用来在报表中添加标题或说明性文字 (2)线条、矩形、圆角矩形 格式——绘图笔——改变线条粗细、线型。 (3)域控件:实现将变量(包括内存变量和字段变量)显示在报表中 (4)图片/ACTIVEX 绑定控件:.bmp 图片来源:文件、字段、占位符 4、美化报表设计 (1)显示——布局工具栏 (2)插入页码、当前日期 用“域”控件,在报表内单击——报表表达式: 日期 DATE() 页码:用 VFP 的变量 -pageno 报表变量:如果需要在运行报表时计算一些数据并输出计算结果,则可以使用 报表变量。 (3)调色板:前景、背景。显示——调色板工具栏 (4)设置字体:格式——字体 5、报表的数据环境 显示——数据环境 当打开报表时,这些被引用的表、视图同时被打开。 6、报表的数据分组 在报表中将具有相同条件的记录分到一起,分组是通过分组表达式实现 的,通常有一个或多个字段组成。
56

.jpg .gif

分组前先按关键字段进行索引。使具有相同值的记录排在一起。 对报表分组时,报表会自动包含“组标头”和“组注脚”带区。 三、创建一对多报表 首先在父表建立主索引,子表建立普通索引。 1、 2、 利用“报表向导“ 利用报表设计器。

四、页面设置及打印 页面设置:文件——页面设置 打印:方法一:单击“常用”工具栏上的“运行”按钮 方法二: “文件”——打印 如果打印的类型为报表或标签时,单击“选项”可以设置打印记录的 范围和条件,只有满足条件的记录才被打印。 第八章 菜单和工具栏设计 菜单设计的基本原则: 1、 2、 3、 4、 每个菜单有一个有意义的标题 将菜单中的菜单项进行逻辑分组,用分隔线分开 一个菜单中的菜单数应限制在一屏内 菜单名要能清晰地表达菜单的功能

一、系统菜单的组成 系统菜单的菜单名和功能由系统定义好了,用户直接使用即可。 表 1 系统主菜单及对应的内部名字 主菜单名 主菜单内部名字
57

文件 编辑 显示 工具 程序 窗口 帮助其 表2

_msm_file _msm_edit _msm_view _msm_tools _msm_prog _msm_windo _msm_systm “文件”子菜单各选项及其内部名字 内部名字 _mfi_new _mfi_open _mfi_close _mfi_save _mfi_savas _mfi_revrt

“文件”菜单项 新建 打开 关闭 保存 另存为 还原

主菜单名相当于 CAPTION,内部名字相当于 NAME 配置系统菜单的命令: SET SYSMENU AUTOMATIC |ON | OFF| TO <菜单名> | TO

<DEFAULT> 说明: 功能:设置是否允许用户程序访问系统菜单及对系统菜单进行重新配置。 各选项含义:
58

(1) ON|OFF:允许/禁止应用程序访问系统菜单 (2) TO <菜单名>:指重新配置系统菜单,只显示<菜单名>中指定的菜单项。 (3) TO <DEFAULT>恢复系统菜单的默认设置 (4) AUTOMATIC 显示系统菜单 (5) SET SYSMENU TO 是屏蔽系统菜单

二、菜单设计器 VF 中支持两种类型的菜单: 条形菜单(一级菜单) :在设计器中首先显示和定 义的。 弹出式菜单(子菜单) : 用户定义菜单时,首先确定“主菜单” ,再考虑“主菜单”中的菜单项及菜单项 中含有的子菜单。 一般“主菜单”没有直接的任务,而是将任务分给菜单项及子菜单。 菜单设计器组成: 1、 菜单名称:输入菜单的名字 访问键(热键) :设置时在菜单名后加 \< 分隔线:\-. 一般在子菜单中出现。

A、 B、 2、

结果:指选中菜单时执行的操作。

(1)命令:选择该选项,表示该菜单项用来执行一条命令语句。命令语句写 在右侧文本框中。 (2) 填充名称: 默认状态下, 系统会自动为每个菜单项添加一个唯一的名字。 一般该项不需设置。 (3)子菜单:表示该菜单包含下一级子菜单。右侧会出现“创建”或“编辑”
59

(4)过程:为菜单项定义一个过程。右侧会出现“创建” ,单击创建就可写 入一条或多条语句。 3、 选项

单击按钮会出现“提示选项”对话框。主要用来设置快捷键 4、 菜单级:用来指定或改变当前设计的菜单在菜单层次结构中的位置。

菜单项:插入、插入栏(用于插入系统菜单项) 、删除 三、菜单文件保存、运行 1、 保存:文件——保存 生成两个文件:.mnx (菜单文件) 2、生成菜单程序: 在打开菜单设计器状态下,单击“菜单”——生成。生成的文件为.mpr 3、运行菜单程序: (生成目标程序文件.MPX) 程序——运行 DO 菜单文件名.mpr (注意扩展名不能省略) 4、修改菜单文件 MODIFY MENU 四、创建菜单 利用菜单设计器 快速菜单:菜单——快速菜单 五、创建快捷菜单 (右击 RIGHTCLICK 事件) <菜单文件名> .mnt(菜单备注文件)

1、 创建方法:新建——快捷菜单应用 2、 保存、生成.MPR 文件
60

3、 将快捷菜单应用于表单中 将表单中控件的 RIGHTCLICK 事件代码写成: DO 快捷.mpr 六、定义工具栏 补充:创建表单集: (1)打开表单设计器 (2) “表单”菜单——创建表单集 (3) “表单”菜单——添加新表单、移除表单 1、 创建自定义工具栏 显示——工具栏,在出现的对话框中单击“新建” ,输入名字后出现“定制 工具栏”对话框。从左侧选分类,将右侧需要的按钮拖到自定义工具栏上。 (1)修改工具栏:删除按钮:将按钮直接拖出 右击工具栏——定制 (2)删除自定义工具栏:显示——工具栏——选中后点“删除”按钮 2、 定义工具栏类 工具栏类:TOOLBAR 生成可视类库 .vcx

方法一:文件——新建——类 方法二:在“项目管理器”——类——新建 在出现的对话框中输入:类名、派生于(TOOLBAR) 、存储于(存储位置 和文件名) 在类设计器中单击“表单控件工具栏”中的控件,向工具栏(TOOLBAR1) 中添加控件。再给各个控件定义方法、程序。 七、在表单集中添加工具栏
61

(1) 打开表单集 (2) 单击“表单控件工具栏”上的“查看类”——“添加” ,将已创建完的 工具栏类库添加进来。 (3) 此时“表单控件工具栏”就将该“类库”中的“类”显示在工具栏上, 单击某个“工具栏类”按钮,再在表单集中单击即可添加进来。 移除工具栏类:单击此工具栏类——“表单”菜单——移除表单。

62

63


更多搜索:VF复习教案
赞助商链接
推荐相关:
网站首页 | 网站地图
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com