您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > VFP的命令格式解析
VFP的命令格式兴隆职教中心詹亚萍•命令结构•FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。•常用子句•范围:表示记录的执行范围•ALL表示全部记录;•NEXTn表示从当前记录开始的以下n条记录;•RECORDn表示第n号记录;•REST表示从当前记录到最后一条记录。•FIELDS字段名表:用于指定操作的字段,多个字段时用逗号分隔。•FOR条件:对满足条件的记录进行操作。•WHILE条件:当遇到第一个不满足条件的记录时,停止命令执行。1.REPLACE命令***•命令格式:–REPLACE[〈范围〉]〈字段1〉WITH〈表达式1〉[ADDITIVE][,〈字段2〉WITH〈表达式2〉[ADDITIVE]…][FOR〈条件〉]•命令功能:–成批地、快速地修改满足给定条件的一批记录–修改的方法是用WITH后面表达式的值替换WITH前面的字段内容–范围和FOR〈条件〉,修改范围内满足条件的所有记录缺省范围,当前记录【例1】•在表DA.DBF中,对工资小于800元的职工各增加10元•REPLACEALL工资WITH工资+10FOR工资800•练习:将副教授职称的工资增长200REPLACEALL工资WITH工资+200FOR职称=“副教授”【2014年】•将所有年龄大于50的职工基本工资增加200。(用VisualFoxPro命令)•replaceall基本工资with基本工资+200for年龄50[2012年]•将所有系部名称为“计算机系”的职工的年龄加1。(用VisualFoxPro命令)•Replaceall年龄with年龄+1for系部名称=“计算机系”[2011年]将“学生”表中所有“班级号”是“201001”的学生的“入学成绩”加10分。(用VisualFoxPro命令Replaceall入学成绩with入学成绩+10for班级号=“201001”【2010年】将部门为“开发部”的职工工资增加100Replaceall工资with工资+100for部门=“开发部”2.记录的删除•分两步进行:–是对欲删除的记录打删除标记“*”,称为逻辑删除•必要时,可恢复,即把“*”去掉–是把带有删除标记的记录真正删除,称为永久性删除记录或称物理删除记录(1)逻辑删除记录命令•命令格式:–DELETE[〈范围〉][FOR〈条件〉]•命令功能:–指定范围内满足条件的那些记录加上删除标记“*”•说明:–若省略两个选择项,则给当前记录打删除标记“*”–当用命令SETDELETEON在显示或有关操作时,作了删除标记的记录就不起作用,如同真正删除这些记录一样【例2】•将表DA.DBF的4号记录打上删除标记DELETERECORD4[2010年]逻辑删除工龄超过10年(不包括10年)且工资低于2000(不包括2000)的记录Deleteallfor工龄10and工资2000【2013年】逻辑删除所有出版社为“清华大学出版社”、价格大于35的记录。(用VisualFoxPro命令)Deleteallfor出版社=“清华大学出版社”and价格35(2)记录恢复删除命令•命令格式:–RECALL[〈范围〉][FOR〈条件〉]•命令功能:–将规定范围内的、符合条件的、已作了删除标记的记录恢复。即把删除标记“*”去掉–若省略两个选择项,则恢复当前记录【例3】•在成绩表中恢复删除平均分在60分以上的记录:•Recallallfor平均分60•【2015年】•恢复“order_list”表中被逻辑删除的记录中“数量”大于等于1000的记录。(用VisualFoxPro命令)•Recallallfor数量=1000(3)永久性删除记录命令•命令格式:PACK•命令功能:–将带有删除标记的记录从当前表中删除–并重新调整表的记录号•说明:–执行PACK命令后,删除的记录在表中不再存在,并且不能被恢复,称永久性删除记录(4)删除表的全部记录命令•命令格式:ZAP•命令功能:–将已打开的表中的全部记录一次性删除•说明:–(1)执行此命令,只是删除全部记录,而表的结构仍然保留–(2)该命令等效于执行了DELETEALL命令后再执行PACK命令3、记录的定位记录结束标志记录开始标志第n条记录Gotopgobottomskip1、记录指针标志记录号(输入顺序)记录的开始标志BOF()记录指针标志(当前记录)RECNO()记录的结束标志EOF()2、记录的定位方式绝对定位go相对定位skip条件定位例1假设ZGDA表有848条记录,先后执行以下命令bof()eof()recno()usebooksskip-1gobottskipFF1TF1FF848FT849例2Usebooksgo5skip+2skip-3locatefor…RECN()1574记录定位的实现(1)命令方式绝对定位:GO(GOTO)GO(GOTO)TOP/BOTTOM相对定位:SKIP(与索引有关)skip=skip1快速移动:SEEK及FINDA绝对记录指针定位•用RECNO()函数,可测试当前记录指针•绝对指针定位–命令格式:•GOTOP•GOBOTTOM•GORECORDN•GO〈数值表达式〉•GON•命令功能:–使记录指针指向表中的指定记录说明•GOTOP定位第一个逻辑记录•GOBOTTOM定位最后一个逻辑记录•GORECORDN指针定位到表的N号记录•GO〈数值表达式〉定到表达式值取整后的记录•GON指针定位到N号记录•当选用参数N时,GO可省略不写,指针定位到N号记录B.相对指针转移•命令格式:–SKIP[+/-〈数值表达式〉]•命令功能:–相对当前位置按表达式值移动若干个记录–值为正时,指针向后移–为负值时,指针向前移–缺省选择项时指针向后移一个记录•说明:–GO绝对定位,都定位到所指的记录–SKIP是相对定位命令,以当前记录为中心,按给定的表达式值相对地移动若干记录(2)条件定位格式:LOCATE[范围][FOR|WHILE条件]CONTINUE功能:LOCATE命令将记录指针定位在满足条件的第一个目标记录。CONTINUE命令将记录指针指向下一条满足条件的目标记录。说明:(1)若缺省范围子句,则默认ALL。(2)若没有满足条件的记录,则记录指针指向文件结束位置。【例4-22】在职工简况表中,查找女性职工信息。USEZgjkLOCATEFOR性别=“女”&&指针定位到第1个目标记录DISP&&显示第1个目标记录CONTINUE&&指针定位到下一个目标记录DISP&&显示第2个目标记录?RECNO(),EOF()9.T.二、记录的显示•两种格式:–LIST[〈范围〉][FIELDS〈字段名表〉][FOR〈条件〉]–DISPLAY[〈范围〉][FIELDS〈字段名表〉][FOR〈条件〉][说明:•LIST=DISPLAYALL显示的全部记录•有FOR〈条件〉显示出满足条件表达式的记录•[FIELDS〈字段名表〉],显示指定字段•有[〈范围〉],显示指定范围差别有两点:•LIST缺省范围是显示全体记录•DISPLAY缺省当前记录•LIST具有连续显示特点,显示表中所有符合条件记录的命令,显示信息时不会暂停,指针会到文件尾•DISPLAY具有分页显示,满一页就停止,并提示按任一键继续显示下页内容例4•将ZGDA表中职称是讲师的、年龄在45岁以下的记录显示出来,并且只列出姓名、年龄、职称三个字段–LISTFIELDS姓名,年龄,职称FOR职称=“讲师”.AND.年龄45【练习1】–将ZGDA表的后4个记录显示出来。【练习2】–将ZGDA表的后4个记录中性别是女的记录显示出来4、1.EDIT和CHANGE命令格式分别是:–EDIT[〈范围〉][FIELDS〈字段名表〉][FOR〈条件〉]–CHANGE[〈范围〉][FIELDS〈字段名表〉][FOR〈条件〉]•命令功能:进入全屏幕编辑方式,对当前打开的表的记录进行修改说明:•缺省所有的选择项,从当前记录开始进行修改•FIELDS〈字段名表〉,对列出的字段进行修改•范围和FOR〈条件〉,范围内满足条件的记录进行修改•缺省了[〈范围〉]是指全部记录2.BROWSE命令•命令格式:•BROWSE[FIELDS〈字段名表〉]•命令功能:•该命令以窗口方式显示当前表的内容,并可以对窗口内的数据按需要进行修改•使用EDIT命令和CHANGE命令时•一行只显示一个字段•每屏幕只能显示一个记录•VFP系统提供了窗口显示与修改命•BROWSE记录的浏览1、浏览窗口–进入:•BROWSE命令•usebooks/显示/浏览•项目管理器/选定某个表/单击“浏览”按钮2、命令–BROWSE–LIST/DISPLAY–BROWSEFIELDS书号,书名,作者for...
本文标题:VFP的命令格式解析
链接地址:https://www.777doc.com/doc-3840038 .html