收藏 分销(赏)

VFP常用命令及用法.doc

上传人:快乐****生活 文档编号:2667240 上传时间:2024-06-04 格式:DOC 页数:24 大小:46.54KB
下载 相关 举报
VFP常用命令及用法.doc_第1页
第1页 / 共24页
VFP常用命令及用法.doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述
(完整版)VFP常用命令及用法 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 <内存变量>    功能:统计表中满足条件的记录个数,并存入指定的内存变量。〈范围>缺省时为ALL    SUM [表达式表] [范围] [FOR 条件] TO <内存变量表>    功能:统计表中全部的或指定数值字段的值的和,并各个和存入指定的内存变量,内存就是的个数求和的数值表达式个数相同.<范围〉缺省时为ALL    AVERAGE [表达式表] [范围] [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。45    STR(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。prg DECLARE INTEGER FindWindow IN WIN32API STRING,STRING LOCAL cTitle cTitle="工资管理系统" IF FindWindow(0,cTitle)〈>0     =MESSAGEBOX("该系统已运行,无需重复!",48,”错误信息”)     QUIT ENDIF CLEAR SCREEN CLEAR CLOSE ALL CLEAR ALL SET TALK OFF SET SYSMENU OFF  &&使主菜单条不能被访问 SET SYSMENU TO     &&关闭主菜单条 SET TALK OFF      &&关闭对话框 SET STEP OFF SET ECHO OFF SET SAFETY OFF &&文件替换时不确认 SET DELETED ON  &&隐藏带删标记的记录 SET OPTIMIZE ON  &&使用优化技术 SET CENTURY ON  &&年月日显示格式为4位, SET DATE TO ANSI  &&日期格式为“年—月-日” SET MARK TO "—”  &&设置年月日之间的分隔符 ON ERROR DO errhand WITH ERROR(),MESSAGE(),MESSAGE(1),PROGRAM(),LINENO()   &&在编译成exe文件时要使用 RELEASE WINDOW 常用 RELEASE WINDOW 表单设计器 mypath=SYS(5)+SYS(2003) set DEFA TO &mypath set path to &mypath DO form mm &&运行密码登录表单mm READ EVENTS QUIT PROCEDURE errhand     PARAMETER merror,MESS,mess1,mprog,mlineno     =MESSAGEBOX("错误代码:"+LTRIM(STR(merror))+", 错误信息:”+MESS+"  错误代码串:"+mess1+”, 错误行号:”+LTRIM(STR(mlineno))+”, 出错程序名:”+mprog +"   请退出系统!!!重新运行!!”)     QUIT     RETURN 如果不要菜单系统可把主表单作为顶层表单时要创建文件config.fpw内容为: sysmenu=off screen=off 然后把该文包含进项目中,就可编译进EXE文件中,不必另外提供 退出系统”的按纽见第9点 1、**—-—-—-----—--—--** save to <file〉 [all like]内存变量保存     yfd=alltrim(ThisForm.Combo1.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 项时,不对其它内存变量产生复盖。 3、**-————--——--—-——-—**后台最小化运行RAR.EXE RUN /n7 rar a  -Y bakfile  b*.dbf c*.dbf...  &&在后台最小化运行RAR。EXE且不等待。 4、**——---—-—-————-——-** if bof()     =messagebox(’   到最前一个了!   ',0,'    提 示    ')         goto top else         skip —1 endif     5、**--------——--——-——** if eof()     =messagebox('   到最后一个了!   ',0,'    提 示    ')         goto bott else         skip endif     6、**-——-————--———---—** COPY TO dbk.dbf TYPE XL5 数据表复制成xls文件 7、**--—————-——-—---——** =messagebox(’      完成!    ',0,’    提 示    ') 8、**——---——--—--—--———** hzdx=”零壹贰叁肆伍陆柒扒玖拾佰仟万拾佰仟亿拾佰仟" 9、**—--—--—-——-—-—————** IF MESSAGEBOX(”真的退出系统吗?”,4+32+256,”提示")= 6     CLOSE DATABASES         clear all         close all     CLEAR EVENTS     thisform。Release     quit ENDIF 10、**--—-——-—-———————-—-** 表数据更新: update 表名 SET 字段名1 =表达式,字段名1 =表达式,.。。WHERE [条件] 11、**——-—------—-————-—--** 从其它表取数据: 把已有表的记录成批追加到当前表中 append from 文件名 [for  条件1] [while 条件2] 12、**---—-——--------—--—-** ThisForm。grdGzk 的refresh &&表格内运算 IF USED(”gzk”)   replace 应发合计  with 等级工资+责任津贴+奖资+干资+书报+单车+燃料+考勤+临职补贴+;                          地区津贴+城市补贴+节支奖+奖励工资+清饮+洗理+电费+报刊+粮差+肉菜+;                          劳保+职务保贴+出纳劳保+保健+医药+家属医药+妇卫+会计补贴+其它   replace 扣除合计  with 水电+保险+工会+其他                          REPLACE 结余合计  WITH 应发合计-扣除合计 ENDIF 13、**-———--—-—--—-————--—-** ThisForm。grdGzk 的AfterRowColchange &&表格变色 Mcurrec=STR(RECN())  && 获取当前所在记录号 THIS。SETALL(”dynamicbackcolor”,'IIF(RECNO()=&Mcurrec。,RGB(145,236,252),RGB(255,255,255))') && 设置背景色,满足条件为黄色,不满足为黑色 THIS.SETALL("dynamicforecolor”,'IIF(RECNO()=&Mcurrec。,RGB(255,0,0),RGB(0,0,0))',”column") && 设置前景色,满足条件为红色,不满足为白色 THIS.REFRESH this。SetFocus 14、**--———---——---—---——-—-** release extended  aa_x  && aa_x为内存变量,一定要加上extended,才真正释放 15、**———-—-—————-—————-—-——**数据表到文本 use cxjg copy to b type deli with " ” use use p append from b type deli with ’|’ &&********文本到数据表 repl all zd  with stuff(zd,1,3,”") &&******对数据表中的字段修改内容 REPL all zd WITH STRTRAN(zd,’m’,',') REPL all zd WITH STRTRAN(zd,’ ’,’') 16、**—-—--—-———-———-—----—--** if empty(ThisForm.Text1.value)    =messagebox(’    文件名不能为空!    ’,0,'     提 示     ’)     ThisForm.Text1.setfocus    retu endif 17、**-——--—---—--—-—-—-—---—**数据表记录转成文本行,使用低级函数fwrite(),fclose()     .。.     use p      goto top      wait wind ”  正在转入数据文件到软盘,请等候。..。。. ” nowait at 22,43      scan      za=alltrim(zd) &&去掉表p。dbf字段“zd”内容的前后空格       if fwrite(eff,za+chr(13)+chr(10))=0 &&chr(13)为回车,chr(10)为换行 —--—---—-——-重点          =messagebox(’磁盘已经损坏失效!请换盘!重试!',0,’        提 示    ')       else                endif       endscan       =fclose(eff)       wait clear       =messagebox('数据成功转入软盘,文件名为:'—("&cpath_n")-'!’,0,’    提 示    ’)    endif    ..。 18、**——---—-—-—-—--—-———**          public _Totalpage           _Totalpage=0           report form dy1 noconsole           _Totalpage=_pageno         &&得总页数          REPORT FORM dy1 to printer prompt noconsole  && dy1打印表单          DO FORM rpform &&  RPFORM 是最大化且防止其它窗口遮挡表单的表单          REPORT FORM dy8 PREVIEW WINDOW RPFORM &&dy8          RPFORM.RELEASE() 19、**—--————-—-————-——-—**备份数据、软盘写保护及损坏检测 IF MESSAGEBOX(”真的备份本月数据吗?",4+32+256,"提示”)= 6    restore from nf.mem additive  &&  nf.MEM  保存年份内存变量的文件(4位如2004)    restore from yf。mem additive  &&  yf。MEM  保存月份内存变量的文件(2位如06) ******文件压缩     CLOSE DATABASES     m_af=nfd+yfd     m_bf=m_af+".rar"     IF FILE(”&m_bf")         ERASE &m_bf     ENDIF     RUN /n7 rar a  —Y &m_bf  b*.dbf c*.dbf g*。dbf j*.dbf *.mem p。dbf r*.dbf tmp。dbf     WAIT WINDOW ”正在压缩文件,请稍等……” NOWAIT AT 20,30     cOK=。F.     nSj_m1=MINUTE(DATETIME())     nSj_1=nSj_m1*60+SEC(DATETIME())     nSj_2=nSj_1     DO WHILE .T.         IF FILE(”&m_bf”)  &&如果存在文件xxx。rar 且文件大于100字节,则压缩成功.             =ADIR(m_aa1,m_bf )             IF m_aa1[2]〉100                 cOK=.T。                 EXIT             ENDIF         ENDIF         nSj_m2=MINUTE(DATETIME())         IF nSj_m2〈nSj_m2             nSj_2=nSj_m2*60+3600+SEC(DATETIME())         ELSE             nSj_2=nSj_m2*60+SEC(DATETIME())         ENDIF         IF nSj_2-nSj_1>180   && 如果3分钟后不成功则退出             cOK=.F。             EXIT         ENDIF     ENDDO     WAIT CLEAR     IF !cOK         MESSAGEBOX(”文件压缩失败!请检查。",16 ,"错误信息")         RETURN     ENDIF ********复件rar文件 IF MESSAGEBOX("请插入磁盘,按“确定”继续,退出按“取消”",1+32,”请选择”) = 1    close database     wait wind "正在检测 A:软盘..." nowait at 20,30     X=Adir(Myml,’a:\nul')     IF X#0        ef=fcreate('a:\备份时间。txt')        if ef<0           wait clear           =messagebox('磁盘写保护!或已经损坏失效!',0,'        提 示    ')        else           if fwrite(ef,'备份数据文件的时间是:’+dtoc(date()))=0              =messagebox('磁盘已经损坏失效!请换盘!重试!',0,'        提 示    ’)           else           endif           =fclose(ef)          wait wind "正在备份数据文件到软盘,请等候。。..。。” nowait at 20,30          copy file &m_bf  to a:          wait clear          =messagebox(’     数据备份完成!    ’,0,'    提 示    ')          ERASE &m_bf        endif     ELSE         wait clear         =messagebox('     磁盘没有准备好!    ',0,’    提 示    ')         retu     ENDIf else   retu     endif     else ENDIF 20、**-—-—--——-———----——-** public  如果有重复调用代码时应在主程序“main。prg”定义全局变量 21、**——-—-—-——-—-———--—-**导出xls文件 SELE old_tmp cpath_name=GETFILE('xls','文件名’,'保存')  &&重点 IF !EMPTY(cpath_name)     if file("&cpath_name")        =messagebox('文件已存在!请重输新名 ’,0,’    提 示    ')     else          COPY TO &cpath_name TYPE XL5   &&重点       =messagebox(’成功导出为文件'-("&cpath_name")—’!’,0,'    提 示    ')     endif else   =messagebox('文件名不能为空! ',0,'    提 示    ')   retu endif       22、**——---——--——--——--——** if nKeyCode=13     &&在密码文本框text的KeyPress方法上使“确定”执行    mand1。click endif 23、**-—-————————-——---——** ***********表单“释放对象时发生"事件的方法释放内存变量 release extended  aa_x  && aa_x为内存变量,一定要加上extended,才真正释放 **—--------———--——-——** 24、用SQL-SCLECT 查询生成临时表是不能修改的。 25、数据排序 if used('gz')    select gz else    use gz in 0    select gz endif    ps_tm=ThisForm。Combo2.value if  ThisForm.Optiongroup2.value=1 &&升序     sort to ps_tmp on &ps_tm /A  &&按ps_tm的值的字段按升序重排 else     sort to ps_tmp on &ps_tm /D  &&&&按ps_tm的值的字段按降序重排 endif     select gz zap append from ps_tmp erase ps_tmp。dbf =messagebox(’    重新排序完成!要恢复原来请按编号升序排序!    ',0,’     提 示     ’) 26、向表格添加新记录 将表格的AllowAddNew属性设置为“T”用户选择最后一记录按下DOWN ARROW键 时就添加了新记录;或将AllowAddNew属性设置为“F”使用APPEND BLANK或INSERT添加 27、表格列中加入控件 在“属性”窗口的“对象”框中为控件选择列如:选择第二列“Column2”,再选择要加 入的控件单击该列,(注:复选框的“Caption=" ””)并设该列(Column2)的“Sparse=.F。” 该列(Column2)的“数据"的“CurrentControl"选择为刚加入的控件名称即可. 28、移去表格中的控件 在“属性”窗口“对象”中选择要移去的控件,激活“表单设计器(单击表单设计器上 兰横条)”按DELETE键即可。 29、SQL查询满足条件的记录生成dbf数据表文件 SELECT * FROM fhz WHERE SUBSTR(帐号,1,11)=m_JGM+’012’ AND 组号=m_zuh AND 类型=1 ORDER BY 帐号 INTO TABLE prtmp 30、设置打印机 IF PRINTSTATUS()=。T.    =SYS(1037) ELSE        ??CHR(7)   MESSAGEBOX(”请在 Windows 控制面板下安装打印机!!!",48,”提示信息”)   RETURN ENDIF
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服