vfp.docx
- 文档编号:8955210
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:27
- 大小:27.46KB
vfp.docx
《vfp.docx》由会员分享,可在线阅读,更多相关《vfp.docx(27页珍藏版)》请在冰点文库上搜索。
vfp
扩展名的整理
扩展名
新建
修改、打开
执行
.PJX:
项目管理器
CREATEPROJECT
MODIFYPROJECT
.DBF:
表文件
CREATE表名
USE表名\USE(关闭)
.DBC:
数据库文件
CREATEDATABASE
MODIFYDATABASE
OPENDATABSE
.QPR:
查询文件
CREATEQUERY
MODIFYQUERY
DO查询..QPR
.VUE视图文件
CREATEVIEW
OPENDATABASE
USE视图名
.PRG:
程序文件
MODIFYCOMMMAND
MODIFYCOMMMAND
DO程序名(可不写扩展名)
.SCX:
表单文件
CREATEFORM
MODIFYFORM
DOFORM
.MNX:
菜单文件
CREATEMENU
MODIFYMENU
.MPR:
菜单程序
由.MNX生成
DO菜单.MPR
.FRX:
报表文件
CREATEREPORT
MODIFYREPORT
全国计算机等级考试二级教程-公共基础知识-16
系统工具栏:
定制(修改),重置(复位)。
用户自定义工具栏:
新建,定制(修改),删除。
项目管理器:
管理VFP中一个软件项目中的所有文件。
选项卡
考点:
1、项目文件的扩展名为.pjx
2、各选项卡所管理的内容要记得。
(1)数据-数据库,自由表,查询;
(2)文档-表单,报表,标签;
(3)VFP中,程序文件(扩展名为.prg)放在《代码》选项卡中管理;
(4)菜单文件放在《其他》选项卡中管理;
3、“移去”按钮有2个功能:
(1)断开文件与项目的联系;
(2)从磁盘上删除文件。
4、上机:
(1)编辑说明;
(2)设置主文件;
(3)设置排除/包含;
折叠
常量与变量:
常量:
一个固定不变的东西。
100,“abc”;
变量:
内存中一块有名称的内存地址;
数据类型:
数值型、货币型、字符型(所有放在双引号或方括号或单引号中的内容)、日期型、日期时间型、逻辑(布尔)型
系统显示:
默认月日年的格式。
写程序时:
{^YYYY-MM-DD}
.t.
.f.
变量的分类:
内存变量和字段变量。
字段变量可以与内存变量重名,访问(调用、显示)时,默认访问字段变量,如果一定要访问内存变量,则必须在变量名前加m.或m->
通俗区分:
调用1个变量,一般为字段变量;
赋值,一般为内存变量;
ctod():
charactertodate-字符型转换为日期型
ctot():
charactertodatetime-字符型转换为日期时间型
dtoc():
datetocharacter-日期型转换为字符型
ttoc():
datetimetocharacter-日期时间型转换为字符型。
c-character-字符型
d-date-日期型
t-datetime-日期时间型
setcenturytoxrollovery
根据年份的后2位,识别年份的前两位是x还是x+1。
规则:
后2位>=y,则前2位为x;
后2位 宏替换: 将字符串中的内容照原样写出来,然后再看含义。 a="10" b="20" ? a+b ? &a+&b=============? 10+20 .null. (1)有值,不代表没有。 (2)有不确定的值。 isnull()-测试是否表示不确定。 empty()-测试是否表示没有。 eof()-测试表的记录指针是否指在表结束标志处。 bof()-..........................开始标志..。 recno()-测试当前记录的记录号(行号)。 reccount()-返回表中记录的个数(多少行)。 skipn-移动记录指针 gobottom-将记录指针移动到最后一条记录(不是结束标志) gotop-....................第一条.....(不是开始标志) gon-.....................指定的记录。 recno的取值范围: [1,reccount()+1] gobottom是将记录指针定位到表尾。 当表中有记录时,表一打开后,不做任何操作,则bof()为.f.。 执行gobottom命令后,eof()为.f.。 如果表没有记录,则打开后bof()和eof()都为.t.。 input可以接受任何类型的数据,但用户在输入时必须明确定界。 accept只能接受字符串数据,通俗点讲就是使用accept获得的任何数据都是字符型的。 程序基本结构: 一、顺序结构: 程序的执行从宏观角度看,都是从上到下一句一句或一块一块去执行。 二、选择结构: 又称分支结构。 根据外界条件不同,去执行不同的语句。 书写格式: if条件 语句组1 else 语句组2 endif docase case条件1 语句组1 case条件2 语句组2 .............. case条件n 语句组n [otherwise] 语句组n+1 endcase 三、循环结构: 当外界条件满足时,反复地去做某些事情。 书写格式: dowhile条件 循环体 enddo for循环变量=初值to终值step步长 循环体 endfor scanfor条件 循环体 endscan localx 默认情况下删除数据库,不会连带地删除数据库中的表。 如果想连带地删除表,可以使用deletetables参数。 新建数据库: createdatabase 打开数据库: opendatabase 设置当前数据库: setdatabaseto数据库名 修改数据库(打开数据库设计器): modifydatabase 关闭数据库: closedatabase 删除数据库: deletedatabase 如果当前有数据库为当前数据库,则新建的表为数据库表,该表将放在该当前数据库中,否则建立的表为自由表。 数据库表和自由表是可以相互转化的。 一张表在某个时刻只能被添加到1个数据库中。 (一张表不能同时从属与2个数据库)。 只有自由表可以被添加数据库,数据库表不可以。 修改表结构有2种方法: 1、VFP命令: modifystructure 2、SQL命令: altertable 在VFP中,修改表结构的命令是___________ 字段: 1、数据类型 2、字段有效性 删除记录: 1、做记号(逻辑删除) 方法一: 使用鼠标点删除区域; 方法二: 使用delete命令。 (1)delete-删除当前记录; (2)deleteallfor条件-删除所有符合条件的记录; 方法三: “表”-“删除记录”; 注意: 所有被逻辑删除的记录可以通过recall命令恢复。 2、真的删除(物理删除) 方法一: “表”-“彻底删除” 方法二: (1)使用pack命令删除带有逻辑删除标记(已经被逻辑删除)的记录。 (2)使用zap命令删除所有记录(不管事先有没有被逻辑删除)。 比较zap和pack: (1)两者都是用来物理删除的,且都不会删除表结构; (2)两者操作的前提条件是表必须以独占的方式(exclusive); (3)他们的区别在于方法二。 修改记录: replace (1)修改当前记录: replace字段名with值 (2)修改所有符合条件的记录: replaceall字段名with值for条件 显示记录: (1)display-显示当前记录,该命令执行后,记录指针原地不动; (2)list-显示所有记录,.........................指向结束标志; 注意: display|listfor条件-显示符合条件的记录 查询定位命令: 1、go/goto 2、skip 3、locatefor条件: 将记录指针定位到符合条件的第1条记录上,如果要继续向下定位,必须使用continue命令配合。 使用locatefor定位记录,如果找到了,则eof()为.f.,如果没找到,则eof()为.t.。 ......................................found()为.t.,...........found()为.f.。 indexon字段名to独立索引文件的操作系统文件名|tag索引名 编辑参照完整性之前必须先“清理数据库” 临时关系: setrelationto字段名into表名 sortto新表名on排序字段[/a|/d]for条件fields字段1,字段2,... 例题: 将学生表的所有女生的信息按身高升序排列,排列结果放到表stu中,stu包含姓名和身高2个字段。 sorttostuon身高/afor性别="女"fields姓名,身高 VFP常用函数列表 数值函数: 1.绝对值和符号函数 格式: ABS(<数值表达式>) SIGN(<数值表达式>) 例如: ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=0 2.求平方根表达式 格式: SQRT(<数值表达式>) 例如: SQRT(16)=4,它与开二分之一次方等同。 3.圆周率函数 格式: PI() 4.求整数函数 格式: INT(<数值表达式>)返回数值表达式的整数部分 CEILING(<数值表达式>)返回大于或等于表达式的最小整数 FLOOR(<数值表达式>)返回小于或等于表达式的最大整数 例如: INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5 FLOOR(9.9)=9 5.四舍五入函数 格式: ROUND(<数值表达式1>,<数值表达式2>) 功能: 返回制定表达式在制定位置四舍五入的结果 例如: ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND(345.345,-1)=350 6.求余函数 格式: MOD(<数值表达式1>,<数值表达式2>) 例如: MOD(10,3)=1MOD(10,-3)=-2MOD(-10,3)=2MOD(-10,-3)=-1 求余数的规律: ①首先按照两数的绝对值求余 ②表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值 ③余数取表达式1的正负号 ④若两数异好号,余数在加上表达式2的值为最终的结果 7.求最大值和最小值函数 格式: MAX(<数值表达式1>,<数值表达式2>[,<数值表达式3>…]) MIN(<数值表达式1>,<数值表达式2>[,<数值表达式3>…]) 例如: MAX(2,3,5)=5MAX(‘2’,’12’,’05’)=2MAX(‘汽车’,’飞机’,’轮船’) 字符串比较的规律: 字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。 如果相等在进行第二个字母的比较,以次类推。 字符函数 1.求字符串长度函数 格式: LEN(<字符表达式>) 功能: 返回制定字符表达式的长度,即所包含的字符个数。 函数值为数值型 例如: X=“中文VisualFoxPro6.0”则LEN(X)=20 2.大小写转换函数 格式: LOWER(<字符表达式>) UPPER(<字符表达式>) 功能: LOWER将制定表达式值中的大写字母转换成小写字母,其他字符不变 UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。 例如: LOWER(‘X1y2A’)=x1y2aUPPER(‘n=1’)=N=1 3.空格字符串生成函数 格式: SPACE(<字符表达式>) 功能: 返回指定数目的空格组成的字符串。 4.删除前后空格函数 格式: TRIM(<字符表达式>) LTRIM(<字符表达式>) ALLTRIM(<字符表达式>) 功能: TRIM(): 返回指定字符表达式值去掉尾部空格后形成的字符串 LTRIM(): 返回指定字符表达式值去掉前导空格后形成的字符串 ALLTRIM(): 返回指定字符表达式值去掉前导空格和尾部空格后形成的字符串。 例如: STORESPACE (1)+”TEST”+SPACE(3)TOSS ? TRIM(SS)+LTRIM(SS)+ALLTRIM(SS) LEN(SS)=8,LEN(TRIM(SS))=5,LEN(LTRIM(SS))=7,LEN(ALLTRIM(SS))=4 5.取子串函数 格式: LEFT(<字符表达式>,<长度>) RIGHT(<字符表达式>,<长度>) SUBSTR(<字符表达式>,<起始位置>,<长度>) 功能: LEFT(): 从指定表达式值的左端取一个指定长度的子串作为函数值。 RIGHT(): 从指定表达式值的右端取一个指定长度的子串作为函数值。 SUBSTR(): 从指定表达式值的起始位置取指定长度的子串作为函数值。 例如: STORE“GOODBYE! ”TOX LEFT(X,2)=GO,SUBSTR(X,6,2)+SUBSTR(X,6)=BYBYE! RIGHT(X,3)=YE! 6.计算子串出现次数函数 格式: OCCURS(<字符表达式1>,<字符表达式2>) 功能: 返回第一个字符串在第二个字符串中出现的次数。 例如: STORE‘abracadabra’TOS OCCURS(‘a’,S)=5,OCCURS(‘b’,S)=2,OCCURS(‘c’,S)=1,OCCURS(‘e’,S)=0 7.求子串位置函数 格式: AT(<字符表达式1>,<字符表达式2>[,<数值表达式>]) ATC(<字符表达式1>,<字符表达式2>[,<数值表达式>]) 功能: 验证表达式1是否是表达式2的子串,如果是,返回表达式1的首字符在表达式2中的位置,若不是,则为0 ATC()与AT()的功能类似,但比较时不区分大小写 例如: STORE”ThisisVisualFoxPro”TOX AT(“fox”,X)=0,ATC(“fox”,X)=16,AT(“is”,X,3)=10,AT(“xo”,X) 8.子串替换函数 格式: STUFF(<字符表达式1>,<起始位置>,<长度>,<字符表达式2>) 功能: 用<字符表达式2>的值替换<字符表达式1>中由<起始位置>和<长度>指明的一个子串。 例如: STORE‘GOODBYE! ’TOS1 STORE‘MORNING’TOS2 ? STUFF(S1,6,3,S2)=GOODMORNING! ? STUFF(S1,1,4,S2)=MORNINGBYE! 9.字符替换函数 格式: CHRTRAN(<字符表达式1>,<字符表达式2>,<字符表达式3>) 功能: 当第一个字符中的一个或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符中的对应字符(相同位置)替换这些字符。 如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对应字符,那么第一个字符串中相匹配的各字符将会被铲除。 如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多于字符被删掉。 例如: CHRTRAN(“ABACAD”,”ACD”,”X12”)=XBX1X2 CHRTRAN(“计算机ABC”,”计算机”,”电脑”)=电脑ABC CHRTRAN(“大家好! ”,”大家”,”您”)=您好! 总结: 第二个表达式没有的照写,第三个表达式没有的去掉。 10.字符串匹配函数 格式: LIKE(<字符表达式1>,<字符表达式2>) 功能: 比较两个字符串对应位置上的字符,若所有对应字符相匹配,函数返回逻辑真(.T.)否则返回逻辑假(.F.) <字符表达式1>中可以包含通配符*和? 。 *可与任何数目的字符相匹配,? 可以与任何单个字符相匹配。 例如: STORE“abc”tox STORE“abcd”toy LIKE(“ab*”,x)=.T.LIKE(“ab*”,y)=.T.LIKE(x,y)=.F. LIKE(“? b? ”,x)=.T.LIKE(“ABc”,x)=.F. 日期和时间函数 1.系统日期和时间函数: 格式: DATE(): 返回当前系统日期,函数值为日期型 TIME(): 以24小时制、HH: MM: SS格式返回当前系统时间(字符型) DATETIME(): 返回当前系统日期时间,函数值为日期时间型 2.求年份、月份、天数函数 格式: YEAR(<日期表达式>|<日期时间表达式>) MONTH(<日期表达式>|<日期时间表达式>) DAY(<日期表达式>|<日期时间表达式>) 3.时、分和秒函数 格式: HOUR(<日期时间表达式>) MINUTE(<日期时间表达式>) SEC(<日期时间表达式>) 数据类型转换函数 1.数值转换成字符串 格式: STR(<数值表达式>[,<长度>[,<小数位数>]]) 例如: STORE–123.456TON STR(N,9,2)=-123.46,STR(N,6,2)=-123.5 STR(N,3)=***,STR(N,6)=-123,STR(N)=-123 2.字符串转换成字符 格式: VAL(<字符表达式>) 例如: STORE‘-123.’TOX,STORT‘45’TOY STORE’A45’TOZ VAL(X+Y)=123.45,VAL(X+Z)=123.00,VAL(Z+Y)=0.00 3.字符串转换成日期或日期时间 格式: CTOD(<字符表达式>)转化成日期型数据 CTOT(<字符表达式>)转化成日期时间型数据 4.日期或日期时间转化成字符串 格式: DTOC(<日期表达式>|<日期时间表达式>[,1]) TTOC(<日期时间表达式>[,1]) 功能: TOC()将日期型数据或日期时间数据的日期部分转化成字符串 TTOC()将日期时间数据转化成字符串 声明: 对DTOC()来说,如果选项是1,则字符串的格式总是YYYYMMDD,8个字符。 对TTOC()来说,如果使用选项1,则字符串格式总是YYYYMMDDHHMMSS,14个字符 例如: STOREDATETIME()TOT DTOC(T)=11/11/2005,DTOC(T,1)=20051111, TTOC(T)=11/11/200518: 54: 34PMTTOC(T,1)=20051111185434 5宏替换函数 格式: &<字符变量>[.] 功能: 替换出字符变量的内容,即去掉定界符。 例如: kk=“456”,? &kk*100=45600 测试函数 1.值域测试函数 格式: BETWEEN(<表达式T>,<表达式L>,<表达式H>) 例如: STORENULLTOX;STORE100TOY BETWEEN(150,Y,Y+100)=.T. BETWEEN(90,X,Y)=NULL 2.空值(NULL值)测试函数 格式: ISNULL(<表达式>) 例如: STORE.NULL.TOX ISNULL(X)=.T. 3“空”值测试函数 格式: EMPTY(<表达式>) P76详细讲解 4.数据类型测试函数 格式: VARTYPE(<表达式>[,<逻辑表达式>]) 功能: 测试表达式的类型,返回一个大写字母,函数值为字符型 5.表文件尾测试函数 格式: EOF([<工作区号>|<表别名>]) 6.表文件头测试函数 格式: BOF([<工作区号>|<表别名>]) 7.记录号测试函数 格式: RECNO([<工作区号>|<表别名>]) 8.记录个数测试函数 格式: RECCOUNT([<工作区号>|<表别名>]) 9.条件测试函数 格式: IIF(<逻辑表达式>,<表达式1>,<表达式2>) 功能: 测试<逻辑表达式>的值,表达式逻辑若为真,函数返回<表达式1> 的值,若为逻辑假,函数返回<表达式2>的值,<表达式1>和<表达式2>表达式类型不要求相同。 例如: X=100;Y=300 IIF(X>100,X-50,X+50)=150;IIF(Y>100,Y-50,Y+50)=250 10.记录删除测试函数 格式: DELETED([<表的别名>|<工作区号>]) 1.CREATETABLE-SQL创建一个含有指定字段的表。 2.ALTERTABLE-SQL以编程方式修改表的结构。 3.SELECT激活指定工作区。 4.USE打开一个表及其相关索引文件,或打开一个SQL视图。 5.CLOSETABLES关闭所有打开数据库中的所有表。 6.COPYSTRUCTURE用当前选择的表结构创建一个新的空自由表。 7.COPYTO用当前选定表的内容创建新文件。 8.RENAMETABLE重命名当前数据库中的表。 9.BROWSE打开浏览窗口。 10.APPEND在表的末尾添加一个或多个新记录。 11.APPENDFROM从一个文件中读入记录,添加到当前表的尾部。 12.GO/GOTO将记录指针移到指定记录上。 13.LOCATE按顺序搜索表,从而找到满足指定逻辑表达式的第一个记录。 14.SEEK在一个表中搜索首次出现的一个记录。 15.SKIP使记录指针在表中向前或向后移动。 16.CONTINUE继续执行先前的LOCATE命令。 17.EDIT显示要编辑的字段。 18.DELETE给要删除的记录做标记。 19.DELETE-SQL给要删除的记录做标记。 20.PACK从当前表中永久删除有删除标记的记录。 21.RECALL恢复所选表中带删除标记的记录。 22.ZAP从表中删除所有记录。 23.INSERT-SQL在表尾追加一个包含指定字段值的记录。 24.REPLACE更新表的记录内容。 25.UPDATE-SQL以新值更新表中的记录。 26SETEXCLUSIVE指定VisualFoxPro在网络上是以独占方式,还是以共享方式打开表文件。 27.SETFILTER指定访问当前表中记录时必须满足的条件。 28.SETDELETED指定VisualFoxPro是否处理标有删除标记的记录。 29.SETINDEX打开一个或多个索引文件,供当前表使用。 30.SETORDER指定表的主控索引文件或标识。 31.GATHER将当前选定表中的当前记录的数据替换为某个数组、内存变量组或对象中的数据。 32.SCATTER从当前记录中把数据复制到一组内存变量或数组中。 33.OPENDATABASE打开一个数据库。 34.SETDATABASE指定当前数据库。 35.DELETEDATABASE从磁盘上删除数据库。 36.DISPLAYDATABASE显示有关当前数据库的信息。 37.MODIFYDATABASE打开数据库设计器,让用户能够交互地修改当前数据库。 38.VALIDATE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vfp
![提示](https://static.bingdoc.com/images/bang_tan.gif)