VFP常用命令及用法、实例命令中用到的范围:ALL:命令对表中所有记录起作用,即执行时从首记录到末记录,最记录指针停在数据库的末尾。
NEXT <expN> 命令作用于从当前记录开始到当前记录后<expN>条记录为止的范围内的记录,最后记录指针指向作用范围内的最后一条记录处。
NEXT 1表示仅作用于当前记录。
Record <expN> 命令作用于记录号为<expN>的记录。
TEST 命令作用范围从当前记录开始到表的最后一个记录为止命令中的FOR子句只作用于满足条件的记录。
一、基本命令1. 打开和关闭数据表USE [<数据表名>]当省略选项时为关闭当前数据表CLOSE ALL关闭所有数据表2. 选择当前工作区SELECT <工作区号|数据表名|0>功能:选择当前工作区。
可以直接选择工作区号,也可通过指定其中已经打开的数据表别名来指定工作区。
SELECT 0是选择当前未使用的最低编号的工作区3. 增加记录APPEND BLANK在当前表的尾部追加一个空白记录INSERT BLANK在当前表的当前记录之后插入一条空白记录INSERT BLANK BEFORE在当前表的当前记录之前插入一条空白记录注意:在表建立索引后,INSERT的功能与APPEND相同4. 替换字段的值REPLACE [范围] <字段1> WITH <表达式1>[, <字段2> WITH <表达式2>, ...<字段n> WITH <表达式n>] [FOR <expL>]功能:计算表达式的值,并填入指定字段,当范围和条件选项省略时只对当前记录操作。
5. 删除记录DELETE [范围] [FOR 条件]功能:对记录加删除标记(即逻辑删除),当范围和条件选项省略时只对当前记录操作。
RECALL [范围] [FOR 条件]功能:对记录去除删除标记(即恢复删除),当范围和条件选项省略时只对当前记录操作。
PACK功能:删除带有删除标记的记录ZAP功能:物理删除当前表所有记录6. 建立索引与选择主控索引INDEX ON <关键字表达式> TAG <索引标识符> [DESCENDING]功能:对当前表按<关键字表达式>建立结构复合索引,索引文件名与表名相同,扩展名默认为CDX。
DESCENDING选项为按关键字降序排列,默认为升序。
SET ORDER TO TAG <索引标识符>功能:在结构复合索引文件打开后,指定主控索引标识符。
7. 记录指针定位GO BOTTOM | TOP | <expN>功能:移动记录指针直接指定记录。
BOTTOM为指向末记录,TOP为指向首记录,<expN>为指向记录号为<expN>的记录。
SKIP [expN]功能:按expN的值,从当前位置出发移动记录指针。
当expN为正时向尾部方向移动expN条记录,当expN为负时向首部方向移动expN条记录,当expN为1时可以省略。
8. 查找LOCATE [范围] [FOR 条件]功能:在数据表的指定范围中搜索满足条件的第一个记录。
搜索成功,记录指针指向该记录,并将FOUND()置为.T.;否则,记录指针指数据表末尾,并将FOUND()置为.F.。
<范围>缺省为ALL。
CONTINUE功能:查找下一个满足LOCATE命令指定条件的记录,查找成功,将FOUND()置为.T.并将指针指向满足条件的记录;否则,记录指针指数据表末尾,将FOUND()置为.F.。
9. 数据表复制COPY TO <文件名> [范围] [FIELDS <字段名表>] [FOR 条件]功能:把已打开的表内容复制到新的表中。
<范围>缺省值为ALL。
<字段名表>规定了新表字段,缺省为全部字段。
COPY STRUCTURE TO <文件名> [FIELDS <字段名表>]功能:把当前表的结构复制到新的表中。
不复制记录。
<字段名表>规定了新表字段,缺省为全部字段。
10. 统计COUNT [范围] [FOR 条件] TO <内存变量>功能:统计表中满足条件的记录个数,并存入指定的内存变量。
<范围>缺省时为ALLSUM [表达式表] [范围] [FOR 条件] TO <内存变量表>功能:统计表中全部的或指定数值字段的值的和,并各个和存入指定的内存变量,内存就是的个数求和的数值表达式个数相同。
<范围>缺省时为ALLAVERAGE [表达式表] [范围] [FOR 条件] TO <内存变量表>功能:统计表中全部的或指定数值字段的值的平均,并各个和存入指定的内存变量,内存就是的个数求和的数值表达式个数相同。
<范围>缺省时为ALL二、函数1. 数学函数ABS(expN)功能:求数值表达式的绝对值。
INT(expN)功能:对数值表达式expN取整数部分ROUND(expN, Dec)功能:对数值表达式expN精确到小数点后Dec位。
2. 字符函数SUBSTR(expC, expN1, expN2)功能:取字符串expC中从expN1开始的expN2个字符,若expN2省略,则从expN1开始一直取到最后。
TRIM(expC)功能:取掉字符串expC的尾部空格。
ALLTRIM(expC)功能:取掉字符串expC首尾的空格。
SPACE(expN)功能:产生expN个空格。
UPPER(expC)功能:将字符串expC转换成大写。
LOWER(expC)功能:将字符串expC转换成大写。
expC1 $ expC2功能:判断字符串expC1是否在expC2中出现,若出现则值为.T.,否则为.F.。
3. 日期函数DATE()功能:获取系统日期。
4. 类型转换VAL(expC)功能:将数字字符值转换成数值,如:VAL('123.45')的值为数值123.45STR(expN [, 宽度 [, 小数位数]])功能:将数值转换成字符串,当小数位数省略时不带小数,当宽度和小数位数都省略时宽度为10不带小数。
DTOC(expD)功能:将日期表达式expD转换成字符表达式,格式与系统日期格式一致。
DTOS(expD)功能:将日期表达式expD转换成字符表达式,格式为YYYYMMDD,前4位为年份中间2位为月份最后2位为日。
CTOD(expC)功能:将符合当前系统日期格式的字符串转换成日期值。
5. 测试函数FOUND()功能:测试当前的查找(SEEK, LOCATE, CONTINUE)是否成功。
查找成功函值为.T.否则为.F.。
EOF()功能:测试当前记录指针是否到了数据表的末尾。
当在末尾时函数为.T.否则为.F.。
RECNO()功能:返回当前记录号。
我的主程序代码:main.prgDECLARE INTEGER FindWindow IN WIN32API STRING,STRINGLOCAL cTitlecTitle="工资管理系统"IF FindWindow(0,cTitle)<>0=MESSAGEBOX("该系统已运行,无需重复!",48,"错误信息")QUITENDIFCLEAR SCREENCLEARCLOSE ALLCLEAR ALLSET TALK OFFSET SYSMENU OFF&&使主菜单条不能被访问SET SYSMENU TO&&关闭主菜单条SET TALK OFF&&关闭对话框SET STEP OFFSET ECHO OFFSET SAFETY OFF &&文件替换时不确认SET DELETED ON&&隐藏带删标记的记录SET OPTIMIZE ON&&使用优化技术SET CENTURY ON&&年月日显示格式为4位,SET DATE TO ANSI&&日期格式为“年-月-日”SET MARK TO "-"&&设置年月日之间的分隔符ON ERROR DO errhand WITHERROR(),MESSAGE(),MESSAGE(1),PROGRAM(),LINENO()&&在编译成exe 文件时要使用RELEASE WINDOW 常用RELEASE WINDOW 表单设计器mypath=SYS(5)+SYS(2003)set DEFA TO &mypathset path to &mypathDO form mm &&运行密码登录表单mmREAD EVENTSQUITPROCEDURE errhandPARAMETER merror,MESS,mess1,mprog,mlineno=MESSAGEBOX("错误代码:"+LTRIM(STR(merror))+",错误信息:"+MESS+"错误代码串:"+mess1+",错误行号:"+LTRIM(STR(mlineno))+",出错程序名:"+mprog +"请退出系统!!!重新运行!!")QUITRETURN如果不要菜单系统可把主表单作为顶层表单时要创建文件config.fpw内容为:sysmenu=offscreen=off然后把该文包含进项目中,就可编译进EXE文件中,不必另外提供退出系统”的按纽见第9点1、**----------------**save to <file> [all like]内存变量保存yfd=alltrim(bo1.value)save to yf&&将内存中的“所有”变量存入文件yf.mem 中save to yf all like yfd&&将内存中所有以yfd匹配的变量存入文件yf.mem 中save to yf all like yf*&&将内存中所有以yf打头的变量存入文件yf.mem 中2、**-----------------**restore from <file>restore from nf.mem additive &&把内存变量从文件 nf.mem 恢复,选参数additive 项时,不对其它内存变量产生复盖。