首页 Visual FoxPro简洁教程

Visual FoxPro简洁教程

举报
开通vip

Visual FoxPro简洁教程 Visual FoxPro 6.0的基本操作 第一节 Visual FoxPro 6.0的主窗口   一、命令窗口   是人机交互式的窗口。"命令"窗口是 Visual FoxPro 的一种系统窗口。当选择菜单命令时,相应的 Visual FoxPro 语句自动反映在"命令"窗口中,也可以直接在"命令"窗口中输入 Visual FoxPro 命令。   在"命令"窗口中您可以进行如下操作:   在按 ENTER 键执行命令之前,按ESC 键删除文本。         将光标移到已有命令行的任意位...

Visual FoxPro简洁教程
Visual FoxPro 6.0的基本操作 第一节 Visual FoxPro 6.0的主窗口   一、命令窗口   是人机交互式的窗口。"命令"窗口是 Visual FoxPro 的一种系统窗口。当选择菜单命令时,相应的 Visual FoxPro 语句自动反映在"命令"窗口中,也可以直接在"命令"窗口中输入 Visual FoxPro 命令。   在"命令"窗口中您可以进行如下操作:   在按 ENTER 键执行命令之前,按ESC 键删除文本。         将光标移到已有命令行的任意位置按ENTER键重新执行此命令。   若要分割很长的命令,可以在所需位置的空格后接分号,然后按ENTER键。   可在“命令”窗口内或向其他编辑窗口中移动和复制文本,选择需要的文本,并将其拖动到需要的位置。   二、命令结构   FoxPro命令通常由两部分组成。第一部分是命令动词,它的词义指明了该命令的功能第二部分包含有几个跟随在命令动词后面的选择项,称为子句,这些选择项通常用对所要执行的命令进行某些限制性的说明。   所有的命令都以命令动词开头,这个命令动词决定此命令的性质。命令动词一般为一个英文动词,该动词的含义 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示要执行的操作。为了方便,当命令动词超过四个字母时,可以采用简写,只写前面四个字母。      命令语法中的符号约定如下:   <> 必选参数表示符。表示必须提供具体参数,以满足尖括号内项的要求。   [ ] 可选参数表示符。在键入命令时,表示方括号内的参数可以键入,也可以不键入,如不键入则默认为系统的缺省值。   | 表示在其中可选择一项。      三、子句   范围子句:表示本命令对表文件进行操作的 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 范围,一般有四种选择:   ALL:表示对表文件的全部记录进行操作;   NEXT :表示只对包含当前记录在内的以下N条记录进行操作;   RECORD :表示仅对第N 个记录进行操作;   REST:表示记录范围是从当前记录对文件结束的所有记录。   如果范围子句缺省,则表示缺省情况是ALL。   FIELDS子句   这个选择项是选取参与操作的表文件字段,格式为FIELDS <字段名表>,FIELDS为系统命令字,<字段名表>列出若干个字段名,字段名之间用逗号分隔开,表示命令仅对所列字段进行操作。如果省略此子句,表示对所有的字段进行操作。      四、命令的一般格式   一行只能写一条命令,每一条命令的结束标志是按回车键。   如果一条命令一行写不下时,用分行符“;”在行尾分行,并在下行继续书写。   每条命令必须以命令动词开头,如果有多个子句,一般与书写顺序无关;   用空格来分隔各子句;   一条命令的最大长度是254个字符,在计算字符总数时空格应包含在内。   命令中的字符大小可以混合使用,为了美观和清晰,可将命令关键字大写,而其它内容可以小写。   在给标识符命名时应尽可能不使用FoxPro系统中的命令动词和命令字,以免程序在运行时发生混乱。   注释语句: *或NOTE :表示整行;也加在语句后,在注释前加&&。      第二节 数据库的基础知识      1.表文件的结构   在FoxPro中表文件缺省扩展名为.DBF。文件名是由英文字母、汉字、数字或下划线组成的一个字符串,且必须由英文字母或汉字打头。   一个表文件由若干行(称为记录)和若干列(称为字段)组成。   2. FoxPro的数据类型   不同类型的数据,其存放形式是不同的。FoxPro提供了如下数据类型:   字符型(Character:C)      用于存储字符串,由ASCⅡ码和国标GB2312-80中的汉字、非汉字字符组成,其长度最多可达254个字符。   数值型(Numeric:N)   按每位数一个字节存放正、负+进制数,由数字0-9、小数点和正负号组成,可用于算术运算,宽度最大可达16位。   浮点型(Float:F)   与数值型相似,只是浮点型数据实际存储形式是浮点格式,通常用于科学计算,具有较高的精度。   FoxPro的数据类型   逻辑型(Logic:L)   用于存储表示逻辑判断结果的值,长度固定为1位。只有两个值:逻辑真(.T.)或逻辑 假(.F.)。T、t、Y、y都表示逻辑真,F、f、N、n都表示逻辑假。   日期型(Date:D)   用于存储表示日期的特殊数据,有固定的格式。   备注型(memo:M)   是表文件中特有的数据类型,用于存放长度不定的任何数据量和类型,其长度固定为 10,实际数据存放在另一个和表文件同名、扩展名为.FPT的文件里。   通用型(General:G)   是FoxPro 所特有的数据类型,一般存放图像信息。和备注型数据一样,通用型数据也存放在和表文件同名、扩展名为.FPT的文件里。   常量   指在程序运行过程中不变化的数据。FoxPro中常用的四种类型常量如下:   字符型常量。用定界符括起来的一组字符、数字串。定界符有三种形式:单引号、双引号和方括号,三者完全等效。定界符必须配对使用。   数值型常量。包括整数和实数。   逻辑型常量。只有两种值,即逻辑值“真”和逻辑值“假”。   日期型常量。要用花括号括起,如{^2000-07-12}、{^2000.07.12}、 {^2000/07/12}均可表2000年7月12日。   变量   在程序运行中过程中,其值可以变化的量。   字段变量   内存变量   数组变量   实际上也是一种内存变量,但它具有自身的一些特点。   系统内存变量:是系统自己定义的一些变量。这些变量的名称是系统已经定义好的,都是以下划线开头,所以在定义内存变量的名称时,最好不要以下划线打头,以免发生重名。   运算符   运算符用来处理同种类型的数据,FoxPro提供的常用运算符有如下几种类型:   算术运算符   关系运算符   逻辑运算符   字符串连接运算符   日期运算符   运算符之间的优先级是:算术运算符和字符串连接运算符最高,日期运算符和关系运算符次之,逻辑运算符最低,同级运算从左到右依次进行。   算术运算符   算术运算符用来对数值型变量、常量进行常规的算术运算,运算结果也是数值型数据。   FoxPro提供的算术运算符有:   () 分组优先运算符   **或^ 乘幂运算符   *、 / 乘除运算符   % 求余运算符   +、 - 加减运算符   算术运算符的优先级排序为:   (1)括号;(2)乘幂;(3)乘除;(4)求余;(5)加减。   关系运算符   关系型运算符用于比较运算,即比较同类型表达式的值。如果其值使关系成立,则比较运算的结果取逻辑值“真”,否则取逻辑值“假”   关系运算符分别有:   小于:<;   大于:>;   不等于:< >、#、!=;   小于等于:<=;   大于等于:>= ;   等于:=;   字符串全等比较:==;   包含比较:$   各关系运算符的优先级相同。   逻辑运算符   逻辑运算符常用作表达式之间的逻辑运算。参加运算的表达式应有逻辑值,其运算结果也是逻辑值。   常用的逻辑运算符有如下三种:   .NOT. 逻辑非   .AND. 逻辑与   .OR. 逻辑或   逻辑运算符的优先级由高到低的次序为:逻辑非、逻辑与、逻辑或   字符串连接运算符   字符串连接运算符用于把两个或多个字符串合并为一个新字符串。   字符串连接运算符有如下两种:   +:用于把加号前后的字符串连接起来组成一个新字符串,这种连接又称为完全连接。   -:用于把减号前面字符串尾部的空格移到减号后面字符串的尾部,然后相连接形成一个新的字符串。   日期运算符   日期运算符用于处理日期型量。   日期运算符有+和-。   表达式   表达式是FoxPro命令和函数重要组成部分。它通常由常量、变量、函数等通过运算符连结起来。   表达式经过运算后得到一定的运算结果,称为表达式的值。   表达式分为以下5种:   数值表达式   字符表达式   关系表达式   逻辑表达式   日期表达式   数值表达式   数值表达式由数值型常量、变量、函数和算术运算符连接而成,其运算结果为数值型数据。   例:   字符表达式 运算结果   2*8/3      5.33   28%5        3   12-3        9   字符表达式   字符表达式由字符型常量、变量、函数和字符串连接运算符连接而成,其运算结果也为字符型数据。   例:   字符表达式            运算结果   “计算机 ”+“世界”      计算机 世界   “计算机 ”-“世界”      计算机 世界   关系表达式   关系表达式两边的数据类型必须一致。   字符的比较是按ASCⅡ码值的大小进行的,汉字按机内码值进行大小比较。如果含有表达式,则先计算表达式的值,再进行关系的比较。   关系成立值为.T.,否则值为.F.。   例:   关系表达式       运算结果   1243.33>22        .T.   逻辑表达式   逻辑表达式实际上是一种判断条件,表达式值为.T.,则表示条件成立,表达式值为.F.,则表示条件不成立。   例:假设教师档案.dbf刚打开    表达式                运算结果    性别=.T.   AND 职称=”副教授”    .T.   日期表达式   日期表达式由日期常量、变量、函数和日期运算符连接而成。其运算结果为数值型数据或日期型数据。   例:   日期表达式                运算结果   {^2000.04.12} +30           05/12/2000   {^2001.04.12}- {^2000.04.12}         365   第三节 对表文件的操作      表文件结构的定义、显示与修改   表文件结构的定义   格式: Create <文件名>   表文件结构的显示   格式1: list structure   格式2: display structure   表文件结构的修改   格式: modify structure   对记录的操作   表文件的打开与关闭   记录的输入   记录的显示   记录的编辑、浏览和修改   记录值的批量替换   记录定位   指针   指针的绝对移动   指针的相对移动   记录的插入   记录的删除与恢复   记录的查询   表文件的打开与关闭   打开当前表文件   格式: USE   如用:use 人才档案.dbf exclusive   关闭当前表文件   格式: USE   还有一些:如 close all:关闭所有打开的表,同时释放所有内存变量。Close tables:关闭当前数据库中所有打开的表。   选择当前工作区   格式: Select <区号>   记录的输入   用APPEND命令添加记录   在建立表结构时也可不立即输入数据,先将表结构存盘保存,在需要的时候用USE 命令打开表文件,再用APPEND命令在已打开的表文件末尾追加记录。   句法:APPEND [BLANK]   用命令BROWSE添加记录   在命令窗口里键入命令BROWSE后,系统处于全屏幕编辑状态,这条命令的功能十分丰富,其中之一是可用于添加记录。   记录的显示   显示记录是为了使用户能够了解输入到计算机中的数据信息。   句法:   LIST [FIELDS <字段表>] [<范围>]   [FOR <逻辑表达式1>] [WHILE <逻辑表达式2>]   [TO PRINTER | TO FILE <文件>]   说明:DISPLAY后面的参数同于LIST,两者的差别在于:   LIST 命令是连续显示;DISPLAY 命令是分屏显示,两条命令的作用是逐条显示当前表文件的记录。   若缺省其它选项,DISPLAY 命令只显示当前记录,而LIST 命令显示符合条件的所有记录。   记录的编辑、浏览和修改   表文件建立后,对记录进行编辑修改,这主要通过命令EDIT、CHANGE和BROWSE来进行。   这三条命令均是交互式操作命令,提供很强的功能与手段,其中EDIT和CHANGE这两条命令的功能基本相同,它们和BROWSE命令的区别在于数据记录表现形式不同,EDIT(CHANGE)是一条记录一个窗口的方式,而 BROWSE则是一行一条记录,像表格一样操作。   BROWSE   句法:BROWSE   [FIELDS <字段表>]   [FONT <字符表达式1>[,<数字表达式1>]]   [STYLE <字符表达式2>]    [FOR <逻辑表达式1>]    [FREEZE <字段>]    [KEY <表达式1>[,<表达式2>]]   [NOAPPEND]   [TIMEOUT <数字表达式4>]   [TITLE <字符表达式4>]    [WIDTH <数字表达式5>]   [WINDOW <窗口名1>]   [COLOR SCHEME <数字表达式6>|COLOR <颜色对>]   记录值的批量替换   使用REPLACE命令,可以将字段的内容替换成新值,一次可替换多条记录、多个字段的值。   REPLACE命令在需要替换一批数据、并且这批数据又比较有规律时,是很方便的,在程序设计中 经常要用到这条命令。   句法:   REPLACE <字段1> WITH <表达式1>   [ADDITIVE]   [,<字段2> WITH <表达式2>   [ADDITIVE]]    …   [<范围>] [FOR <逻辑表达式1>]   [WHILE <逻辑表达式2>]   记录的插入   命令APPEND只能在表文件尾部增加一条记录,当需要在任意指定的位置增添一条记录时,可用INSERT命令。   句法:INSERT [BEFORE] [BLANK]   指针   一个表文件可以包含多条记录,每条记录按其物理顺序都有一个记录号。表文件在指定工作区打开后,系统分配给该表文件一个唯一的记录指针,指针里存放着一个记录号,代表指针指向该记录,该记录被称为当前记录。   函数RECNO( )返回当前记录号。   指针的绝对移动   句法1:GO [RECORD] <记录号>    [IN <工作区号>|IN <表文件别名>]   句法2:GO TOP|BOTTOM    [IN <工作区号>|IN <表文件别名>]   说明:   也可用GOTO,后面的参数同于GO。   GO TOP 表示将记录指针移到文件的顶部。   GO BOTTOM 表示将记录指针移到文件的底部。   IN <工作区号> 表示在相应的工作区移动记录指针。   IN <表文件别名> 表示移动相应表文件的记录指针。   指针的相对移动   句法:   SKIP [<数字表达式>]   [IN <工作区号>|<表文件别名>]   说明:命令SKIP以当前记录为基准,当<数字表达式>为正值时向下(当<数字表达式>为负值时向上)跳越 <数字表达式>条记录而指向另一条记录,缺省<数字表达式>,则指针下移一条记录。   记录的查询   记录的直接查找LOCATE命令   句法:   LOCATE [<范围>]FOR <逻辑表达式1>] [WHILE <逻辑表达式2>]   说明:该命令在指定范围内搜索满足指定条件的第一条记录。选项[FOR <逻辑表达式1>]和[WHILE <逻辑表达式2>]指定查找需满足的条件。一旦在指定范围找到第一个满足条件的记录 ,则记录指针被定位于已找到的记录,函数FOUND( )返回.T.;否则,记录指针定位于指定范围内的最后一个记录上,函数FOUND( ) 返回.F.。   记录的继续查找CONTINUE命令   句法:CONTINUE   该命令必须在LOCATE命令之后执行,以继续查找满足条件的下一条记录。   记录的定位   如:“人才档案”表中的记录进行如下记录定位操作:   (1)确定最后一个记录为当前记录   (2)确定5号记录为当前记录   (3)确定当前记录的下一个记录为当前记录   (4)确定第一个党员的记录为当前记录   (5)确定当前记录的上一个记录为当前记录   (6)确定第一位性别为女的记录为当前记录   (7)确定第一个记录为当前记录   记录的删除与恢复   逻辑删除   句法:   DEIETE [<范围>][FOR <逻辑表达式>] [WHILE <逻辑表达式2>]   说明:所谓逻辑删除,指仅在记录的前面加上一个删除标志,并未真正将记录从表文件中删除。   物理删除   句法:PACK   说明:该命令将当前表文件中所有作上删除标记的记录从物理上真正删除,且无法恢复。   无条件物理删除   句法:ZAP   说明:该命令在物理上将当前表文件中所有记录全部删除,包括有删除标志的记录和无删除标志的记录,且无法恢复。   记录的恢复   句法:   RECALL [<范围>] [FOR<逻辑表达式1>] [WHILE <逻辑表 达式2>]   该命令将当前表文件中作上删除标志的记录恢复为正常的记录,对那些已作物理删除的记录则无效。   记录的删除与恢复   例   (1)逻辑删除第1个、第5个和第10个记录,并恢复这些逻辑删除记录   (2)逻辑删除表的全部记录,并恢复这些逻辑删除的记录   (3)逻辑删除表的第1到第3个记录,并恢复   (4)逻辑删除表中所有性别为女的记录,并对这些记录进行物理删除。   Use 人才档案.dbf   Browse last   Delete record 1   Delete record 5   Delete record 10   Browse last   Recall all   Browse last   Delete all   Browse last   Recall all   Browse last   Go top   Delete next 3   Browse last   Recall all   Browse last   delete all for 性别=“女”   Browse last   Pack   Browse last   索引和排序   记录在表文件中的物理排列次序取决于数据输入时的前后顺序,而数据的输入顺序往往与处理时希望的顺序并不一致,这就需要采取一些 措施 《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施 对记录进行重新组织,以满足处理要求。索引和排序可以达到这个目的。   索引   M索引文件的建立   M 索引文件的打开与关闭   M 索引文件的重建   M 索引查找FIND 和SEEK 命令   M 排序   记录的索引查找FIND命令   句法:FIND <字符表达式>|<数值表达式>   该命令在索引文件中,查找当前主索引关键字表达式的值和<字符表达式>|<数值表达式 >相匹配的第一条记录。若找到这样的记录,则RECNO( )返回记录号,EOF( )返回.F.;否则,FOUND( )返回.F.,EOF( )返回.T.。   FIND命令只能对排序或索引了的表文件才能使用,因关键字在索引文件中排过序,故检索速度比LOCATE命令快得多。   不能查找非索引关键字。   记录的索引查找SEEK命令   句法:SEEK <表达式>   该命令用来查找已建立索引的表文件中索引关键字和<表达式>相匹配的第一条记录。 若找到这样的记录,则RECNO( )返回记录号,FOUND( )返回.T.,EOF( )返回.F.,否则 FOUND( )返回.F.,EOF( )返回.T.。   SEEK命令也只能对排序或索引了的表文件才能使用 ,也不能连续查找,只能查找符合条件的首记录,但SEEK命令可查找多种类型的索引关键字 ,包括字符型、数值型以及日期型。   SEEK命令适用范围较FIND命令广,且处理较FIND简便,在索引检索中一般使用SEEK命令进行检索操作。   计算   句法:   CALCULATE <表达式表> [<范围>]   [FOR <逻辑表达式1>][WHILE <逻辑表达式2>]   [TO <内存变量表>|TO ARRAY <数组>]   说明:<表达式表>可以是下列函数的任意组合。   AVG(<数值表达式>):计算<数值表达式>的算术平均值   CNT( ):返回统计记录个数   MAX(<表达式>):返回<表达式>的最大值   MIN(<表达式>):返回<表达式>的最小值   VAR(<数值表达式>):返回<数值表达式>的方差   STD(<数值表达式>):计算<数值表达式>的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 偏差   SUM(<数值表达式>):返回<数值表达式>的总和       第四节 程序设计      程序的建立、修改和运行   程序中常用的简单语句   数据输出   数据输入   程序结构   顺序结构程序设计   选择结构程序设计   循环结构程序设计   数组   程序调用和参数传递   源程序的建立、修改和运行   源程序的建立和修改   格式: Modify command [<文件名>]   功能:建立一个新文件或修改原有文件。   说明: ① 默认扩展名为*.PRG;    ② 修改原有文件时,旧文件以.BAK为扩展名建立备份。    ③ ^W存盘退出;ESC放弃修改。   源程序的运行   格式: DO <文件名>   说明: FoxPro执行指定的<文件名> 程序,若指定的文件缺省扩展名,则FoxPro按下面的顺序寻找并执行:   (1).EXE:可执行的版本;   (2).APP:应用程序;   (3).FXP:编译版本;   (4).PRG:源程序。   数据输出   数据进表后,如何根据用户的需要生成格式化报表,或将结果从屏幕上输出,供显示查询需要,下面的命令将帮助用户完成相应的操作。   ?|??命令   句法:?|??<表达式1>[,<表达式2>]    屏幕格式化数据输出命令…SAY   句法:@ <行,列> SAY <表达式>    [FONT<字符表达式1>[,<数字表达式>]]    [STYLE<字符表达式2>]    [COLOR<颜色对>]   说明:该命令同样用于计算表达式并按指定格式输出结果,与?|??命令所不同的是,它可以在屏幕的指定坐标位置上进行输出显示,并且可以选择颜色。   ?|??命令   <表达式1>是需要显示的内容,FoxPro先计算其值,然后显示。该表达式可以是一个字符串常数,也可以是常数、字段变量、内存变量、函数及由它们构成的复合表达式,也可以包含用户自定义函数。在由多个简单表达式组成一个复合表达式时,如包含不同类型的常量或变量,需将它们先转化成字符型量(如数值型量要用STR( )函数、日期型量要用DTOC( )函数分别转化成字符型量),然后用字符串连接符“+”或“-”连接。   ?和??的区别在于,命令?在输出表达式的值之前先发送一个换行符,而命令??在输出表达式的值之前并不先发送一个换行符。   数据输入   屏幕格式化数据输入命令@…GET   句法:@<行,列> GET <内存变量>|<字段>   说明:在FoxPro的程序执行方式中,常常要构造一个屏幕输入格式让用户在确定的位置上输入数据,为此系统提供了这条命令,用于在给定的坐标位置上显示或编辑各种数据,该语句同样也能在交互方式下作为命令使用。该命令中的<内存变量>|<字段>必须通过READ语句激活,才能进入编辑状态。   WAIT   ACCEPT   INPUT   INPUT   句法:   INPUT [<字符表达式>] TO <内存变量>   说明:   该命令将<字符表达式>作为提示字符串,显示在屏幕上。通过键盘接收数值、日期、逻辑值或字符串,并存入<内存变量>,以回车键结束数据的输入。   <内存变量>的类型根据输入值确定,字符型数据必须用引号括起,如果输入一个非法表达式去响应INPUT命令,则系统指出语法错误。   如:设计一个程序,将“人才档案”表中指定的“出生日期”记录逻辑删除。   X Clear   use 人才档案.dbf   input “请输入出生日期:” to csrq   delete for 出生日期=csrq   键盘输入:{^1969-02-03}   ACCEPT   句法:ACCEPT [<字符表达式>] TO <内存变量>   说明:   该命令将<字符表达式>作为提示字符串,显示在屏幕上。通过键盘接收输入字符串,并将该字符串保存到指定的<内存变量>中,该命令总是把输入数据作为字符型数据来处理,因而输入的字符不必用引号括起来,以回车键结束输入。与WAIT一样,如果输入回车键或其它非打印字符,则该字符作为ASCⅡ码0值放入这个内存变量中。   一旦给<内存变量>赋值后,便继续运行中断了的命令文件。   WAIT命令   句法:WAIT [<字符表达式>][TO <内存变量>]   [TIMEOUT <数字表达式>]   说明:   该命令暂停程序执行,直到接收由键盘输入的单个字符为止。如果选择了TO <内存变量>子句,则键盘输入的单个字符将被保存到指定的内存变量中,如果输入回车键或其它非打印字 符,则该字符作为ASCⅡ码0值(即空字符)放入此内存变量中。   <字符表达式>作为提示字符串,显示在屏幕上,然后等待用户键入任一键使程序继续运行,从而为人机对话提供了一个等待机会。   选项TIMEOUT <数字表达式>指定等待时间,若超过<数字表达式>秒未击键,则系统返回空值并自动恢复程序执行。   WAIT命令   设计一个程序,能够分别浏览“专业特长”表中不同职称的记录集,当完成一组记录集的显示后,在屏幕右上角提示用户操作结束,提示信息要在屏幕停留5秒钟。   Use 专业特长   Accept “请输入职称:” to zc   browse all for 职称=zc   wait “职称为”+zc+“记录已显示”window timeout 5   ACCEPT、INPUT、WAIT的比较     ACCEPT INPUT WAIT 数据类型 C C,N,D,L 单个字符 是否要定界符 可以不要 要 不要 是否回车 要 要 不要   数组   数组变量实际上也是一种内存变量,在FoxPro中,数组被定义为一组变量的集合,这些变量可以是不同的数据类型,并且在运行中数据类型可发生变化。数组中的每一项称之为一个元素,每个数组元素可以象内存变量一样处理,也可以用在表达式中,一个数组其实是存储在内存中的一个一维或二维表。在FoxPro中,数组被称为内存变量数组。   数组的定义   数组的赋值   数组和表文件之间的数据传递   数组的定义   句法:   DECLARE <数组1>(<数值表达式1>[,<数值表达式2>])   [,<数组2>(<数值表达式3>[,<数值表达式4>])]…   说明:   DECLARE可由DIMENSION代替,两者效果相同。   <数值表达式1>代表数组的行数,<数值有达式2>代表数组的列数。 如果仅有<数值有达式>,则为一维数组;否则为二维数组。经过定义的每个数组只需用一个内存变量表示(即数组名),每个数组最多包含3600个元素,内存变量数组的下标,(即< 数值表达式1>、<数值表达式2>)至少为1。   内存变量数组在使用中应特别注意数组元素的排列次序。   内存变量数组的元素可以是任意类型的数据,其数据类型由对该变量最后的赋值决定。数组元素数据类型缺省值为逻辑型,其值为.F.,使用DISPLAY MEMORY可以列出定义的数组元素的类型及其值。   数组的赋值   句法:有如下两种形式:   STORE <表达式> TO <数组变量表>   <数组变量表>=<表达式>   例:   DIMENSION array(2,3)   array=0   例:   DIMENSION array(2,3)   array=0   array(1,1)=CTOD(“ / /”)   array(1,2)=“welcome”   array(1,3)=.T.   程序调用和参数传递   在设计数据库应用系统时,首先应通过系统 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 确定应用系统的总体目标,对复杂的应用系统,可将系统总目标分解成几个子目标,对各个子目标有可能再分解为更低一级的子目标。系统分析完成以后才能进入系统设计和程序设计,程序设计中每个子目标构 成一个模块,一般最低一级子目标的规模控制在50条语句左右。这样,应用系统由若干大模块构成,大模块细分为小模块,模块间存在调用关系。   主程序与子程序   过程及过程文件   自定义函数   局部变量与全局变量   主程序与子程序   在一个实际应用系统中,主程序起着总控作用,通常包括系统的初始化、状态设置、用户身份识别、系统封面、系统菜单的定义、激活及各子程序的调用。   在FoxPro中,子程序与主程序一样,都是FoxPro的命令文件,扩展名为.PRG,通过命令MODIFY COMMAND建立,并进行编辑。   在主程序中,通过命令DO <子程序名>执行子程序。   句法:DO <子程序名> [WITH <参数表>]   说明:其中<参数表>是主程序向子程序传递的一组参数,一次最多可传递24个参数。子程序在第一行用关键字PARAMETER <参数表>接收参数,传递参数的个数及先后顺序和接收参数的变量个数及先后顺序必须相同。   过程及过程文件   系统较为复杂时,系统由很多功能模块构成,如果将这些功能构造成一个个独立的命令文件,如一个应用系统由50个表文件和150个程序文件(.PR G文件)组成,若用户编译这150个文件又产生150个.FXP文件,并且在应用中还建立了一批索引文件和临时数据文件,系统的处理速度将随之下降。为此,FoxPro系统允许多个过程(功能模块)构造成一个过程文件,一个过程文件中的过程总数不限;也可以在主程序中包括几个过程。   过程   过程调用   过程文件   过程   过程是一个以过程说明语言PROCEDURE作为起始行、以RETURN命令结束的子程序段 。   句法:PROCEDURE <过程文件名>   …   RETURN   说明:   <过程文件名>以字母开始,包含不超过10个的字母、数字和下划线。   RETURN语句终止当前的过程,返回上一级调用程序。过程的终止语句如使用CANCEL,则返回到FoxPro命令窗口;如使用QUIT,则返回操作系统。   过程调用   过程调用的句法如下:   DO <过程文件名> WITH <参数表>   调用程序与被调用的过程之间也可通过PARAMETERS语句传递参数,PARAMETERS语句的格式如 下:   PARAMETERS <参数表>   在调用过程时,将DO语句中的参数值传递给该PARAMETERS语句中的参数,并在调用结束后返回对应参数的计算值。在<参数表>中,各个参数以逗号分隔开,调用程序中的参数和被调用过程中的参数必须个数相同,两部分参数之间在排列位置上相对应,对应位置上两个参数必须数据类型相同。   过程文件   将多个过程放置在一个文件里,该文件称为过程文件。   过程文件和命令文件一样,可直接由MODIF COMMAND <过程文件名>或其它文字编辑软件建立。   打开过程文件的语句是:   SET PROCEDURE TO <过程文件名>   说明:该命令用来打开一个指定的过程文件,然后通过DO语句调用过程文件内部的各个过程。   一个过程文件打开后,原打开的过程文件自动关闭,不带过程名的SET PROCEDURE TO或CLOSE PROCEDURE也能关闭过程文件。退出FoxPro系统后,自动关闭打开的过程文件。   FoxPro允许一个过程文件中,用SET PROCEDURE TO <过程文件名>打开自身这个过程文件,其中<过程文件名>是自身这个过程文件的文件名,然后再通过DO命令实现过程文件内部各过程的相互调用。   过程文件示例   SET TALK OFF   SET PROCEDURE TO MYPRO   DO KK1   …    DO KK2   …   SET PROCEDURE TO   …   RETURN   *过程文件MYPRO.PRG如下:   PROCEDURE KK1   …   RETURN   PROCEDURE KK2   …   RETURN   自定义函数   用户自定义函数和过程有很相似的地方,都是一个子程序段,但用户自定义函数必须以语句 FUNCTION开头作为UDF的标识,必须包含一个RETURN <函数返回值>语句以便返回该函数的值。   句法:   FUNCTION <函数名称>   [PARAMETERS <参数名称>]   <语句序列>   RETURN <函数返回值>   第一句为函数的说明语句,定义了一个函数的名称,<函数名称>最大长度为10个字符,其它程序调用这个函数就是通过该名称进行的。第二句为参数说明语句,它说明调用这个函数时,要将哪些参数传递给这个函数;PARAMETERS语句在函数中和在过程中所代表的意义是有 区别的,对被调用的函数而言,PARAMETERS语句只是一个参数输入语句,而在过程中,这个语句则是一个参数输入/输出语句;如果没有参数可以传递,PARAMETERS语句可以省略。< 语句序列>为用户为完成相应的应用要求而编写的程序。最后一句表示返回函数值,一个函数必须在程序运行结束时,返回一个函数值。   局部变量   定义局部变量一可以节约内存空间,二可以避免重名变量被修改其内容。程序中未加说明,定义的内存变量都是局部型的。   句法1:PRIVATE <内存变量表>   句法2:   PRIVATE ALL [LIKE <通配符>|EXCEPT <通配符>]   上述两条命令定义所指定的内存变量为局部变量。局部变量只在定义它的程序模块中有效,程序执行完毕后,它们被系统自动清除。如果定义局部型内存变量的程序调用了子程序,则该变量在子程序中继续有效;如果它在子程序执行过程中改变了变量值,返回程序时被改变了的值仍然保存在这个变量中,并可继续使用;在多重子过程嵌套的情况下,较高一级程序中定义的变量可供较低一级使用,反之则不行。   在被调用程序中用PRIVATE语句建立局部变量,局部变量若和上层的变量重名,系统将这两个变量作为不同的变量看待;一个是相对于下层具有全局定义的量,称为当前隐藏的变量,列变量表时标以hidden;另一个是当前的局部变量。局部变量赋值不影响上层同名变量,当下层执行完毕返回上层时,下层局部变量不能由上层程序所检索及修改,上层变量则恢复其隐藏的值。   局部变量说明中由ALL说明当前所用的变量全部为局部变量,用LIKE <通配符>子句说明当前所用的内存变量中变量名与<通配符>相匹配的的变量都是局部变量,EXCEPT <通配符>子句说明当前所用的内存变量中除了变量名与<通配符>相匹配的变量都是局部变量。   全局变量   句法:PUBLIC<内存变量表>   说明:该命令将指定的<内存变量表>中的每一个内存变量定义为全局变量。   由PUBLIC定义的内存变量在整个程序中,包括子程序中都有效,在子程序中定义的全局变量在主程序中也有效,当程序运行结束时,内存变量不会被释放。   全局变量必须先定义,后赋值。   面向对象的编程概念   1.类与对象   VFP是面向对象的程序设计语言,采用面向对象的程序设计方法开发应用程序。         (1)容器类   容器类 可包含的对象 容器 任意控制 工具栏 任意控制、页框、容器 表单集 表单、工具栏 表单 页框、容器或用户自定义对象、任意控制 页框 页面 页面 任意控制、容器或用户自定义对象 表格 表格列 表格列 标头及除表单集、表单、工具栏、定时器 和其他列以外的任意对象 命令按钮组 命令按钮 选项按钮组 选项按钮   (2)控件类      2.对象引用   (1)绝对引用   (2)相对引用   名字 表示 THIS 当前操作对象 THISFORM 当前操作的表单 THISFORMSET 当前操作的表单集 Parent 当前对象的直接容器 ActiveForm 当前活动表单 ActivePage 当前活动页 ActiveControl 当前具有焦点的控件    、   3.对象的属性   容器对象的集合属性和计数属性   对象的常用属性 容器 集合属性 计数属性 _SCREEN Forms FormCount 表单集 Forms FormCount 表单 Controls ControlCount 页框 Pages PageCount 页面 Controls ControlsCount 表格 Columns ColumnsCount 命名组 Buttons ButtonsCount 选项组 Buttons ButtonsCount 列 Controls ControlsCount 工具栏 Controls ControlsCount 容器 Controls ControlsCount 控制 Controls ControlsCount Caption 标题文本 Value 存放的值 ForeColor BackColor 设置对象的前景颜色和背景颜色 FontName FontSize 指定文本显示字体名和字体大小。字体有关的属性还有: FontBold-黑体 FontItalic-斜体 FontStrikeThru-空心体 FontOutline-轮廓 FontShadow-阴影FontUnderline-下划线 Enabled 是否允许用户操作 Visible 是否可见 ReadOnly 是否只读 Height,Width Left,Top 指定对象的高度、宽度和起点位于容器左边和上边的单位距离。度量单位由ScaleMode指定。 ControlSource 确定对象的数据源。一般为表的字段名 TabIndex 对象在表单中Tab键的选取顺序或页控件的选取顺序。 ToolTipText 当鼠标指针移至该对象时显示的提示信息 Comment 注释   4.对象的方法   对象的方法决定了对象要执行的操作,方法中的代码是不可见的,   可以通过调用来使用对象的方法。   事件 作用 Refresh 刷新对象的屏幕显示 SetFocus 把焦点移至该对象 SetAll(属性,值[,类]) 为容器中所有(或某类)控件的属性设置值   5.对象的事件   对象的事件是对象的动作和行为。   事件 说明 Click 鼠标单击事件 DblClick 鼠标双击事件 RightClick 鼠标右击事件 MouseMove 在对象上移动鼠标时产生的事件 参数: 鼠标状态, ,ShihtCtrlAlt状态,x坐标,y坐标 其中, 鼠标状态为鼠标与键值和。左键值为1, 右键值为2, 中键值为4。 ShihtCtrlAlt状态为三键值和。Shift值为1, Ctrl值为2 ,Alt值为4。 MouseDown 当鼠标按下时产生的事件 MouseUp 当鼠标释放时产生的事件 DragDrop 当鼠标拖动对象到目标对象时在目标对象上产生的事件。 参数: 被拖动的对象名,x坐标, y坐标 DragOver 当鼠标拖动对象通过目标对象时在目标对象上产生的事件。 参数: 被拖动的对象名,x坐标, y坐标,状态 其中: 状态就以0为进入,1为离开,2为经过 KeyPress 当单击一键时产生的事件。 参数: 键ACSII码,ShihtCtrlAlt状态 其中, ShihtCtrlAlt状态为三键值的和。Shift值为1, Ctrl值为,2 Alt值为4。 InteractiveChange 当交互改变控件值时产生的事件 ProgrammaticChange 当程序改变控件值时产生的事件 事件 说明 GotFocus 当对象得到焦点时产生的事件 LostFocus 当对象失去焦点时产生的事件 When 当对象得到焦点前产生的事件 Valid 当对象失去焦点前产生的事件 Resize 当调整对象大小时产生的事件 Activate 当激活表单、表单集、页和工具栏对象时产生的事件 DeActivate 当一个容器对象不再处于活动状态时产生的事件 Destry 当对象释放时产生的事件   6.事件的触发顺序 对象 事件 说明 数据环境 BeforeOpenTables 表单、表单集和报表中的数据环境包含的表或视图打开前触发 表单集 Load 创建表单集前触发 表单 Load 创建表单前触发 数据环境临时表 Init 创建数据环境临时表时触发 数据环境 Init 创建数据环境时触发 控件对象 Init 从内层的对象到外层容器创建时触发 表单集 Activate 当激活表单集对象时触发 表单 Activate 当激活表单对象时触发 控件对象 When 属性TabIndex=1的对象在控件接收焦点之前触发 表单 GotFocus 当对象接收焦点时触发 控件对象 GotFocus 属性TabIndex=1的对象接收焦点时触发 控件对象 Message 属性TabIndex=1的对象得到焦点后触发   创建表单   1.表单设计器工具栏   表单在VFP中是一个容器,它可以容纳Visual FoxPro的对象。在程序运行时,表单是用户与应用程序之间进行交互的窗口         Tab键的次序显示      表单设计器工具栏从左到右的图形按钮功能如下:   (1)设置Tab键的次序   (2)数据环境   (3)属性窗口   (4)代码窗口   (5)表单控件工具栏   (6)调色板工具栏   (7)布局工具栏   (8)表单生成器   (9)表单生成器      表单控件工具栏      布局工具本栏      2.表单控件的布局   (1)选择表单控件   (2)增加表单控件   (3)移动表单控件   (4)改变表单控件大小   (5)删除控件   (6)从数据环境拖放对象   (7)控件布局工具栏   3.表单数据环境     (1)向数据环境添加表或视图   (2)在数据环境中设置关系      4.表单控件的数据源   表单控件中的许多控件都可有一个属性ControlSource用于绑定数据源。数据源就是数据的来源,一般常用的有表和视图。绑定数据源就是将控件对象与数据源的字段绑定起来。这样,当前记录字段的值就会在该控件对象中显示。如果当前记录指针移动,该控件对象显示的值也会相应的变化。控件的Refresh属性可用于刷新控件显示内容,以使控件对象显示的与绑定的数据源的当前值保持一致。表单的Refresh属性,用于使表单上的所有控件对象显示的与绑定的数据源的当前值保持一致。      表单的属性、事件和方法   表单属性定义表单对象的特征或行为。表单及其包含的对象的属性通过"属性"窗口定义和修改。   在"属性" 窗口包含对象列表框和页框,每个选项卡由属性设置框和属性列表和项目说明文本框几个部分组成。表单的所有属性分成数据、布局和其他三类,分别放入相应的选项卡中。同时表单的方法和事件放入方法程序选项卡中。表单的所有属性、方法和事件均放         2.表单的事件   事件 触发时间 Active 当一个表单变成活动表单时触发。 DeActivate 表单从活动变成不活动时触发 Init 当表单第一次创建时触发,一般将表单的初始化代码放在其中 Load 创建表单前触发,事件发生在Init事件之前。因为此时表单中的任何控件尚未建立, 所以该事件代码不能处理表单控件 UnLoad 释放表单时触发,该事件发生在Destry事件之后 Click 在鼠标单击表单时触发 DblClick 在鼠标双击表单时触发 Destroy 当释放对象时触发 Error 当方法中有一个运行错误时触发 BeforeOpenTables 数据环境的表和视图打进之前触发 AfterCloseTables 数据环境的表和视图释放之后触发   3.表单的方法   方法 功能 Release 从内存中释放表单或表单集 Refresh 重新绘制表单或控件,并更新所有的值 Hide 设置Visible属性为.F.来隐藏表单(集),使表单(集)不可见,但未从内存中清除 Show 设置Visible属性为.T.来显示表单(集),使表单(集)变为活动对象。参数: 1-模式 2-无模式(默认) Move 移动一个对象 Draw 重新绘制表单对象 AddObject 在运行时给容器对象增加一个对象 SaveAs 将对象存入SCX文件中 Cls 清除一个表单中的图形和文本 Pset 给表单上的一个点设置指定的颜色 Line(起点x, 起点y,终点x, 终点y) 在指定位置绘制直线 Box([起点x, 起点y,]终点x, 终点y) 在指定位置画方框。其他参数由下列属性指定: 度量单位-ScaleMode 线宽-DrawWith 方式-DrawMode 风格-DrawStyle 填充颜色-FillColor 填充风格-FillStyle; 略起点,则以CurrentX,CurrentY作为起点。 Circle(半径,圆心[,纵横比]) 在表单上画一个圆或一段圆弧。其他参数同Box。 Print 在表单对
本文档为【Visual FoxPro简洁教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_710949
暂无简介~
格式:doc
大小:338KB
软件:Word
页数:49
分类:互联网
上传时间:2012-11-11
浏览量:24