茂名职业技术学院1授课-2自由表操作(一)2.1表的基本操作(一)2.2表结构的有关操作自由表的管理操作是本门课的重点之一。这里,我们首先学习自由表的显示、修改等操作,然后介绍表结构的有关操作方法。茂名职业技术学院2【任务(高新考试第2.2题)】将C:\2006vfp\Unit2文件夹Y2-02复制到考生文件夹中,重命名为“X2-02”,然后新建项目管理器,并命名为“项目2-2”,保存在文件夹X2-02中完成下列操作:1.复制自由表结构:将Y2_02A.dbf中的表结构复制为X2_02A.dbf中,并将X2_02A.dbf添加至“项目2-2”的“自由表”中;在表中输入一条记录,结果如样文2-02A所示。2.修改自由表记录及替换字段,打开Y2_02A.dbf,完成以下操作按样文2-02B所示,修改Y2_02A.dbf中“报名序号”为“30968”和“30839”二条记录的“专业代号1”、“专业代号2”字段的内容;为“报名序号”为“30968”和“30839”二条记录作删除标记;为表添加一字段“序号”,数据类型为“数值型”,宽度为4;将每条记录的记录号的值放到字段“序号”中,结果如样文2-02C所示样文2-02A茂名职业技术学院3样文2-02B样文2-02C茂名职业技术学院43.在自由表中追加记录:将表Y2_02B.dbf的记录追加到Y2_02A.dbf之中。4.清除记录中的删除标记,物理删除记录清除Y2_02B.dbf中“报名序号”字段值为“11265”的记录的删除标记;物理删除Y2_02B.dbf中“报名序号”字段值为“11238”的记录。5.记录的排序将Y2_02B.dbf中所有记录按“姓名”字段降序、“院校代号”字段降序排序,生成新文件X2_02B.dbf,保存至考生文件夹X2-02,并将X2_02B.dbf添加至“项目2-2”的“自由表”中。主要操作:BROW、REPL、DELE、RECA、PACK、SORT的使用,COPYSTRU和APPE…FROM的使用。茂名职业技术学院52.1表的基本操作(一)(P97)【学习目标】使用命令完成表的显示、修改等操作【关键概念】命令的格式BROW、REPL命令的用法茂名职业技术学院6【表文件的打开与关闭】1.打开表一般来说,在进行各种表操作之前先要打开表。刚创建的表则自动处于打开状态,在其它情况下可用如下方法打开表。用菜单:使用【文件】菜单中的【打开】命令。若要对表进行编辑修改操作,则必须选定【独占】复选框茂名职业技术学院7用命令:格式:USE[表名/?][IN工作区号];[INDEX索引文件名表][ALIAS别名];[EXCLUSIVE/SHARED]在当前工作区中打开表。打开时,若该表有备注型或通用型字段,则自动打开同名的.FPT文件。例如:USErsb&&以独占方式打开rsb.dbf茂名职业技术学院8参数说明:(1)[IN工作区号]:规定在指定工作区中打开数据库表或自由表。注:VFP6.0的工作区号从1-32767,前10个工作区号也可用字母A-J表示。(2)[INDEX索引文件名表]:打开指定的索引文件。(3)[ALIAS别名]:指定该工作区的别名,若不指定别名,则默认为表文件名。(4)用EXCLUSIVE选项,则以独占方式打开表。用SHARED选项,则以共享方式打开表,此时表结构和表数据只读,不能编辑修改。茂名职业技术学院92.关闭表•格式一:USE•格式二:CLOSEDATABASE功能:关闭当前数据库和其中的表,若无打开的数据库,则关闭所有自由表,并选择工作区1。•格式三:CLEARALL功能:关闭所有的表,并选择工作区1,释放所有内存变量、用户定义的菜单和窗口。除以上命令之外,还可通过退出VisualFoxPro来关闭已打开的表。选定【文件】菜单中的【退出】命令,或在【命令】窗口键入命令QUIT。茂名职业技术学院10VisualFoxPro命令的格式与特点(1)命令格式命令字开头+操作对象+若干命令子句命令字:指明具体操作子句:说明操作结果的呈现形式与操作条件等。几个简单的命令示例:USErsb&&打开名称为rsb的表文件BROWFOR职称=“副教授”&&浏览职称为副教授的教师记录信息USE&&关闭已打开的当前表【相关知识】茂名职业技术学院11(2)命令子句P45①[范围]子句:ALL,RECOn,NEXTn,REST。②[FIEL字段]子句字段之间用“,”分隔。③[FOR/WHIL条件]子句功能有一些小差别。FOR—对满足条件的所有记录进行操作。WHIL—当有满足条件的记录便开始操作,当出现不满足条件的记录便停止。茂名职业技术学院12(3)命令特点VisualFoxPro的命令具有下列特点:(1)命令的各部分简洁规范,通俗易懂。(2)命令子句的数量不限,顺序不拘。(3)命令中只规定对操作的要求,不描述具体的操作过程,所以称为“非过程化”语言。VisualFoxPro的命令既可逐条用交互的方式执行,又可编写成程序,以“程序文件”的方式执行。命令中的词汇可使用简写,即只写出它们的前4个字母。例如:REPLACE可简写作REPL即可。茂名职业技术学院13(3)命令分类VisualFoxPro拥有近500条命令,可分为以下7类:建立和维护数据库的命令。数据查询命令。程序设计命令:包括程序控制、输入/输出、打印设计、运行环境设置等命令。界面设计命令:包括菜单设计、窗口设计、表单设计等命令。文件和程序的管理命令。面向对象的设计命令。其他命令。茂名职业技术学院142.1.1浏览显示记录打开表后,通过“浏览”可直接浏览修改表记录。1.BROW命令(P100)格式:BROWSE[参数项]功能:数据输入、编辑、浏览和修改等功能。茂名职业技术学院15参数说明:NOAPPEND:不允许浏览窗口中显示的记录进行追加操作。NOEDIT:不允许对浏览窗口中显示的记录进行修改。NODELETE:不允许对浏览窗口中显示的记录进行删除。TITLE”标题文字”:用于指定浏览窗口的文字标题。FIELDS字段名表:显示指定的字段。FOR表达式:显示满足条件的记录。VALID条件表达式[ERROR“错误提示信息”]:用于在浏览窗口中对某一字段进行编辑,修改和输入时,对数据的合法性进行检查。WIDTH字段宽度:指定字段在浏览窗口中显示的宽度。COLORSCHEME颜色方案:用于设定浏览窗口的显示颜色。茂名职业技术学院16(1)重新安排列若要在“浏览”窗口中重新安排列,则将列标头拖到新的位置,或从“表”菜单中选择“移动字段”,然后用上下箭头键移动列,最后按回车键。(2)拆分“浏览”窗口若要拆分“浏览”窗口,则将鼠标指针指向窗口左下角的拆分条,向右方拖动拆分条,将“浏览”窗口分成两个窗格。(3)改变显示时的列宽在列标头中,将鼠标指针指向两个字段之间的结合处,拖动鼠标可以调整列的宽度尺寸。(4)打开或关闭网格线选择“显示”菜单——“网格线”。茂名职业技术学院17任务(高新考试第8.8题的第1点)打开、浏览表(USE、BROWSE命令)●以独占方式打开表Y8_08.dbf;●浏览表、并要求显示在浏览窗口中的字段如样文8-08A所示。USEY8_08EXCLBROWFIEL序号,姓名,性别,出生年月,中学代码USE茂名职业技术学院182.EDIT命令格式:EDIT[范围][FOR条件][FIEL字段名表]…功能:用编辑方式(字段名在左侧)顺序修改当前表中指定范围内符合条件记录的指定字段。茂名职业技术学院19【相关知识:记录的定位】存取数据先要进行记录定位,记录定位就是将记录指针指向某个记录,使之成为当前记录。表刚打开时,记录指针指向第一个记录。(1)在“浏览”窗口中移动使用滚动条或菜单,如用下面方法:•从“表”菜单中选择“转到记录”;•在子菜单中选择“第一个”、“最后一个”、“下一个”、“前一个”或“记录号”;•如果选择了“记录号”,在“转达到记录”对话框中输入待查看记录的编号,然后选择“确定”按钮。茂名职业技术学院20(2)使用移动指针命令绝对定位命令格式:GOTOP|BOTTOM功能:将记录指针定位在表的第一个记录或最后一个记录。格式:GO数值表达式功能:将记录指针定位在数值表达式指出的记录。例如:USErsbGO4&&指针移动到4号记录?RECNO()&&显示当前记录号4茂名职业技术学院21相对定位命令格式:SKIP[数值表达式]功能:从当前记录开始相对移动记录指针,数值表达式表示移动记录的个数。当数值表达式为负值时,指针向文件头移动,当数值表达式为正值时,指针向文件尾移动。数值表达式缺省时默认为1。例如:USErsb&&打开rsb,当前记录为首(第1个)记录GO3&&当前记录为第3个记录SKIP&&指针向文件尾移动1?RECN()&&显示4SKIP-2&&指针向文件头移动2?RECN()&&显示2茂名职业技术学院22(3)条件查找定位命令格式:LOCATE[范围][FOR条件]功能:将记录指针定位在满足条件的第一个记录。格式:CONT功能:继续查找,将指针定位在满足条件的下一个记录。例如:USErsbLOCAFOR性别=‘女’&&指针移动到…?RECN()&&显示当前记录号CONT&&继续查找…?RECN()&&显示当前记录号茂名职业技术学院233.LIST命令格式:LIST[范围][FOR/WHILE条件];[FIEL字段名表][OFF];[TOPRINT/FILE文件名]功能:按指定范围和条件筛选出记录并显示出来,或送到指定的目的地。参数说明:OFF:为了让用户了解显示内容所在的记录,命令自动显示记录号,若不需要显示记录号,则在命令中使用OFF选项。TOPRINT:将输出内容打印出来。TOFILE:将输出结果送到指定文件中。茂名职业技术学院24(1)FIELDS子句FIEL子句指定要显示的字段,相当于关系运算的“投影”操作。保留字FIEL可以省略[字段名表]用来列出需要显示的内容,表达式之间用“,”号分隔。[例如]显示rsb中职工的姓名,性别。可在命令窗口键入如下命令:USErsbLIST姓名,性别茂名职业技术学院25(2)范围子句用来确定该命令涉及的记录,范围有4种限定方法:•ALL:所有记录;•NEXTn:从当前记录开始的n个记录;•RECORDn:第n个记录;•REST:从当前记录开始到最后一个记录的所有记录。例如:USErsb&&打开rsb,记录指针指向第1条记录LIST编号,姓名,性别NEXT4&&显示从第1条到第4条记录的编号、姓名、性别、茂名职业技术学院26(3)FOR子句FOR子句的[条件]为逻辑表达式,它指定记录选择的条件,相当于关系运算的“选择”操作,在指定的范围内筛选出符合条件的记录。例如:USErsbLIST姓名FOR婚否=.T.REST茂名职业技术学院274.DISP命令格式:DISPLAY[范围][FOR/WHILE条件];[FIELDS字段名表][OFF];[TOPRINT/FILE文件名];[NOCONSOLE][NOOPTIMIZE]功能:分屏显示当前表中指定范围内符合条件的记录的指定字段。注意:命令动词为LIST时,范围子句缺省时默认为ALL。而当命令动词为DISP时,范围子句缺省时默认为当前记录。茂名职业技术学院282.1.2修改记录1.BROW,EDIT命令:直接对某一记录值进行修改。2.REPL命令格式:REPLACE[范围][FOR/WHILE表达式]字段名1;WITH表达式1[,字段名2WITH表达式2]……功能:在当前打开表的指定记录中,将有关字段的值用相应的表达式值来替换。若[范围]与[条件]等选项都缺省,只对当前记录的有关字段进行替换。该命令对[范围]内符合[条件]的记录用[表达式I]的值来替换[字段I]。[例如]USErsbGO6REPL职称WITH副教授,部门代码WITHA01范围子句、FOR子句等的使用与显示命令中相同。茂名职业技术学院29P101例2.1:将CJB.DBF中所有“大学英