VFP程序设计第三章

合集下载

数据库管理系统VFP-第三章

数据库管理系统VFP-第三章
第三章 表单设计与应用
1
本章要点
3.1 面向对象的程序设计
3.2 创建表单
表单的属性、 3.3 表单的属性、事件和方法
3.4 表单集与多重表单
2
3.1 面向对象的程序设计
对象(Object) 客观世界里的任何实体都可以被看作是对象。对象 可以是具体的物,也可以指某些概念。 从编程的角度来看,对象是一种将数据和操作过程 结合在一起的数据结构,或者是一种具有属性(数据) 和方法(过程和函数)的集合体。事实上程序中的对 象就是对客观世界中对象的一种抽象描述 (1)对象属性:属性用来表示对象的状态。 (2)对象方法:对象方法是描述对象行为的过程。
含义 列表框 微调 表格 图像 计时器 页框 ActiveX控件 ActiveX绑定型
5
类名 Line Shape Container Se含义 线条 形状 容器 分割符 超级链接 活动文档 (表格)列
类名 Control Page Form FormSet Header Custom ToolBar
4
类名 Label Text Box Edit Box Command Button Command Group Option Group Check Box Combo Box
含义 标签 文本框 编辑框 命令按钮 命令按钮组 选项按钮组 复选框 组合框
类名 List Box Spinner Grid Image Timer Page Frame ActiveX Control ActiveX Bou Control
31
3.向数据环境添加表或视图。在数据环境设计 器环境下,按下列方法向数据环境添加表或视 图: 在系统菜单中选择【数据环境】|【添加】命 令,或右键单击“数据环境设计器窗口”,然 后在弹出的快捷菜单中选择【添加】命令,打 开“添加表或视图”对话框,如图所示。如果 数据环境原来是空的,那么在打开数据环境设 计器时,该对话框就会自动出现。

第3章VFP的编程工具与编程步骤

第3章VFP的编程工具与编程步骤

代码窗口
表单控件工具 栏 表单生成器
第3章 VFP的编程工具与编程步骤
3.2.3 “表单控件”工具栏
单击“表单设计器”工具栏上的“表单控件工具栏”
按钮,屏幕出现“表单控件”工具栏,可以把它拖放到 适当的位置。
第3章 VFP的编程工具与编程步骤
3.2.4 “属性”窗口
设计时,一般在“属性窗口”中修改或设置属性。 通过单击“表单设计器”工具栏中的“属性窗口” 按钮 ,可打开“属性”窗口。
第3章 VFP的编程工具与编程步骤
1. “对象”下拉列表框 标识当前选定的对象。单击右端的向下箭头,可 看到包括当前表单(或表单集)及其所包含的全部对 象的列表。可以从列表中选择要更改其属性的表单或 对象。
第3章 VFP的编程工具与编程步骤
2. 选项卡 选项卡中,按分类方式显示所选对象的属性、事件 和方法。 (1) “全部”选项卡:显示全部属性、事件和方法。
第3章 VFP的编程工具与编程步骤
3.4.3 控件的复制与删除
对控件进行复制与删除的常用方法有下面3种:
• 将所要操作的控件变为“活动控件”,按〈Ctrl〉
+〈C〉键将该控件拷贝到剪贴板中,按〈Ctrl〉+〈V〉
键可以在表单中得到该控件的复制品。对于活动控件,
只须按〈Delete〉键即可删除该控件。 • 用常用工具栏上的“复制”和“粘贴”按钮,以及 “剪切”按钮。 • 直接用鼠标右击要操作的控件,打开快捷菜单,在 快捷菜单中选取需要的项。
第3章 VFP的编程工具与编程步骤
3.2 表单设计器
3.2.1 打开表单设计器
打开表单设计器的方法有4种。 • 单击常用工具栏上的“新建”按钮,弹出“新建” 对话框,选中“表单”单选钮,单击“新建文件”。 • 在命令窗口中使用CREATE FORM命令。 • 在“项目管理器”的“文档”选项卡中,选中“表 单”,再单击“新建”按钮。

VFP第3部分(程序算法及顺序分支)

VFP第3部分(程序算法及顺序分支)

y/4=int(y/4) and y/100<>int(y/100) or y/400=int(y/400)
CLEAR INPUT "请输入年份:" to y IF y/4=int(y/4) and y/100<>int(y/100) y/400=int(y/400) ?str(y,4)+"年是闰年" ELSE ?str(y,4)+"年不是闰年" ENDIF RETURN
例 交换变量A和B的值。 算法描述如下: S1:A→T; S2:B→A; S3:T→B; 根据此算法,马上可以写出VFP程序如下: T=A A=B B=T
A B
T
一个算法应该具有以下特点:
①确定性。
②有穷性。
③有效性。 ④输入。 ⑤输出。
任何一个问题能否让计算机处理, 关键在于能否设计出合理的算法,有 了合适的算法,再使用合适的计算机 语言来编写程序。 VFP就是一种语言工具。要用VFP 编写出高质量的程序,一方面要构建 合理的算法,另一方面要掌握VFP的语 法规则,它是实现算法的基础。
P
Y
A
条件p
N B
T
F
A
B
(a)流程图
(b)N-S图

循环结构:是指重复执行某些操作, 重复执行的部分称为循环体。
N 条件P Y A 条件P
A
(a)流程图
(b)N-S图
程序文件中的常用命令
1、基本的输入/输出命令
1)INPUT命令(任意数据输入命令,除M和 G型之外的其他类型的数据) 格式:INPUT [<提示信息>] TO <内 存变量> 功能:在屏幕上显示[<提示信息>], 并等待用户通过键盘输入表达式,再把表 达式的值赋给指定的<内存变量>。

Visual FoxPro-第3章_自由表的基本操作

Visual FoxPro-第3章_自由表的基本操作
(1)方法1:在创建新表结构, 结束退出时立即添加。 (2)方法2:打开表后,通过浏览窗口添加。 (3)方法3:打开要添加记录的表,通过命令添加。 – – APPEND 在浏览或编辑窗口中手工添加多条记录。 APPEND FROM 从另一个表中添加记录 从一个文本文件中添加记录 从数组中添加记录
3.2 表的操作
3.2 表的操作
3.2.2 表的打开与关闭
2. 关闭表
– – – 方法1:新建或打开另一个新表同时,自动关闭旧表。 方法2:关闭Visual FoxPro系统关闭表。 方法3:用命令USE关闭表。 格式:USE
3.2 表的操作
3.2.3 浏览表中的数据
1. 浏览窗口和编辑窗口 2. 调整浏览窗口
说明: “&&注释部分”是对命令的说明, 不是命令的可执行部分,可以省略不写。
• 命令格式说明 1. 命令动词
– 表示要执行的操作,是一个命令中必不可少的部分。
3.2 表的操作
2. 语句体
由一系列功能子句构成,表明操作的对象及对操作的限制, 使用时可以根据需要选择一个或多个功能子句,也可以一个 都不选。 命令动词(List)的功能子句有5类:
3.2 表的操作
6. 复制生成排序表文件 格式:SORT TO <排序文件>
ON<字段1>[/A|/D][/C][,字段2][/A|/D][/C] [<范围>][FIELDS<字段表>][FOR|WHILE <条件>]
功能:按指定字段重新排列记录并生成新文件,原文件不变。 说明:排序文件以排序字段值为序,优先按字段1排序,...
3.1 表结构
3.1.1 表结构概述
• 表(关系)的构成:

VFP第三章(10版)

VFP第三章(10版)

表结构的显示、 第二节 表结构的显示、修改和复制
一、表结构的显示 格式1 <工作区号>/<别名 工作区号>/<别名>] 格式1:DISPLAY STRUCTURE [IN <工作区号>/<别名>] 格式2 <工作区号>/<别名 工作区号>/<别名>] 格式2:LIST STRUCTURE [IN <工作区号>/<别名>] 功能:两条命令的功能相同,都是显示表文件的结构 显示表文件的结构。 功能:两条命令的功能相同,都是显示表文件的结构。 STRU进行分页显示 进行分页显示; STRU连续显示。 连续显示 DISP STRU进行分页显示;LIST STRU连续显示。 说明: 说明: 显示表文件的结构,包括每个字段的名称、类型和宽度。 ①显示表文件的结构,包括每个字段的名称、类型和宽度。 显示表中当前的记录数和最近更新的日期。 ②显示表中当前的记录数和最近更新的日期。 如果表中有一个相关备注字段,则显示备注字段块的大小。 ③如果表中有一个相关备注字段,则显示备注字段块的大小。 显示所有字段的总宽度和表的代码页。 ④显示所有字段的总宽度和表的代码页。
表结构的显示、修改和复制( 第二节 表结构的显示、修改和复制(续)
演示一: 演示一:表结构 的全盘复制。 的全盘复制。
结果显示
表结构的显示、修改和复制( 第二节 表结构的显示、修改和复制(续)
演示二: 演示二:表结构 部分字段的复 的部分字段的复 制
结果显示
第三节 表记录的输入
一、利用界面操作输入表的记录
表结构的建立( 第一节 表结构的建立(续) BM表的表结构为 表的表结构为: 3、BM表的表结构为:

第3章VFP数据库及其操作2

第3章VFP数据库及其操作2

修改数据库
前两种方式打开同时,自动进入修改状态(数据库设计器)。 命令方式打开数据库设计器方法是: Modify database [数据库文件名 | ? ] (缺省则为当前数据库 3 )
将数据库添加到项目中
在项目管理器/数据选项卡/选定数据库/添加
删除数据库
从项目管理器中删除数据库(点击移去按钮,弹出对话框)。 移去:从项目管理器中移出,但不做物理删除(磁盘上保留) 删除:完全删除(磁盘上也不保留) 注:这样删除是不能删除数据库中包含的表、视图等文件。 命令方式删除数据库: Close database (不加参数,关闭当前数据库) Close database all (关闭所有打开的数据库) 注:使用命令方式删除数据库之前,要先关闭它才行! Delete database [数据库文件名 | ? ] (删除数据库) 两个参数举例: Delete database 订货管理 deletetables 同时删除所含表文件 Delete database 订货管理 recycle 不做彻底删除,放入回收站
12
3.3表的基本操作
3.3.1使用浏览器操作表 界面方式:项目管理器/数据库/表/浏览 命令方式:用use命令打开表后,键入browse命令 3.3.6记录指针的定位: 记录指针:VFP数据库的表是由行和列组成的,每一行称 为一条记录。每一条记录根据输入的先后顺序,有一个物理 记录号。VFP为每张表都保存一个记录指针,它指向当前操 作的记录,通过其记录号来标识。 VFP对单行记录操作时,一定是对记录指针指向的当前记 录做操作,不会影响其他记录。所以一定要时刻注意记录指 针的位臵,以便准确的对目标记录进行操作。
使用(打开)数据库
在项目管理器中打开数据库: 从“打开”对话框中打开数据库: 命令方式打开数据库: Open Database [数据库文件名 | ? ] 说明: 只读方式打开:不允许对数据库进行修改。 独占方式打开:不允许其他联网用户同时使用该数据库。

VFP第三章

VFP第三章

2.开始标志:开始标志在第一行记录上一行,用 开始标志:开始标志在第一行记录上一行, 开始标志 于防止记录指针出界,使用 于防止记录指针出界,使用bof()函数可 函数可 以获知记录指针是否指向该行 3.结束标志:结束标志在最后一条记录下一行, 结束标志:结束标志在最后一条记录下一行, 结束标志 使用EOF()函数。 ()函数。 使用 ()函数
2)工作区中表的别名 USE 表文件名 ALIAS 别名 ALIAS([工作区号])得到指定工作区的表别名。 SELECT([别名])测试指定表别名的工作区号。 3)当前工作区(VFP正在使用的工作区,即默认工作区) (1)在“数据工作期”中设置当前工作区 (2)命令:SELECT 工作区号 | 别名
3.2 表的打开与关闭
3.2.1工作区
1)概念(所谓工作区是指用以标识一张打开的表的区域) 在打开一张表时,必须为该表指定一个“工作区”。 编号1—32767,前10个也可用A—J
注:1如果某工作区中已有表打开,可以用表的”别名”作为工作区号. 2一个工作区中只能打开一张表,如果在一个工作区中已经打开了一张表,再 在此工作区中打开另一张表时,前一张表将自动关闭.
3.3表的记录
3.3.1记录的定位 记录的定位 当用户向表中输入数据时,VFP ,VFP为每个记录 (当用户向表中输入数据时,VFP为每个记录 都按输入顺序指定了”记录号” 第一个为1, 都按输入顺序指定了”记录号”,第一个为1, 依次类推.) 依次类推.)
表被打开后,有三个控制记录的标志: 表被打开后,有三个控制记录的标志:
3.3.5.使用 INSERT-SQL 命令
表名[ 字段1[ 字段2 ] 1[, INTO 表名[(字段1[,字段2…])]; VALUES(表达式1[ 表达式2 ] 1[, VALUES(表达式1[,表达式2…]) 其中, 其中,字段名列表用于指定插入的新记录的哪 些字段需要填值.缺省时表示全部字段. 些字段需要填值.缺省时表示全部字段. 可以使用以下命令向xs表中插入一条新记录. xs表中插入一条新记录 例:可以使用以下命令向xs表中插入一条新记录. insert into xs(xh,xm,xb) values 950106”, 高山 高山” 男 (“950106 ,”高山”,”男”) 950106 2.使用APPEND FROM命令追加记录 2.使用APPEND 和APPEND FROM命令追加记录 使用 区号|别名] APPEND [BLANOM 表名 [DELIMTED|XSL] 1.INSERT

vfp第3章(理论)数据库·表

vfp第3章(理论)数据库·表

二、数据表
⑹显示表记录 LIST|DISPLAY [<范围>] [[FIELDS]<字段名表>][FOR <条件>][OFF] <范围>:ALL、NEXT <n>、RECORD <n>、REST OFF:不显示记录号。 注意:省略范围和条件,LIST默认ALL,DISPLAY默 认当前记录。

二、数据表
⑾复制表结构 COPY STRUCTURE TO <数据表文件名> [FIELDS <字段名表>] ⑿复制表记录 COPY TO <数据表文件名> [FIELDS <字段名表>] [<范围>] [FOR <条件>] 注意:省略范围和条件,默认ALL。

二、数据表
⑸记录指针定位
首标记 首记录
当前记录 尾记录 尾标记
一个表被打开时,记录指针自动指向首记录。 ①直接定位 GO|GOTO <记录号>|TOP|BOTTOM ②相对定位 SKIP [<数值表达式>] 注意:SKIP 等价于 SKIP 1

二、数据表
⒁将表的当前记录复制到数组 SCATTER [FIELDS<字段名表>] TO <数组名> ⒂将数组中的数据复制到表的当前记录 GATHER FROM < ⒃向数据库中添加自由表 ADD TABLE <表名> ⒄从数据库中移去或删除表 REMOVE TABLE <表名> [DELETE]

二、数据表
⒀删除表记录 ①逻辑删除(添加删除标记) DELETE [范围] [FOR <条件>] 注意:省略范围和条件,默认当前记录。 ②恢复逻辑删除(去掉删除标记) RECALL [<范围>][FOR <条件>] 注意:省略范围和条件,默认当前记录。 ③彻底删除添加删除标记的记录 PACK ④彻底删除所有记录 ZAP
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下 页 返 回
计算机教研室
内存变量的恢复 格式:restore from <内存变量文件名. [additive] 注意: ①无additive,先清除内存中已有的内存变量,再 恢复 ②有additive,不清除内存中现有的内存变量,把 文件中的变量追加到内存中,当文件中有与内存中同名变 量时,用文件中的变量值替换已在内存的同名内存变量的 值。
数组bst排列顺序为:
bst(1,1),bst(1,2),bst(1,3),bst(1,4),bst(1,5)
bst(2,1),bst(2,2),bst(2,3),bst(2,4),bst(2,5)
下 页
返 回
2数组的赋值
计算机教研室
格式1:S TORE <表达式> TO <数组名表> |<数组元素表> 格式2:<数组名>|< 数组元素> = <表达式> 功能:将表达式的值赋给数组或数组元素。 说明:格式1可以将表达式的值同时赋给多个数组或数组 元素,而格式2只能赋给一个数组或数组元素。若语句中 使用数组名,则表示将表达式的值赋给数组中的每一个下 标变量。 注意:若定义的数组尚未赋值时,系统将给每个数组元素 赋以初值.F.
1算术运算符和表达式
()、+和-、*和/(乘除)、**或^(乘方)、%
下 页 返 回
计算机教研室
2字符串运算符和表达式
只有两个:+和str1+str2:将字符串str1的尾部与字符串str2的首部连接起 来构成一个新的字符串。 Str1-str2:将两个字符串首尾相连构成新的字符串时,str1 尾部的空格移到新字符串的尾部。
2.数值型(Numeric),简称N型 3..逻辑型(Logic),简称L型 逻辑真——.t. .T.或.y. .Y. 逻辑假——.f. .F.或.n. .N. 注意: 其宽度系统固定为一个字符。 页 下
返 回
计算机教研室
4.日期型与日期时间型(Date,Date Time),简称D与T型 格式:美式——mm/dd/yy (默认) 欧式——dd/mm/yy 中国式——yy/mm/dd 改变格式的命令:set date to [ymd/mdy/dmy] 注意:其中的“/‖也可以用“-‖代替,日期型的宽度 系统固定为8个字符。
下 页 返 回
计算机教研室
格式2:?|?? <内存变量名表>
注意:
Ⅰ、若“姓名”是字段变量名,用姓名=―张三”不 能把它放到数据库中,而需要修改记录则用 Replace命令。 Ⅱ、当一个内存变量名与当前打开的数据库中的字 段变量名同名时,要选用内存变量,可在内存变量 名前加前缀m.或m。
下 页 返 回
下 页 返 回
计算机教研室
一、字段变量(N、C、D、L、M、G型) 实际上是指二维表的列,即数据表的字段 二、内存变量(N、C、D、L和S(屏幕)型) 独立于数据库和表之外的变量,用于存放临时数据和中间 结果。 1内存变量的命名规则 2内存变量的赋值 格式1:store <表达式>
to <内存变量名表>
§3.3 常用函数
二、字符函数
1宏替换函数 &字符型内存变量
例:ab=12345
计算机教研室
x=―ab‖
? &x 2求字符串的长度 LEN(字符串) 例:x=―computer‖ ? LEN(x) 显示: 8
3求一个字符串在另一个字符串中的起始位置
下 页
返 回
计算机教研室
5逻辑运算符和表达式
.NOT.
.AND.
.OR.
? .not.(5<10).and.‖Electractic-Mail‖<―electractic-mail‖
显示输出.F.
下 页
返 回
一、数值函数 计算机教研室 1取绝对值函数 ABS(数值表达式) 2取整函数 INT(数值表达式) 3求平方根函数 SQRT(数值表达式) 4求最大值函数 MAX(表达式1,…,表达式n) 5求最小值函数 MIN(表达式1,…,表达式n) 6求余数函数 MOD(表达式1,表达式2) 例:? MOD(10,-3) 显示: -2 注意: 余数的符号与除数的符号相同;余数的绝对值比除 数的绝对值小。 7四舍五入函数 ROUND(表达式1,表达式2) 例: ? ROUND(3.141519,3) 显示: 3.142 返 回 下 页 ? ROUND(15/7,4) 显示: 2.1429
下 页 返 回
计算机教研室
四、系统变量 以下划线开头,它是全局变量(Public)由Foxpro系统定义, 通常由Foxpro系统使用
下 页
返 回
计算机教研室
§3.3 运算符与表达式 表达式是指用运算符将常量、变量和函数连接起来的有 意义的式子
运算符和表达式
FOXPRO共有5类运算符,相应有5类表达式
下 页 返 回
计算机教研室
在命令set exact on下均显示输出.F. ―= =‖是精确比较,不管是set exact on 还是set exact off 状态,两个字符串必须一模一样才为.T. str1 $ str2:字符串str1包含在字符串str2中,为.T.,否 则为.F. ? ―com‖$‖telecommunition‖ 显示输出.T. ? ―Pentium586‖$‖pentium586‖ 显示输出.F.
下 页 返 回
计算机教研室
常量
§3.2 常量
在程序执行过程中其值保持不变的数据称为常量
1.字符型常量——用“”或‘’ 或[]括起来的一 串字符。 “This is a computer‖、 ’88.88’、[数据库系统]
2.数值型常量
3.逻辑型常量——两边有小圆点
“真”: .t. .T. .y. .Y.
页 返 ―假”: .f.下.F. .n. .N.

计算机教研室
4.日期型常量——用CTOD()或{}来表示 例:“1998年10月15日”可表示为:
ctod(―03/10/06‖)或{^2006/03/10} 不能写成
06/03/10或06-03-10
下 页
返 回
计算机教研室
§3.3 变量
变量 在程序执行过程中其值随时可以发生变化的数据称为变 量 变量的三种基本属性:名称、类型、值 变量名的构成原则: ①由字母、数字、下划线组成,但必须以字母、汉字开 头 ②长度不超过10个字符 ③不与FoxPro的保留名(命令、函数名等)相同
计算机教研室
第三章VFP6.0的数据基础主要内容
数据类型 常量 变量 运算符与表达式 常用函数
计算机教研室
§3.1 数据类型
VFP中主要有下列类型数据
1.字符型(Character) ,简称C型
由英文字母、数字等ASCⅡ和汉字组成,最大长度 为254个字符。使用时必须给定界符。
③若为日期型数据则按日期先后次序比较,后者为大 例:? {^1990-08-12}> {^1998-08-12} ④若为汉字则按其机内码的大小进行比较
下 页
显示输出.F.
返 回
计算机教研室
4日期运算符和表达式
只有两个:+和例: 在set date to ymd下
? ctod(―99/02/12‖)+20
说明:语句中的下标是指所定义数组中下标的上限值,下 标可以是常量、变量或表达式,但必须大于0,如果是非 整数,则系统自动取整。
下 页
返 回
计算机教研室
例如:dimension ast(5),bst(2,5) 数组ast排列顺序为:ast(1),ast(2),ast(3),ast(4),ast(5)
下 页 返 回
计算机教研室
5.备注型(Memory) ,简称M型 ——它是用来存放记录中较大的文本,以弥补 C型数据不能超过254个字符的缺陷。其在数据库结 构中宽度固定为4个字节,用于存放指向具体数据的 指针。(具体数据在.FPT文件中) 6.通用型(General) ,简称G型
是指在数据表中引如的OLE(对象链接与嵌入)对象 其在数据库结构中宽度固定为4个字节,用于存放指 向具体数据的指针。(具体数据在.FPT文件中)
? ctod(―99/05/05‖) -ctod(―99/04/20‖)
显示:99/03/04
显示:15
下 页
返 回
计算机教研室
运算符优先级
高 括号()
算术运算符 **或^ *、/ +、-


字符运算符 +、关系运算符 $ 其它关系运算符
低 逻辑运算符 .not. .and. .or.
一维数组A:a ( 1 ),a ( 2 ),a ( 3 ),. . .,a ( n ) 二维数组B:
下 页 返 回
计算机教研室
1数组的定义 格式:DIMENSION <数组名1> (下标1 [ ,下标2 ] )
[ , <数组名2> (下标1 [ ,下标2 ] )……]
功能:定义一个或多个数组中下标变量的个数。
下 页
返 回
例:clear memo
计算机教研室
A=―file‖
B=12.345
save to f4
AA={^1998/03/19}
Disp memo
restore from file2
disp memo && 内存中原有变量a,aa,b已删除
restore from f3
disp memo && 文件file2中变量ab,ac,ad已删除
计算机教研室
4内存变量的保存与恢复 格式:save to <内存变量文件名>[all like/except <通配符>] 例: store ―12345‖ to ab,ac,bc store 12345 to ad,bd,be e=―right‖ display memory save to f1 && ab,ac,ad,bc,bd,be,e 存入文件f1 save all like a? To file2 && ab,ac,ad 存入文件file2 save all except a* to f3 && bc,bd,be,e 存入文件f3
相关文档
最新文档