2012-1VFP第9部分(数据库及表的基本操作)
201220132VFP数据库及表的基本操作

重庆工商大学计算机学院大学计算机教研部
〖温馨提示〗 在该对话框 中可以只选 择姓名字段, 或只选择管 理员编号, 为了避免错 误的选择管 理员,最好 两个字段都 选择。
上一页 下一页
重庆工商大学计算机学院大学计算机教研部
表单执行后,
①选择一用户名,输入密码,如果密码正确(与数 据表中的密码字段对应),单击“进入系统”按钮, 可以调用系统主菜单“图书管理系统菜 单.MPR”(该菜单的设计在第8章完成);
例1:(教材P108) 【例4-10】建立如表4.4所示的 数据表:管理员.dbf,设计如图所示的系统图书 管理系统的登录表单。将表单中的组合框与数据 表中的用户名字段绑定。
上一页
下一页
重庆工商大学计算机学院大学计算机教研部
在表单空白处单击 右键,在快捷菜单中选 择“数据环境”,弹出 “打开”对话框,选择 管理员.dbf,单击“确 定”按钮,在弹出的 “添加表或视图”对话 框中可以选择并添加多 个数据表,在这里我们 选择“关闭”按钮,则 数据表成功添加到表单 中,如图所示。
②如果密码不正确,最多允许输入3次,每次给出 错误提示,如果3次均不正确则直接退出系统,返 回操作系统; ③单击“退出”按钮,可以退出本系统,返回操作 系统。
(教科书P110-111事件代码)
下一页
上一页
重庆工商大学计算机学院大学计算机教研部
通常情况下, ①文本框、组合框等可以作为输入 类的控件; ②标签、文本框、编辑框、列表框、 表格、图像、Active绑定控件等作为输 出类的控件; ③命令按钮、命令按钮组、复选框、 选项按钮组、计时器可以作为控制类 的控件。
第十讲
要点:
数据库数据表的基本操作
1.掌握表中的数据类型
VFP表的基本操作

属性(列)
2.1.2表结构的建立
1.菜单方式 2.命令方式 3.项目方式
字段的基本属性
1. 字段名(Field Name),每一个字段必须取一个名字, 称为“字段名”,用以在表中标志该字段。以字母或汉字开 头,可包括字母、汉字、数字和下划线,长度不超过10。
2.字段的数据类型(Type),表中每个字段都有特定的数 据类型。 3.字段宽度(Width),指该字段所能容纳数据的最大的字 节数,字段的宽度必须能足够容纳可能的最长的数据信息。 除字符型、数值型、浮动型字段由用户根据需要设定字段宽 度外,其它类型均由系统规定宽度。
2.2 表的打开与关闭
2.2.1 打开表 【命令】USE [<文件名>]
【功能】打开表文件,当USE后不加文件名时, 为关闭已打开的表。
2.3 表的显示
浏览窗口的打开: 方法一:打开表,选定“显示”菜单的“浏览”命令
方法二:USE<表名> BROWSE
一窗两区:将窗口分割器向右拖动
BROWSE命令
小数位数(Decimal),对于数值型、浮点型和双精 度型的字段,还可以指定其小数的位数。小数位和 正负号都须在字段宽度中占一位。
空值(NULL)支持,空值是用来指示记录中的一个字 段“没有值”的标志。空值表示没有任何值或没有 确定值,空值不同于数值0、空字符串或逻辑“假”。
2.1.3 表数据的录入
则需要另外删除.FPT文件。
2.6记录指针的定位
1.表中的每个记录都有一个编号,称为记录号。对于 打开的表,会被分配一个记录指针。记录指针指向 的记录称为当前记录。
2.定位记录就是移动记录指针,使指针指向符合条件 的记录过程。使用RECNO()函数可以获得当前记录 的记录号。
VFP表的基本操作

VFP表的基本操作第一课3月8日表的基本操作visual foxpro 是计算机优秀的数据库管理软件之一,采用了可视化的、面向对象的程序设计方法。
表的种类:自由表、数据库表表的基本操作:P11、创建项目2、将数据库添加到项目中13、表结构的修改[改字段名称]9、将自由表添加到数据库中10、数据库中移去表1.索引:在表设计器中建立索引;使用命令建立索引并保存在文本文件中;索引类型1、主索引在指定字段或表达式中不允许出现重复值的索引。
这样索引可以起到主关键字的作用。
一个表只能有一个主关键字,所以一个表只能有一个主索引。
2、候选索引候选索引和主索引具有相同的特性,即要求字段值唯一性。
建立候选索引的字段可以看成是候选关键字,所以一个表可以建立多个候选索引。
3、唯一索引索引项唯一,不是字段唯一。
指在使用相应索引时,重复的索引字段值只有唯一一个值(同一字段值的首次出现)出现在索引项中。
4、普通索引允许出现重复字段和索引项。
Ⅰ、在表设计器中建立索引例题:P28 一Ⅱ、用命令建立索引INDEX index on 索引表达式tag 索引名[OF 索引文件名][FOR 条件表达式] [ASC|DESC][UNIQUE|CANDIDA TE]默认的索引文件名与表同名,否则可以自行指定For 条件表达式给出索引条件,即只索引满足条件的记录;ASCENDING或DESCENDING 指明建立升或降序索引,默认升序;UNIQUE 指明建立唯一索引;CANDIDA TE 指明建立候选索引;删除索引delete TAG 索引名Index on 表达式TAG 索引名# 普通索引Index on 表达式TAG 索引名unique # 唯一索引Index on 表达式TAG 索引名candidate #候选索引可用alter table 建立主索引Alter table 表名add primary key 表达式tag 索引名2.为表格中的字段设置有效性规则、默认值、出错信息的设置:p28 一在表设计器中设置;使用SQL语句设置;Alter table 表名alter 字段名set check 规则error “出错信息”Alter table 表名alter 字段名set default 默认值1、常量类型数值型常量N整型常量I货币型常量Y字符型常量 C日期型常量 D 严格的日期格式:{^yyyy/mm/dd}逻辑型常量.L T.\.F.;.Y.\.N备注型M2、关系表达式运算符==和$仅适用于字符型数据.其他运算符适用于任何类型的数据,但除了日期型和日期时间型数据,数值型和货币型数据可以比较外,其它情况下,前后两个运算对象的数据类型要一致.1、数值型、货币型数据比较按数值大小比较2、日期、日期时间型数据比较越早的日期或时间越小,越晚的日期或日期越大{^2003-02-13}>{^2000-01-30}3、子串包含测试关系表达式”<字符型表达式1>$<字符型表达式2>”为子串包含测试,如果左字符串是右字符串的一个子字符串,则为真,否则为假.”计算机”$”计算机基础”,”计算机基础”$”计算机”,”计算机”$”计算机基础”>”计算机基础”$”计算机”.T. .F..T.3.对表进行初步操作P6 一用sql语句完成表的选择(SELE)、更新(UPDATE)、删除(DELETE)、插入(INSERT)Sele 字段名/表达式from 表名where 条件表达式update 表名set 字段名= 表达式where 条件表达式delete from 表名where 条件表达式insert into 表名(字段名1,字段名N)value(值1,值N)insert into 表名from array 数组名逻辑删除:物理删除:再上PACK命令即永久删除。
VFP第9部分(查询统计及扫描循环)

例:在student.dbf中统计江苏籍学
生的人数。
(实验14 任务1(1) )
方法一: clear use student store 0 to rs,zf do while not eof() if 籍贯="江苏" rs=rs+1 endif skip enddo ? rs use return
use jf
index on 性别 tag xb
total on 性别 to hz fields 积分 use hz browse
学号 姓名 性别 年龄 积分
001 张三 男 30 100
002
李四 女
25
30
例:现有学生成绩表XSCJ.DBF,表结构及部分记录如下: XSCJ.DBF表结构:学号(C/10),课程号(C/6),成绩(N/7/1); XSCJ.DBF的部分记录: (实验14 任务2(1) ) 学号 课程号 成绩 S01 CA01 88 S01 CA02 65 S02 CA01 72 S02 CA02 51 S01 CA03 34 . . . . . . 设该程序的文件名为cx4_1.PRG.应用分类求和(TOTAL)与 统计(COUNT)命令,根据用户输入的学号,计算对应学号 的学生的平均成绩。屏幕显示格式如下: 学生的学号 平均成绩 最高成绩 最低成绩 XXXXXXXXXX XXXXX XXXXX XXXXX
3.数值达式清单>] [to <内 存变量列表> ]……
4.多功能计算命令
命令格式:
calculate <表达式表> to <内存 变量表> …… C、N、D
CNT()、SUM(<数值表达式>)、AVG(< 数值表达式>) 、MAX(<表达式>) 、 MIN(<表达式>)
vfp操作步骤说明

《数据库技术与应用》综合练习——图书管理系统设计实验要求:(1)熟练掌握项目管理器、数据库、表、查询、视图、表单、菜单和应用程序等内容 的应用;(2)学生独立完成,作为平时成绩的一部分;完成后请上传到ftp 服务器上(上传帐 号和密码由各自的任课教师提供)【系统功能模块介绍】图1 系统功能模块图【系统功能分析】1.系统登录:通过密码验证后进入图书管理系统主界面,否则不能运行图书管理系统,保证系统的安全性。
2.数据信息管理:主要是图书信息管理,包括记录的浏览。
3.借阅管理:主要实现图书的借出和归还操作。
4.统计查询:统计过期未还图书的情况,以及师生人数。
5.打印输出:读者借阅明细的打印输出功能实现。
6.退出系统:退出图书管理系统。
【数据库表结构】【实验步骤】1.启动VFP,将“d:\vfp\综合案例\tsgl”文件夹设置为默认的工作文件夹。
2.素材中已提供了项目、数据库、表、视图、数据库表已设置了字段属性、表属性以及索引等,打开该文件夹中的项目文件“tsgl.pjx”。
3.对照图2建立tsk数据库中表与表之间的关系。
图2 数据库表之间的关系4.建立类库文件mylib.vcx。
应用程序的很多界面都要用到“退出”命令按钮,为了提高效率,在类设计器中自定义命令按钮类cmdexit,并保存在类库文件mylib.vcx中,如图3所示。
按钮中显示的图片来自素材中的 exit.ico文件,设置命令按钮的click事件代码为:thisform.release。
图3用户自定义类创建界面5.创建查询利用查询设计器创建查询,文件名存为chaxun1,各界面截图如下:查询设计器截图——输出项查询设计器截图——联接条件查询设计器截图——排序依据6.创建表单ⅰ.系统引导界面(start.scx)图4 系统引导封面系统引导封面(图4)是运行系统后出现的欢迎界面。
显示10秒后进入系统登录界面。
设计步骤如下:(1)新建表单并以文件名start.scx保存。
2012-1VFP第9部分(数据库及表的基本操作)

记录的维护
记录的增加
(见教科书123页)
命令格式: append [blank]
〘例5-3〙在“图书信息管理”项目中建立如图所 示的管理读者信息的表单,保存为“读者信息维 护.scx”,单击“添加读者”按钮,可以通过表单 录入新的读者信息。
“添加读者”命令按钮的Click事件代码如下:
choice=messagebox("确认添加新读者?
(教科书P127)
recall [范围] [for 条件1]
[while 条件2]
3)物理删除表中的记录 (教科书P127)
pack
4)记录清除命令
(教科书P128)
zap
?BOF(),EOF(),RECNO()
与删除相关的命令:(教科书P128)
set deleted on/off
功能:将逻辑删除的记录隐藏或 显示。on为隐藏,off为显示
命令格式:SQL命令更新记录
update <表名> set…
(教科书P130) 例如,在读者表中,将编号为“d0008”读者的联 系电话改为027-3219666。 执行如下命令: UPDATE 读者 SET 联系电话="027-3219666" WHERE 读者编号="d0008"
例:计算cj.dbf的总分和平均分
将数组的数据依次传送到当前记录,以替
换相应字段值。
〘例5-6〙建立一个表单如图所示布局相应的 控件。单击“记录到数组”按钮能将读者表的 第一条记录的读者编号、读者姓名、办证日期 分别显示在三个文本框中。单击“数组到记录” 按钮能用三个文本框的内容改写读者表第一条 记录的读者编号、读者姓名、办证日期。
VFP第9章

2.下拉式菜单的设计。
3.表单顶层菜单的设计。 4.快捷菜单的设计。9.1ຫໍສະໝຸດ Visual FoxPro系统菜单
9.1.1 菜单结构
菜单标题 菜单 菜单项
菜单栏
9.1 Visual FoxPro系统菜单
9.1.2 设置Visual FoxPro系统菜单
SET SYSMENU命令可以在命令窗口、程序窗口、表单或 过程窗口中应用。
9.1 Visual FoxPro系统菜单
9.1.2 设置Visual FoxPro系统菜单 (5)将系统菜单恢复为默认设置。
SET SYSMENU TO DEFAULT
(6)将当前菜单系统指定为默认设置。 SET SYSMENU SAVE (7)将默认配置恢复成Visual FoxPro系统菜单的标 准配置。 SET SYSMENU NOSAVE
9.2
下拉式菜单的设计
9.2.1 菜单设计器的使用 1. 启动菜单设计器
9.2
下拉式菜单的设计
9.2.1 菜单设计器的使用 2. 添加菜单项
9.2
下拉式菜单的设计
9.2.1 菜单设计器的使用 2. 添加菜单项
(1)子菜单。
9.2
下拉式菜单的设计
9.2.1 菜单设计器的使用 2. 添加菜单项
(2)命令。
(1)允许程序执行时访问系统菜单。 SET SYSMENU ON
(2)禁止程序执行时访问系统菜单。
SET SYSMENU OFF
9.1 Visual FoxPro系统菜单
9.1.2 设置Visual FoxPro系统菜单 (3)Visual FoxPro系统菜单可见,可以访问菜单栏 ,但菜单项是可用还是禁止则取决于不同的命令。 SET SYSMENU AUTOMATIC (4)重新配置系统菜单,以条形菜单项内部名表列 出可用的子菜单或以内部名字列出可用的弹出式子菜 单。 SET SYSMENU TO _MFILE,_MWINDOW 【功能】设置Visual FoxPro主菜单栏中只有“ 文件”和“窗口”两个弹出式菜单。
2012年全国计算机等级考试大纲汇总

二、程序设计基础1. 程序设计方法与风格。
2. 结构化程序设计。
3. 面向对象白勺程序设计方法,对象,方法,属性及继承与多态性。
三、软件工程基础1. 软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。
2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3. 结构化设计方法,总体设计与详细设计。
4. 软件测试白勺方法,白盒测试与黑盒测试,测试用例设计,软件测试白勺实施,单元测试、集成测试和系统测试。
5. 程序白勺调试,静态调试与动态调试。
四、数据库设计基础1. 数据库白勺基本概念:数据库,数据库管理系统,数据库系统。
2. 数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。
3. 关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。
4. 数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计白勺相关策略。
考试方式1、公共基础白勺考试方式为笔试,与C语言(VisualBASIC、Visual FoxPro、Java、Ac cess、Visual C++)白勺笔试部分合为一张试卷。
公共基础部分占全卷白勺30分。
2、公共基础知识有10道选择题和5道填空题。
《C语言程序设计》◆基本要求1.熟悉 Visual C++ 6.0 集成开发环境。
2.掌握结构化程序设计白勺方法,具有良好白勺程序设计风格。
3.掌握程序设计中简单白勺数据结构和算法并能阅读简单白勺程序。
4.在 Visual C++ 6.0 集成环境下,能够编写简单白勺C程序,并具有基本白勺纠错和调试程序白勺能力◆考试内容一、C语言程序白勺结构1.程序白勺构成,main函数和其他函数。
2.头文件,数据说明,函数白勺开始和结束标志以及程序中白勺注释。
3.源程序白勺书写格式。
4.C语言白勺风格。
二、数据类型及其运算1.C白勺数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2.C运算符白勺种类、运算优先级和结合性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
002 003
姓名 张三
李四 王武
英语 85
70 40
计算机 数学 82
95 70
总分
平均分
76
63 83
方法1:use cj replace all 总分 with 英语+计算机+数学,平均分 with 总分/3 方法2:update cj set 总分=英语+计算机+数学, 平均分=总分/3
(教科书P112)
① 建立一个表单,设置他们的外观尺寸,以形成 Windows软件界面; ② 为表单设置数据环境,数据环境规定表单与数 据表的相关性; ③ 根据软件功能要求,在表单中分配一些控件对 象。原则是美观、清晰、符合操作习惯; ④ 设置每一个控件的关键属性值,如:外观特征、 数据控制源、标题、是否可见等;
(教科书P127)
recall [范围] [for 条件1]
[while 条件2]
3)物理删除表中的记录 (教科书P127)
pack
4)记录清除命令
(教科书P128)
zap
?BOF(),EOF(),RECNO()
与删除相关的命令:(教科书P128)
set deleted on/off
功能:将逻辑删除的记录隐藏或 显示。on为隐藏,off为显示
字字符、空格及其他专用字符)组成,
长度范围是0~254个字符。
2.数值型(Numeric) 数值型数据通常分为以下四种 类型: (1)数值型( N )
(2)浮动型( F )
(3)双精度型( B )
(4)整型( I )
3.日期型(Date)8B 日期型数据是是用于表示日
期 的 数 据 , 用 默 认 格 式
VARTYPE(<表达式>) ------返回<表达式>
的数据类型
返回的字 母 C N
(见教科书第45-46页)
数据类型 返回的字 母 G D 数据类型
字符型或备注型 数值型、整型、浮点型 或双精度型 货币型 逻辑型 对象型
通用型 日期型
Y L O
T X U
日期时间型 Null值 未定义
基于数据表的表单设计方法
表单执行后, ①选择一用户名,输入密码,如果密码正确(与 数据表中的密码字段对应),单击“进入系统” 按钮,可以调用系统主菜单“图书管理系统菜 单.MPR”(该菜单的设计在第8章完成);
②如果密码不正确,最多允许输入3次,每次给出 错误提示,如果3次均不正确则直接退出系统,返 回操作系统;
③单击“退出”按钮,可以退出本系统,返回操 作系统。 (教科书P110-111事件代码)
",4+32+256,"确认")
if choice=6 endif
单击“是”按钮,函数值为6 append blank
thisform.refresh
用SQL命令添加记录
命令格式:
(见教科书124页)
insert into <表文件名>…
用INSERT命令插入记录 (见教科书124页)
命令格式:
insert into <表文件名>…
(教科书P121)
bof()
文件开始的测试函数 文件结束的测试函数
eof()
的值为:
在一个空表中,bof( )和eof( )
;recn( )的值为
。
在一个空表中,bof( )和
eof( )的值为:.T.;
recn( )的值为1。
利用命令进行记录定位:绝对定位
和相对定位 1. 绝对定位
(教科书P119)
数据类型
(见教科书96页)
数据类型一旦被定义,就确定了
其存储方式和使用方式。
Visual FoxPro系统将数据细化 分为以下几种类型:
1.字符型(Character) 字符型数据描述不具有计算
能力的文字数据类型,是最常用的
数据类型之一。 字符型数据是由汉字和ASCII
字符集中可打印字符(英文字符、数
⑤ 设置表单中各个控件的默认操作顺序; ⑥ 设计对象的事件驱动程序,也就是这些事件 一旦发生,将完成什么功能; ⑦ 将其他的菜单、工具栏与表单联系在一起, 用一个主程序驱动,就构成一个完整的 Windows应用程序。
(教材P108) 【例4-10】建立如表4.4所示的数据表: 管理员.dbf,设计如图所示的系统图书管理系统的登 录表单。将表单中的组合框与数据表中的用户名字段 绑定。
命令格式:SQL命令更新记录
update <表名> set…
(教科书P130) 例如,在读者表中,将编号为“d0008”读者的联 系电话改为027-3219666。 执行如下命令: UPDATE 读者 SET 联系电话="027-3219666" WHERE 读者编号="d0008"
例:计算cj.dbf的总分和平均分
在表单空白处单击 右键,在快捷菜单中选 择“数据环境”,弹出 “打开”对话框,选择 管理员.dbf,单击“确 定”按钮,在弹出的 “添加表或视图”对话 框中可以选择并添加多 个数据表,在这里我们 选择“关闭”按钮,则 数据表成功添加到表单 中,如图所示。
〖温馨提示〗在该对话 框中可以只选择姓名字 段,或只选择管理员编 号,为了避免错误的选 择管理员,最好两个字 段都选择。
第八、九讲
数据库数据表的基本操作
要点:
1.掌握表中的数据类型 2.掌握基于数据表的表单设计方法 3.掌握数据表中指针定位命令、 数据的更新命令、数据删除命令 4.掌握索引排序、永久关系及临时关系的 建立 5.了解记录数据与数组之间的传递
注意:第九讲上课前首先解决建库建 表中的问题及学生在自学中遇到的问 题,然后评讲自学课件中的习题
(默认)。
〘例5-4〙打开“读者信息维护”表单,进一步完 善表单的功能,实现“删除读者”、“清除标记”、 “物理删除”按钮的功能。
Command2命令按钮的click事件代码如下: delete thisform.refresh Command3命令按钮Click事件代码如下: recall thisform.refresh Command4命令按钮Click事件代码如下: choice=messagebox("确认删除所有已经逻辑删 除的记录“ , 4+32+256 , "确认") if choice=6 pack endif thisform.refresh
通常情况下, ①文本框、组合框等可以作为输入 类的控件; ②标签、文本框、编辑框、列表框、 表格、图像、Active绑定控件等作为输 出类的控件; ③命令按钮、命令按钮组、复选框、 选项按钮组、计时器可以作为控制类的 控件。
数据表中记录指针的定位
在Visual FoxPro 系统环境下, 表中的每一列数据是通过字段名来 标识的,而每一行数据是通过记录 号来标识的。
在Visual FoxPro 系统内部,有一 个用以确定当前记录的记录指针,记录 指针指向哪一个记录,这一个记录就是 当前操作的记录,即当前记录。当表打
开时,当前记录为第一个记录。可以用
函数recno()来测试当前记录号。 记录号测试函数
recno()
(教科书P121)
每一个数据表都有开始和结束标 志,可以用函数bof()和eof()来测试。
6.通用型(General)
4B
通用型数据是用于存储OLE对象的数 据。通用型数据中的OLE对象可以是电子 表格、文档、图片、声音等多媒体信息。 它只用于数据表中的字段类型的定义。 实际数据被存放在与数据表文件同名 的备注文件(其扩展名为:.fpt)中, 实际数据长度仅受限于现有的磁盘空间。
注意: 一个表文件的备 注型数据和通用型数据都 放在同一个与表文件同名 的备注文件(.fpt)中
{mm/dd/yy}来表示。其中mm代表
月,dd代表日,yy代表年。
4.逻辑型(Logic)
1B
逻辑型数据是描述客观事物真
假的数据,用于表示逻辑判断结果。 逻辑型数据只有真(.T.)和
假(.F.)两种值。
5.备注型(Memo)
4B
备注型数据用于存放较长的字符型数据 类型。 它只用于数据表中的字段类型的定义, 而实际数据被存放在与数据表文件同名的 备注文件(其扩展名为:.fpt)中,长度 根据数据的内容而定。
表数据与数组之间的数据传送
1. 将记录传送到数组
命令格式: (教科书P30-131)
scatter [fields <字段名表>] [memo]
to <数组名>
将当前记录的字段值按<字段名表>的顺序 依次送入数组元素中。
2. 将数组的数据传送到记录
命令格式:
gather from <数组名> [fields <字段 名表>] [memo]
示的内容。
2. 相对定位
(教科书P120-121)
skip [<数值表达式>]
〘例5-2〙 打开〘例5-1〙的图书信息.scx表单, 进一步完善表单的功能,实现“上一条”、“下 一条”按钮的功能,使得表单上能够逐一查看 “图书”表的所有记录。
修改Commandgroup1命令按钮组click事件代码,为 原多分支case语句增加两个判断分支,代码如下: case this.value=2 skip -1 表示第2、3个按钮: bof()函数为.t.,表示指 if bof() 上一条、下一条 针指到开始位置 go top messagebox("已经是第一条记录。") endif case this.value=3 skip eof()函数为.t.,表示指针 if eof() 指到结束位置 skip -1 messagebox("已经是末记录。") endif