当前位置:文档之家› vfp命令、语句等说明总结

vfp命令、语句等说明总结

vfp命令、语句等说明总结
vfp命令、语句等说明总结

VFP命令、函数及程序语句大全

VFP提供一些简单的程序设计语言命令,包括赋值语句、控制语句、设置命令等,我们可根据某种功能的需要,利用这些命令及数据库操作的有关命令构成语句,分行存在文件中(称为命令文件,以. PRG为扩展名,在项目管理器中标为“程序”)或一些对象的过程或事件处理程序中。如被调用,系统将一条条顺序执行各行命令,如遇到控制语句(IF,DO,CALL,FOR…等),依据控制语句的指定,转移到指定语句再一条条顺序执行。

这些命令书写时,每条语句应在一行中写完,如不能写完,可用分号“;”结束,表示下一行继续。两条语句不能写在一行上。每条语句中命令字及选项中保留字大多数可只书写前四个字符。

一般一个简单的VFP应用系统由若干模块组成,各自完成一定的功能,总的系统用一个总控模块去控制,通过它调用子模块,层层调用以实现全系统的功能。这种结构如图5.4所示。这种方式便于设计、调试,保证程序的正确性,也容易实现模块共亭,实现软件重用,提高程序设计效率。

主模块可由主封面表单、主命令文件和主菜单文件构成;各个模块可由过程、自定义函数、表单、表单集、应用程序或子菜单等构成。

一个表单或一个表单集中可有一到多个用户界面,可设置一到多个命令按钮及其他程序控件,用户可利用按钮及程序控件,产生特定的消息触发执行一个程序,完成一个功能。应用程序是对一个模块编译后的. APP执行文件,“过程”是由命令组成的程序,以RETURN 语句结束,它可为另一个程序所调用,调用执行时遇到RETURN语句将返回其调用程序。

图 5.4 VFP程序总体结构

一.变量赋值与显示语句

在项目管理器中选“代码→程序→新建”或在命令框利用命令MODIFY COMMAND 建立命令文件。

1.MODIFY COMMAND

意义:创建命令文件。

命令格式:MODIFY COMMAND 文件名

例如:MODIFY COMMAND PROC1

执行此命令后,将进入全屏幕编辑状态。如原已建立了该文件proc1,将调出该文件在屏幕上显示,用户可对之修改。如是新文件,则用户可利用全屏幕编辑键,输入自己的程序。新文件将自动加上扩展名.PRG。

2.DO

意义:执行命令文件程序,有三种方法:①在项目管理器中选“代码→程序→选择程序名→运行”。②在主菜单中选“程序→运行→输入(选择)程序名→运行”。

③在程序中或命令窗日中使用DO命令。命令格式:DO 程序名[WITH 表达式表]

程序名可以是上述方式建立的命令文件(.PRG文件)、可执行文件(.EXE文件)、应用程序(.APP文件),及对.PRG文件编译后的文件(.FXP文件)。如调用DO命令时不带扩展名,则按.EXE文件、.APP文件、.FXP文件、.PRG文件的顺序查找同名程序并执行之。

例如:DO PROC1

此外,程序名还可能是菜单程序,调用时必须带扩展名(.MPR)。例如,有菜单程序MAIN.MPR,则可如下调出执行:

DO MAIN.MPR

程序名还可以是事件名或过程名。

其中表达式表由多个表达式组成,用逗号分开,在执行时首先计算各表达式的值,并带入被调程序,被调程序第一句应是LPARAMETERS形参表语句,形参表是以逗号分隔的多个内存变量名,其个数应等于调用时的表达式的个数,执行时,首先用调用语句中各表达式的值对应给它们赋值。

例如:主程序中:DO PROC1 WITH “AB”,21

被调程序:LPARAMETERS M1,X0

执行时,首先完成赋值:M1=“AB”;X0=21,再往下执行。

当使用DO运行一个程序时,包含在其中的命令一直执行,直到下列某一事件发生。遇到RETURN语句,返回到调用程序DO命令的下一句,遇到了CANCEL命令,返回VFP命令状态。遇到QUIT命令退出程序并退出VFP;到达文件尾回到调用前状态;再遇到另一个DO命令,将转人新程序执行。

3.PUBLIC

意义:设置全局性内存变量命令。

格式:PUBLIC 变量名1[,变量名2]…

在不同程序或过程或事件中,同名内存变量的值不一定相同,如要将一个程序(过程、事件)中变量的值传到另一程序(过程、事件)中,可应用上述命令将它定义成全局变量。

4.PRIVATE

意义:设置局部变量的命令。

格式:PRIVATE[ALL[LIKE∣EXCEPT 通配符]∣内存变量表]

其中选项意义:ALL将所有内存变量说明为局部性变量,ALL[LIKE∣EXCEPT 通配符]将变量名能与通配符相匹配的内存变量说明为局部性变量。“ALL EXCEPT通配符”将除了能与通配符相匹配的变量名之外的内存变量说明为局部性变量。在程序中,为了一个程序的运行结果不影响另一个程序的执行,不希望同名变量将值从一个程序带到另一个程序而造成干扰。为此,可将该变量定义成局部性变量。

5.DIMENSION

意义:定义内存变量数组命令,VFP中可定义一维或二维数组。

格式:DIMENSION 数组名(数字表达式1[,数字表达式2])[,数组名2(数字表达式1[,数字表达式2])]…

每个数组的每个元素都可单独使用,如同一个内存变量,称为下标变量,下标起始值为1。

例如,DIMENSION ARRAY1(8,20),X1(30)定义了两个数组,数组名分别为ARRAY1和X1,前一个数组共有20×8=160个元素:ARRAY1(l,l)、ARRAY1(l,2)…… ARRAY1(l,20),ARRAY1(2,1)…ARRAY1(8,20)。对各元素也可用单下标取用其值,如用ARRAY1(l),ARRAY1(2)…ARRAY1(160)也可访问该数

组各元素,与前面双下标表示形式一一对应。

6.PUBLIC ARRAY

意义:定义全局性内存变量数组。

格式:PUBLIC ARRAY 数组名(数字表达式1[,数字表达式2])[,数组名2(数字表达式1[,数字表达式2])]…

7.=

意义:赋值语句。

将表达式的值赋值给一个内存变量。对变量赋值后,该变量类型也即确定为表达式返回值的类型。对一个变量可重复赋值,也可改变变量的类型。但为了保证程序的清晰和结构完整,建议在一个系统中每个变量名应有确定的意义和数据类型。

8.STORE

意义:同时对多个变量赋值命令。

格式:STORE 表达式 TO变量1[,变量2]…

在程序运行时常要求用户输入控制参数或数据,实现此功能语句我们称为人机对话语句。在程序中如插入人机对话语句,用户可借助键盘输入参数或控制量赋值给变量。控制程序走向,或用于不同数据处理。在程序执行到这类语句时,将停止运行,在屏幕上显示命令中附注的提示信息,同时等待用户从键盘输入数据,赋给所指定的变量。完成赋值之后再接着运行下一条语句。在VFP中这类语句可在主控程序中或在调试程序时使用,在表单程序中使用文本框等各种控件及消息框代替它们。

9.INPUT

意义:输入各种类型数据赋给内存变量

格式:INPUT “提示信息” TO 内存变量名

本命令允许输入字符类型、数值类型、日期类型、逻辑类型等不同类型的数据,要求输入数据是字符类型时,数据两端要加定界符,例“张平”;输入数据是日期类型时,要按{MM/DD/YY}或设定的格式,例{12/21/00};逻辑类型按.T.、.F.格式。

用户输入还可以是包括变量名及函数在内的表达式,但变量必须是己赋值的,表达式是可以计算出确定值的。用户输入完后回车表示输入结束。

例:INPUT“请输入初始日期:” TO D1

屏幕上显示:“请输入初始日期:”,光标在此句之后。用户可输入{05/10/96}。

此时用户如果执行命令:?D1

屏幕上将显示:05/10/96

10.ACCEPT

意义:输入字符串赋给变量。

格式:ACCEPT[“提示内容”]TO内存变量名

该命令和INPUT命令区别有两点:

.输入数据均被视为字符类型。

.输入数据两端不需加定界符,如加了定界符,定界符被视作字符串的一部分。

11.WAIT

意义:接收单个字符赋给变量,或中断程序,按任意键后继续。

格式:WAIT [“提示信息”] TO 内存变量名

该命令与ACCEPT命令不同点在于只接收从键盘输入的一个字符,用户输入一个

字符后无须回车。该命令也可用在VFP表单程序的某个事件中,用于中断该事件的执行,让屏幕显示程序运行的中间结果,按某个键或单击鼠标后再继续执行。

12.GET

意义:格式化输入数据,给内存变量赋值或修改表中当前记录字段内容。

格式:@行号,列号 GET 内存变量名或字段名

[FUNCTION功能代码][PICTURE格式代码][DEFAULT表达式][MESSAGE

提示信息]

[RANGE输入值范围下限,输入值范围上限][SIZE文本框高度,文本框宽度][VALID 条件表达式]

该命令可用于对内存变量赋值,也可用于修改当前打开表中当前记录中指定字段的内容。如对内存变量赋值且省略DEFAULT选项,在使用此语句时,必须已对该内存变量赋值。否则按此选项中表达式对内存变量初始化。

本命令执行后只显示内存变量或字段当前值,要到执行命令“READ”时,此语句方被激活,程序停止执行,等待用户从键盘输入数据,直待回车后才继续执行。行号、列号为当前窗口中字符行和列的位置号。行号与列号允许是小数。FUNCTION选项用于对输入内容限制或变化。功能代码:

A:只允许输入内容由字母字符组成,包括不允许空格和标点符号。

B:数值数据左对齐,默认格式为右对齐。

I:文本居中对齐。

J:文本右对齐,默认为左对齐。

Sn:限定文本框中字符个数为n。如S20。

T:去掉前导和后缀空格。

Z:当数值数据值为0时显示空格。

!:把字母字符转换为大写。

PICTURE选项用于限定输入数据的字符类型及大小。功能代码例:

A:该位为字母或数字

L:只允许逻辑数据。

N:该位为字符或数字。

X:任何字符。

I:该位为数字,或数值数据中的符号。

-:标明小数点位置。

,:用逗号分隔左右数字。

!:将小写字母转换为大写字符。

例:@3,10 GET x1 DEFAULT 0 PICTURE“9999.99”

此时在屏幕第3行的第10列位置显示方框,其中内容为DEFAULT规定的初始值0.00,如再发出命令:READ,将光标落在尚未激活的第一个方框上等待输入,只能输入数字和符号,且整数部分不多于4位,小数部分不多于2位,否则将提示“请您重新输入”。

RANGE、VALID两个选项用于保证数据完整性,输入数据必须在预定范围内,满足条件表达式要求时,才可完成赋值操作。本语句还有设置字体、字形和颜色的选项。

在VFP中,综合上述人机交互命令尤其是@… GET命令的功能和特性,设计了文本框、编辑框等类和控件,便之应用更加方便、简单,我们将在下一章中介绍。

程序运行结果一般由输出语句使其显示在屏幕上或输出到其他地方,输出语句

可将数据输出到屏幕上显示也可传送给打印机或传送存入到其他文件中。屏幕显示语句在VFP中一般用在主控程序或调试程序时使用。在表单程序中使用各种控件、消息框代替它们。

13.?|??

意义:计算<表达式表>所指定的各表达式的值,并显示在屏幕上。

格式:?表达式1[,表达式2]…

用?时,从下一行第一列起显示结果。用??时,从当前行当前列起显示结果。

14.SAY

意义:格式化输出语句。

格式:@行号,列号 SAY表达式[FUNCTION功能代码] [PICTURE格式代码][SIZE 高度,宽度]

有关选项的意义与@…GET命令相似,此外还有关于字体,颜色设置的选项。若发出有SET DEVICE TO PRINTER命令,输出到打印机,否则输出至屏幕上显示。

本语句常与@… GET语句合用,合用时,行号、列号指SAY内容显示所在行、列号,GET变量内容框将放置在SAY内容之后。

二.程序控制命令

1.IF…ENDIF命令

意义:分支条件语句,根据逻辑表达式的值,有选择的执行一组命令。根据条件表达式的值是.T.还是.F.控制程序流向。

格式:

IF 条件表达式

语句序列1

[ELSE

语句序列2]

ENDIF

IF条件表达式语句是条件语句的开始, ENDIF语句是条件语句的终止。语句序列是若干条顺序执行的语句。执行时首先计算条件表达式的值,如结果为“真”(.T.)则执行语句序列l,执行完后退出该语句。如条件表达式不满足,且有ELSE语句和语句序列2,则执行语句序列2。其程序流程图如图5.5所示。

图5.5 分支结构程序流程图

图5.6 主控模块程序流程图

在一个分支控制语句块中可以嵌套另一个IF…ENDIF语句块。【例5.7】主控模块的程序

程序流程图如图5.6所示。编写程序清单如下:

CLEAR &&清屏幕

@ 5,27 SAY “设备管理系统”

@ 7,36 SAY “主菜单”

@10,21 PROMPT “1.各种查询、屏幕修改”+SPAC(16)

@11,21 PROMPT “2.数据编辑”+SPAC(26)

@12,21 PROMPT “3.资产统计”+SPAC(26)

@13,21 PROMPT “4.报表打印”+SPAC(26)

@14,21 PROMPT “5.系统维护”+SPAC(26)

MENU TO m_choic &&等待用户输入

IF LASTKEY()=27 &&按Esc键返回VFP

RETURN

ENDIF

IF m_choic=1

DO sbcx_sc.spr

ELSE

IF m_choic=2

DO sjbj_sc.spr

ELSE

IF m_choic=3

DO zctj_sc.spr

ELSE

IF m_choic=4

DO bbdy_sc.spr

ELSE

IF m_choic=5

DO xtwh_pg

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

RETURN

2.CASE

意义:分情况语句,当求解一个问题存在多种情况,如要求对不同选择执行不同的语句序列,可采用分情况语句。该语句一句中列出许多语句成分,每个语句成分给出一个条件表达式,每次只根据具体条件找出第一个条件表达式值为.T.的语句成分,执行该成分语句中的语句序列后退出该语句。

命令格式:

DO CASE

CASE条件表达式1

语句序列1

CASE条件表达式2

语句序列2

CASE条件表达式n

语句序列n

[OTHERWISE

语句序列n+1]

END CASE

执行该语句时,系统逐一计算条件表达式1的值,条件表达式2的值…只要有一个条件表达式的值为.T.则执行其后语句序列,执行它后退出本分情况语句。

如到条件表达式n的值仍均为.F.又有OTHERWISE成分,则执行语句序列n+l,其程序流程图如图5.7所示。

仍如上面主控程序的例子,程序可设计为:

CLEAR &&清屏幕

@ 5,27 SAY “设备管理系统”

@ 7,36 SAY “主菜单”

@10,21 PROMPT “1.各种查询、屏幕修改”+SPAC(16)

@11,21 PROMPT “2.数据编辑”+SPAC(26)

@12,21 PROMPT “3.资产统计”+SPAC(26)

@13,21 PROMPT “4.明细报表打印”+SPAC(22)

@14,21 PROMPT “5.系统维护”+SPAC(26)

MENU TO m_choic &&等待用户输入

IF LASTKEY()=27 &&按Esc键返回VFP

RETURN

ENDIF

DO CASE

CASE m_choic=1

DO sbcx_sc.spr

CASE m_choic=2

DO sjbj_sc.spr

CASE m_choic=3

DO zctj_sc.spr

CASE m_choic=4

DO bbdy_sc.spr

CASE m_choic=5

DO xtwh_pg

ENDCASE

RETURN

图5.7 CASE结构程序流程图

从上面两段程序可见,对于同一个问题,用DO CASE …ENDCASE 语句比IF…ENDIF语句要简洁了并且逻辑关系清晰,因此不容易出错。在分情况语句中也可嵌入分支条件语句及分情况。它本身也可嵌入到分支条件语句中去使用。

在对数据表中数据时,常常每条记录被处理的过程是一样的,处理语句也就大体相同,如果表中有多少记录就写多少条语句是十分困难的,为避免重复书写,可使用循环。

3.DO WHILE….ENDDO

意义:循环语句,可使多次重复执行同一组语句。

格式:

DO WHILE条件表达式

语句序列

[LOOP]

[EXIT]

ENDDO

其中“DO WHILE条件表达式”语句称为循环起始语句,“ENDDO”语句称为循环结束语句,进入此命令时首先检查条件表达式的值是否为真(.T.)。如果是真,则执行语句序列,然后再判断条件表达式的结果,如仍为真,则继续下去。如果为假(.F.)则退出循环,执行ENDDO后面的语句。如果进入本命令一开始,条件表达式的值为假,则语句序列一次也不执行,就直接转入执行ENDDO后面的语句。其中LOOP意义为结束本次循环,返回循环体开始。EXIT意义为结束循环,转入执行ENDDO 后面的语句。

LOOP语句和EXIT语句一般用在分支条件语句中,因而语句格式为:

DO WHILE 条件表达式1

语句序列1

[IF条件表达式2

LOOP

ELSE

语句序列2

ENDIF]

[IF条件表达式3

EXIT

ELSE

语句序列3

ENDIF]

ENDDO

其程序流程图如图5.8所示。

在使用时必须保证经有限次循环后条件表达式1应变为假或条件表达式3的值应变为真,使退出循环。否则就可能成为死循环。在条件表达式中的变量称循环变量,在数据库中循环变量可能是内存变量,也可能是表中的指针。必须注意在每次循环过后,循环变量的值都要改变并且是向最终使条件表达式1的值为假或条件表达式3的值变真的方向变化,否则就无法满足前述退出条件。在VFP中有两类特殊用法。

(1)循环变量是指针。该用法中有两种结构①指针首先指向第一条的DO WHILE 结构如图5.9所示。②指向满足条件记录的第一条的DO WHILE结构如图5.10所示。

图5.8 DO WHILE…ENDDO结构程序流程图

图5.9 指针做循环变量开始指向第一条时的DO WHILE结构流程图

图5.10 指针做循环变量开始指向满足条件记录的第一条时

的DO WHILE结构流程图

格式1:图5.9实现的语句。

USE(表名)

SELECT工作区别名

GO TOP

DO WHILE NOT EOF()

语句序列

SKIP

ENDDO

在本格式中,循环变量是表中指针,首先让指针指向表的第一条记录,如果不是文件尾,则执行语句序列之后让指针下移一条,再返回判断指针是否指向文件尾。这样一直继续下去直到指针指到最后一条记录的后面,循环结束。

【例5.8】在学生表中有少数学生更换了班级,现要求在屏幕上一屏一屏地显示每个学生的数据,并提问是否修改班级名称,如回答“Y”,则提供修改框。

SET TALK OFF

USE学生

KEY=“Y”

GO TOP

DO WHILE NOT EOF()

@3,10 SAY“姓名:”+姓名

@5,10 SAY“班级:”+班级

@7,10 SAY“出生日期:”+DTOC(出生日期)

@9,10 SAY“是否修改,Y/N?’GET KEY

READ

IF UPPER(KEY)=“Y”

@11,10 SAY“请输入改后班级名称” GET 班级

READ

SKIP

ENDDO

USE

SET TALK ON

格式2:如果只按某个条件查看记录,则可用查找语句开始。图5.10实现语句:

LOCATE FOR条件表达式

DO WHILE NOT EOF()

语句序列

CONTINUE

ENDDO

例5.8中如只查99级学生,显示其姓名则:

LOCATE FOR “99”$班级

DO WHILE NOT EOF()

?姓名

CONTINUE

ENDDO

(2)当于DO UNTIL的循环结构。

有些循环要在执行部分语句之后再根据一个条件表达式判断是否结束,此时循环条件可用常量.T.,见图5.11所示。

图5.11 DO UNTIL结构程序流程图

语句格式:

DO WHILE .T.

语句序列

IF 条件表达式

EXIT

ENDIF

【例5.9】求编写学生表录入新数据的程序,每次录入一条记录,之后提问是否继续,如回答不是“Y”,就停止录入。

SET TALK OFF

USE 学生

KEY=“”

DO WHILE .T.

APPEND BLANK

@3,10 SAY“姓名:” GET 姓名

@5,10 SAY“班级:” GET 班级

@7,10 SAY“出生日期:”GET 出生日期

READ

@9,10 SAY“否继续?Y/N?” GET KEY

READ

IF UPPER(KEY)<>“Y”

EXIT

ENDIF

ENDDO

USE

SET TALK ON

此语句由用户输入Y或N控制程序结束。

上述第一、二两种格式可以用等价的SCAN循环取代。

4.SCAN…ENDSCAN循环语句

意义:在数据表中循环检查或处理一条条记录。

命令格式一:

SCAN

语句序列

ENDSCAN

此句等价于前述格式1的语句。

命令格式二:

SCAN FOR条件表达式

语句序列

ENDSCAN

本语序等价于前述格式2的语句。有一些循环次数是一定的,或者循环变量的值在每次循环中增加的量是相同的,则可应用FOR循环。

5.FOR…ENDFOR循环语句

命令格式:

FOR内存变量=初始值 TO 终了值[STEP 增量]

语句序列

ENDFOR

此循环以某个内存变量为循环变量,进入循环时首先给它赋初始数值,只要不超过终了值,则执行语句序列。STEP语句为可选项,指示在每次循环后循环变量的增加量。前面执行语句序列之后,将循环变量值增加增量的值,再判断是否超过

终了值,这样继续下去直到超过终了值。增量可为正值也可为负值,省略时默认值是1。如增量为正,则当循环变量大于终了值时,循环结柬。如增量为负,则每循环一次,循环变量均减小,减少到小于终了值时循环结束。

例5.8中修改班级名的程序也可写为:

SET TALK OFF

USE 学生

KEY=“”

N=RECCOUNT()&&记录总条数

FOR I=1 TO N

@3,10 SAY“姓名:”十姓名

@5,10 SAY“班级:”十班级

@7,10 SAY“出生日期:”+DTOC(出生日期)

@9、10 SAY“是否修改班级名,Y/N?” GET KEY

READ

IF UPPER(KEY)=“Y”

@11,10 SAY“请输入改后班级名称” GET 班级

READ

ENDIF

ENDFOR

USE

SET TALK ON

使用相对指针,如果打开索引,或某些录入、修改、查询操作使当前指针位置改变都可能引起错误。不如本例中采用物理地址,比较可靠。

【例5.10】要求输入N个学生的总分X,按总分分成优、良、及格、不及格四个等级,统计每个等级的人数。等级划分标准为:90-100分为优,75-89分为良,60-74分为及格,59分及以下为不及格。

SET TALK OFF

DIMENSION M(4)&&定义数组

STORE 0 TO M&&M所有元素初值设为0

x=0

INPUT“学生人数 N=?” TO N&&计数循环

FOR I=1 TO N

?“请输入第”,I,“人的成绩”

@ROW(),20 SAY “X=?” GET X

READ

DO CASE

CASE x>=90

M(l)=M(1)+1&&统计优秀生人数

CASE x>=75

M(2)=M(2)+1

CASE x>=60

M(3)=M(3)+l

CASE x<60 AND x>=0

M(4)=M(4)+1

OTHERWISE

?“输入数据有错,请重输”

I=I-1

ENDCASE

ENDFOR

?“优、良、及格、不及格人数各为”,M(1),M(2),M(3),M(4)SET TALK ON

【例5.11】设有商品表,结构为商品(商品代码,品名,单价,数量,金额),欲对其中部分商品调动单价,为此建立一个调价表,其结构为调价(商品代码,原单价,新单价),编写程序用调价表中新单价数据修改商品表中单价与金额。

SET TALK OFF

SELE 1

USE商品

SELE 2

USE 调价

SCAN

代码1=商品代码

SELE 1

LOCATE FOR商品代码=代码1

IF NOT EOF()

REPL 单价 WITH 调价.新单价、金额 WITH 单价*数量

ENDIF

SELE 2

ENDSCAN

CLOSE ALL

SET TALK ON

本例中设置二个工作区,分别打开二个表,首先在工作区2上利用SCAN循环遍历调价所有记录,对每一记录在商品表中查找有无商品代码标识相同的记录,如有,则用新单价更新原单价,并修改金额。由于在非当前工作区中不能移动指针,不能查询,不能修改数据,因而在转到商品表中查询之前要将商品表所在工作区1设为当前工作区,更新以后又转到工作区2将调价表中指针指向下一条,再准备按第二个品种调价。

在当前工作区中可读取非当前工作区中数据,如本例中用“调价.单价”这样的格式从工作区2的调价表中读取其中指针所指记录的单价,这种方式称为联访。如此对多个数据表操作十分麻烦,可采用预先建立关联的办法,在一个表中移动指针时,第二个表中指针按关键字保持一致的方式跟着移动。

三.其他常用命令

1.SET RELATION

意义:将当前数据库和“别名”工作区中的表文件关联在一起,当前表文件称为主动表文件,“别名”工作区中的表文件称为被关联表文件,每当主动表文件中指针移动时,被关联表文件中指针也相应移动。

命令格式:SET RELATION TO 字段名 INTO 别名[ADDITIVE]

命令中选用的“字段名”必须同时包含在两个表文件中,且被关联表必须以该

字段建立索引文件并打开为主索引文件。每当主动表文件中记录指针移动时,被关联表中记录指针根据主索引文件指引指向与之相匹配(索引字段值等于主动表当前记录该字段的值)的第一条记录。若找不到匹配记录,则指针将指向文件尾,EOF ()为真(.T.)

如命令无ADDITIVE选项,在建立关联时将取消当前数据库与其他数据库的任何关联,仅保留一个新关联。而选了此选项,则原有关联均保留,增加一个新关联。

要注意的是,如果对应主动表中某记录在被关联表中找不到匹配记录时,主动表中数据被改为0。例5.11中如果调价表中商品包括商品表中全部商品,利用此命令程序可修改为:

USE 调价&&第一个打开表默认置于1号工作区

INDEX ON 商品代码 TO INDEX1

SELECT 2

USE 商品

SET RELATION TO 商品代码 INTO 调价

SCAN

REPLACE 单价 WITH 调价.新单价,金额 WITH 单价*数量

ENDSCAN

本例中关于被关联表中字段名也可用“区号.字段名”形式对之访问。

不过使用本程序要求两表中内容必须匹配,例如例5.11中如商品只有部分调价,在调价表中只有商品表中部分商品,那么该程序将使商品表中不调价商品单价均变为0。

一般在涉及利用一个表数据修改另一个表数据时,我们以采用SQL语言中修改命令UPDATE比较好。也可采用全联结视图再对之操作。”

2.RUN

意义:在VFP环境中调用DOS命令。·

命令格式:RUN DOS命令或!DOS命令

3.LOAD命令

意义:把汇编或C语言编写并编译的二进制文件调入内存命令。

命令格式:LOAD 二进制文件名

4.CALL命令

意义:执行由LOAD装入内存的二进制代码文件命令。

命令格式:CALL 文件名[WITH 字符表达式/内存变量]

其中WITH选项用于向调用程序传递参数。

5.ON ERROR

意义:当出现错误时执行的命令。

命令格式:ON ERROR 命令

其中命令可为任何VFP语句。在程序调试过程中,可在程序中加入此命令,并设计命令处理程序,在其中可加入显示ERROR(),MESSAGE(),LINENO()和PROGRAM ()的语句,将错误代码、错误消息、错误行号及程序名称显示出来,以帮助发现错误所在,方便纠正错误。在应用程序中,有时可能出现一些不影响最终结果的错误,我们也可在程序中加入这类错误陷阱,所指定的命令可以是一条无效语句,不让错误影响程序运行。

【例5.12】程序出错时的处理程序及调用方法

主程序:

*---Set system enviroment------

clos data

clea

on erro do showerro with prog(),lineno(),erro(),mess()&&调用出错程序showerro

语句序列

程序出错时的处理程序:

para m_prog,m_line,m_num,m_mess&&传递参数

priv m_odcons&&定义局部变量

m_odcons=set('cons')

set cons off

defi wind erro_win from 0,0 to 14,49 ;

titl ' 系统错误 ';

colo gr+/b;

shad doub;

in desktop

move wind erro_win cent

acti wind erro_win

@1,4 say '错误警告' colo gr+/b

@3,8 say '当前程序无法继续,按<确定>将返回主调!' colo w+/b

@4,4 say '程序建议:稍后再试或与软件供应商联系.' colo w+/b

@6,4 say '出错程序:'+m_prog colo w+/b

@7,4 say '出错行:'+allt(str(m_line)) colo w+/b

@8,4 say '错误代码:'+allt(str(m_num)) colo w+/b

@9,4 say '错误内

容:'+iif(len(m_mess)<=28,m_mess,subs(m_mess,1,28)+'...') colo w+/b @2,3 to 2,wcol()-4 colo w/b

@5,3 to 10,wcol()-4 colo w/b

=opendbf('errosave','errosave','shar')&&存放错误情况

inse into ;

dbf\errosave

(errodate,errotime,erroprog,erroline,errocode,erromess);

valu (date(),time(),m_prog,m_line,m_num,m_mess)

use in errosave

m_readkey=20

m_cnt=1

do while m_readkey=20

if mod(m_cnt,2)=0

@1,6 say ' 错误警告' colo b/b

else

@1,6 say ' 错误警告' colo gr+/b

endi

@wrow()-2,wcol()/2-2 get mb_isee func '*th 确定' defa 1 &&colo

sche 13

read cycl modal time 0.4

m_readkey=readkey()

m_cnt=m_cnt+1

endd

set cons &m_odcons

clea wind

close data

clea

retu to master&&返回主程序

6.显示文件目录命令

格式:DIR [<驱动器>][<路径>][<文件名>]

功能:显示指定的磁盘驱动器上的文件名

说明:<文件名>中可带通配符;命令中不指定文件名,则仅仅显示指定目录下的数据表文件名。

7.清屏命令CLEAR

格式:CLEAR

功能:清除屏幕

8.总清命令CLEAR ALL

格式:CLEAR ALL

功能:关闭所有打开的数据表文件、索引文件和其他各种文件,清除已有的内存变量

9.SET TALK ON/OFF

四.程序设计基础

程序的概念

命令执行方式:通过命令菜单或直接在命令窗口输命令来执行,执行的结果显示在屏幕上。程序执行方式:以程序的方式来执行。

程序是能够完成一定任务的命令的有序集合,这组命令存放在程序文件(*.prg)中,执行程序时,系统按一定的次序自动执行包含在程序文件中的命令。

程序的特点

可以利用编辑器,方便地输入、修改和保存程序。

可以利用多种方式、多次运行程序。

可以在一个程序中调用另一个程序。

程序的基本要求

正确性,能实现算法的各个步骤,逻辑上正确,对输入产生的错误有检测措施。

通用性,不能只解决一个问题,还考虑解决一类问题。

高效率性,编写执行时间短,占用存储空间少的程序。

可维护性,程序应易读、易懂、易修改。

安全性,必须确保安全、可靠。

程序文件的建立

在项目管理器中和菜单中建立

用命令方式:modify command <文件名>

程序的执行

从“ 程序” 菜单中选择“ 运行”

命令方式:do < 文件名>

<文件名>中如果没有指定扩展名,系统将按下列顺序寻找程序文件并执行:

.exe-->.app( 应用程序)-->.fxp( 编译程序)-->.prg

当程序文件被执行时,文件中包含的命令将被依次执行,直到所有的命令被执行完毕中,或者执行到以下命令:

cancel ( 终止程序执行,返回命令窗口)

do( 转去执行另一个程序)

return( 结束当前程序,返回到上级程序,若无上级程序则返回到命令窗口)

quit( 退出VFP 系统,返回到操作系统)

程序结构

(1)每个程序都必须有1个文件名,文件名由字符、数字或下划线组成,第一个字符必须是字母或汉字,程序扩展名为.PRG

(2)程序由若干行数据库命令组成,每行最多写2048个字符,1行只能写1条命令,若把一个命令写成若干行,需在该命令的第1行及中间各行的行尾写“;”号,但最后一行不写。

(3)注释行由“*”开头,用以说明程序的名称、功能及其他需要说明的问题,“*”是注释命令,是非执行语句,可以写在程序任一位置。

(4)以“set”开头的命令为环境设置命令,一般出现在可执行语句的前面。

(5)每行程序的后部可以写由“&&”号引导的注释。

(6)“return”命令是返回命令,表示程序结束。

编写程序的步骤

举例:编写一个简单的程序:给出一个整数,判断是奇数还是偶数。

(1)分析任务,确定方法;

(2)分解任务,描述算法;

(3)编写程序,认真检查;

(4)上机调试,纠正错误

流程图

流程图符号的使用规则:

流程线的方向是从左到右,自上而下,非标准流向的流程线要用箭头表示。

流程线就尽量避免交叉。

流程图符号内的文字一律从左到右,自上而下书写。

流程图符号的注释应写在符号右侧。

出入口处的连接符应使用相同名称,表示把它们连接起来。

子程序、过程和自定义函数

模块化:按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块的过程。

模块:一个在结构上相对独立的程序段。可以是子程序、过程或自定义函数。

子程序的基本概念

子程序:总被其它程序调用的,一般不单独运行的一个程序段。

子程序与主程序的关系:是一种调用和被调用的关系。主程序是能调用其他子程序,而不被其他程序调用的程序,凡能被调用的程序都称为子程序。程序中至少应有一个主程序,可以有一个或若干个子程序。

子程序的使用

①使用模块化程序设计方法编写程序时,把各个功能划分成若干个功能子模块,把子模块写成一个子程序。

②需要反复调用的情况下,可以写成一个子程序,以节省存储空间。

编写子程序

调用子程序命令格式:

do <子程序名>[ WITH<参数表>]

子程序返回命令

return [ to master ]

表示返回到上一级子程序或主程序。带参数to master表示无论在哪级子程序上,均立即返回主程序。

例1、对任意给的正整数A、B、C,编写程序计算S=A!+(3/5)B!+(C!/2)

调试子程序

联合调试:当主程序和子程序分别编辑完成之后,直接运行主程序。若主程序或子程序有错,再进行编辑、调试、重新运行,直到输出正确结果为止。

Suse_Linux常用命令小结

1、Suse9下配置默认网关 a、在/etc/sysconfig/network/routes文件下添加如下行: default 网关IP地址 - - b、重启网络服务 # /etc/init.d/xinetd restart # rcnetwork restart c、查看路由 # netstat -r 2、Suse9下开启telnet服务 a、修改/etc/xinetd.d/telnet文件:disnable=no 如果/etc/xinetd.d下不存在telnet文件,可能是telnet服务包没有安装,需要通过光盘安装好。 b、修改/etc/pam.d/login文件,注释如下行,允许root用户telnet "auth required pam_securetty.so" c、编辑/etc/securetty文件 # vi /etc/securetty 在文件中增加下面的内容: pts/0 pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9

d、重启网络服务 # /etc/init.d/xinetd restart # rcnetwork restart 3、Suse9下开启FTP服务 a、修改/etc/xinetd.d/vsftpd文件:disnable=no b、修改/etc/vsftpd.conf文件,取消如下行的注释: write_enable=YES local_enable=YES local_umask=022 ascii_upload_enable=YES ascii_download_enable=YES c、修改/etc/ftpusers,注释掉允许ftp的用户,如root d、重启网络服务 # /etc/init.d/xinetd restart 4、Suse9下配置rlogin a、配置用户$HOME目录下的.rhosts文件 # vi .rhosts 主机名1 用户名 主机名2 用户名 b、修改/etc/xinetd.d/rlogin文件:disnable=no c、修改/etc/pam.d/rlogin文件,注释如下行,允许root用户rlogin "auth required pam_securetty.so" d、重启网络服务 # /etc/init.d/xinetd restart 5、查看版本、内核 # cat /etc/issue Welcome to SUSE LINUX Enterprise Server 9 (i586) - Kernel \r (\l).

excel表单控件与ActiveX控件概念

工作表中的表单、表单控件和ActiveX 控件概念 是的,确实如此。在Microsoft Excel 中,使用少量或者无需 使用Microsoft Visual Basic for Applications (VBA) 代码即可 创建出色的表单。使用表单以及可以向其中添加的许多控件和 对象,您可以显著地增强工作表中的数据项并改善工作表的显 示方式。 ? ? 什么是表单? 无论是打印表单还是联机表单都是一种具有标准结构和格式的文档,这种文档可让用户更轻松地捕获、组织和编辑信息。 ?打印表单含有说明、格式、标签以及用于写入或键入数据的空格。您可以使用Excel 和Excel 模板创建打印表单。 ?联机表单包含与打印表单相同的功能。此外,联机表单还包含控件。控件是用于显示数据或者更便于用户输入或编辑数据、执行操作或进行选择的对象。通常,控件可使表单更便于使用。例如,列表框、选项按钮和命令按钮都是常用控件。通过运行(VBA) 代码,控件还可以运行指定的和响应事件,如鼠标点击。 您可以使用Excel 通过多种方式创建打印表单和联机表单。 Excel 表单的类型 您可以在Excel 中创建多种类型的表单:数据表单、含有表单和ActiveX 控件的工作表以及VBA 用户表单。可以单独使用每种类型的表单,也可以通过不同方式将它们结合在一起来创建适合您的解决方案。 数据表单

为在无需水平滚动的情况下在单元格区域或表格中输入或显示一整行信息提供了一种便捷方式。您可能会发现,当数据的列数超过可以在屏幕上查看的数据列数时,使用数据表单可以使数据输入变得更容易,而无需在列之间进行移动。如果以标签的形式将列标题列出的文本框这一简单表单足以满足您的需求,而且您不需要使用复杂的或自定义的表单功能(例如列表框或调节钮),则可以使用数据表单。 Excel 可以为您的或自动生成内 置数据表单。数据表单会在一个对 话框中将所有列标题都显示为标 签。每个标签旁边都有一个空白文 本框,您可以在其中输入每一列的 数据,最多可以输入32 列数据。 在数据表单中,您可以输入新行, 通过导航查找行,或者(基于单元 格内容)更新行及删除行。如果某 个单元格包含,则公式结果会显示 在数据表单中,但您不能使用数据 表单更改该公式。 含有表单和ActiveX 控件的工作表 工作表是一种类型的表单,可让您在网格中输入数据和查看数据,Excel 工作表中已经内置了多种类似控件的功能,如注释和数据验证。单元格类似于文本框,因为您可以在单元格中输入内容以及通过多种方式设置单元格的格式。单元格通常用作标签,通过调整单元格高度和宽度以及合并单元格,您可以将工作表用作简单的数据输入表单。其他类似控件的功能(如单元格注释、超链接、背景图像、数据验证、条件格式、嵌入图表和自动筛选)可使工作表充当高级表单。 为增加灵活性,您可以向工作表的“”添加控件和其他绘图对象,并将它们与工作表单元格相结合和配合。例如,您可以使用列表框控件方便用户从项目列表中选择项目。还可以使用调节钮控件方便用户输入数字。 因为控件和对象存储在绘图画布中,所以您可以显示或查看不受行和列边界限制的关联文本旁边的控件和对象,而无需更改工作表中数据网格或表的布局。在大多数情况下,还可以将其中许多控件链接到工作表中的单元格,而无需使用VBA 代码即可使它们正常工作。您可以设置相关属性来确定控件是自由浮动还是与单元格一起移动和改变大小。例如,在对区域进行排序时,您可能有一个希望与基础单元格一起移动的复选框。不过,如果您有一个希望一直保持在特定位置的列表框,则您可能希望它不与其基础单元格一起移动。 Excel 有两种类型的控件:表单控件和ActiveX 控件。除这两个控件集之外,您还可以通过绘图工具(如、、SmartArt 图形或文本框)添加对象。 以下部分介绍这些控件和绘图对象,此外,还更为详细地介绍如何使用这些控件和对象。

VFP中常用命令集

VFP中常用命令集 一、主要命令: 1、CREATE 作用:建立一个新的表。 格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。) 说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出 对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用 户输入想要建立的表名。 2、MODIFY STRUCTURE 作用:显示表文件结构,并允许修改此表的结构。 格式:MODIFY STRUCTURE 说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。3、APPEND 作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。 格式:APPEND [BLANK] 说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。 4、INSERT 作用:在表文件中间插入一个新记录。 格式:INSERT [BEFORE] [BLANK] 说明:INSERT 在当前记录后插入一记录; INSERT BEFORE 在当前记录前插入一记录; INSERT BEFORE BLANK 在当前记录前插入一空记录。 5、BROWSE 作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。 格式:BROWSE 6、USE 作用:打开和关闭表文件。 格式:USE [<文件名>]

VFP常用函数大全

VFP常用函数大全 一.字符及字符串处理函数: 字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型各异. 1.取子串函数: 格式:substr(c,n1,n2) 功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符型. 例:取姓名字符串中的姓. store "王小风" to xm ?substr(xm,1,2) 结果为:王 2.删除空格函数:以下3个函数可以删除字符串中的多余空格,3个函数的返回值均为字符型. trim(字符串):删除字符串的尾部空格alltrim(字符串):删除字符串的前后空格 ltrim(字符串):删除字符串的前面的空格例:去掉第一个字符串的尾空格后与第二个字符串连接 store "abcd " to x store "efg" to y ?trim(x)+y abcdefg 3.空格函数: 格式:space(n) 说明:该函数的功能是产生指定个数的空格字符串(n用于指定空格个数). 例:定义一个变量dh,其初值为8个空格store space(8) to dh 4.取左子串函数: 格式:left(c,n) 功能:取字符串C左边n个字符. 5.取右子串函数: 格式:right(c,n) 功能:取字符串c右边的n个字符例:a="我是中国人" ?right(a,4) 国人?left(a,2) 我 6.empty(c):用于测试字符串C是否为空格. 7.求子串位置函数: 格式:At(字符串1,字符串2) 功能:返回字符串1在字符串2的位置 例:?At("教授","副教授") 2 8.大小写转换函数: 格式: lower(字符串) upper(字符串) 功能:lower()将字符串中的字母一律变小写;upper()将字符串中的字母一律变大写例: bl="FoxBASE" ?lower(bl)+space(2)+upper(bl) foxbase FOXBASE 9.求字符串长度函数: 格式:len(字符串) 功能:求指定字符串的长度 例:a="中国人" ?len(a) 6 二.数学运算函数: 1.取整函数: 格式:int(数值) 功能:取指定数值的整数部分. 例:取整并显示结果?int(25.69) 25 2.四舍五入函数: 格式:round(数值表达式,小数位数) 功能:根据给出的四舍五入小数位数,对数值表达式的计算结果做四舍五入处理 例:对下面给出的数四舍五入并显示其结果 ?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3

个人总结的mysql常用命令大全

第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下:mysql -u用户名-p用户密码 键入命令mysql -uroot -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql 的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 第四招:操作数据库 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。 1、显示数据库列表。 show databases; 缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。 2、显示库中的数据表: use mysql;

vf表单控件的使用说明

一、标签 标签能够显示多个字符构成的文本,用于设计表单上所需的文字性提示信息。标签和大多数控件的不同点在于运行表单时不能用《tab》键来选择标签。 常用的标签属性及其作用如下。 1、Caption:确定标签处显示的文本。 2、Visible:设置标签可见还是隐藏。 3、AutoSize:确定是否根据标签上显示文本的长度,自动调整标签大小。 4、BackStyle:确定标签是否透明。 5、WordWrap:确定标签上显示的文本能否换行。 6、FontSize:确定标签上显示文本所采用的字号。 7、FontName:确定标签上显示文本所采用的字体。 8、ForeColor:确定标签上显示的文本颜色。 二、命令按钮和命令按钮组 在各种窗口或对话框中几乎都要使用一个或多个命令按钮。一旦用户单击一个命令按钮,就可实现某种规定的操作。例如,各种对话框中的“确定”按钮,当用户单击时将结束对话框的操作。 VisualForPro中的命令按钮控件同样用于完成特定的操作。操作的代码通常放在命令按钮的“单击”事件(即Click Event)代码中。这样,运行表单时,当用户单击命令按钮时便会执行Click事件代码。如果在表单运行中,某个命令按钮获得了焦点(这时,这个命令按钮上会比其他命令按钮多一个线框),则当用户按下《Enter》键或空格键时,也会执行这个命令按钮的Click时间代码。 常用的命令按钮属性及其作用如下: 1、Caption:设置在按钮上显示的文本。 2、Default:在表单运行中,当命令按钮以外的某些控件(如文本框)获得焦点时,若 用户按下《Enter》键,将执行Default属性值为.T.的那个命令按钮的click事件代码。 3、Cancel:如果设置该属性值为.T.,则当用户按下键时,将执行命令按钮的click 事件的代码。 4、Enabled:指明按钮是否失效,即是否被选择。当Enabled属性值为.f.时,用户无法 选择该按钮。 5、DisabledPicture:指定按钮失效时在按钮上显示的.bmp文件。 6、DownPicture:指定在按钮按下时按钮上显示的.bmp文件。 7、Visible:指明按钮是否可见。 8、Picture:指明显示在按钮上的.bmp文件。 命令按钮组时一组命令按钮,是容器对象。使用命令按钮组便于对一组命令按钮进行统一操作和设置。命令按钮组的ButtonCount属性值,决定组中命令按钮的个数。 表单运行时,当用户单击组中某个命令按钮时,命令按钮组的Value属性可以返回所单击按钮的序号。若要单独设置组中的某个命令按钮的属性,可以使用命令按钮组的快捷菜单中的“编辑”命令选择某个按钮,在“属性”窗口中设置其属性。若为组中某个按钮的Click事件写了代码,当单击这个按钮时,将执行该按钮的Click事件代码而不是组的Click事件代码。 三、选项按钮组 选项按钮组是常用的一种控件,用在各种对话框中,让用户从给定几个操作中选择一个。例如“文件”菜单中“新建”菜单项打开“新建”对话框,该对话框中有一个标题为“文件类型”的选项按钮组,让用户选择建立哪一种类型的文件。

VFP6.0学习笔记(修订)

VFP6.0学习笔记2008年4月10日

目录 一、VF6.0的主索引 二、VF6.0表单建立 三、VFP中”退出”按扭代码和VFP中猜数游戏中”开始”程序码 四、VF6.0表单居中 五、VFP中调用焦点方法: 六、Vf6.0中两个表的链接查询 七、VFP常用命令及用法实例 八、在VFP中显示某特定条件的数据记录 九、VFP中身份证号码修复 十、VFP中计算年龄 十一、VFP程序设计中英文注释 十二、VFP中统计年龄 十三、在VFP中设置焦点 十四、VFP中几个常用函数1 十五、VFP中时间函数 十六、VFP中的字符串替换命令 十七、VFP中的常量 十八、在一个表内查询有关字段内容的方法: 十九、VFP的多表查询

一、VF6.0的主索引 VF6.0中的主索引的用途,是指在表中不能出现重复记录. 二、VF6.0表单建立 改变容器大小选项:在“全部”选项卡里输入Height(高度).Width(宽度值) 改变图片显示容器属性:在属性框中选择Stretch.默认是0‘剪载’,改成变填充,可将图片在容器中全部显示. 修改窗体介绍:在属性栏选Caption.添加窗体背景图,在属性栏里选Picture,点上面的浏览‘按钮’,进行查找图片文件. 三、VFP中”退出”按扭代码和猜数游戏中”开始”程序码 1、退出: 在方法程序中双击Click Event,输入: thisform.release&&本表单.释放 2、开始: https://www.doczj.com/doc/fe9162932.html,bel1.visible=.f.&&重新开始,abel1标签的可见为假,即赢字隐去. https://www.doczj.com/doc/fe9162932.html,bel2.visible=.f.&&将label2标签的可见为假,即"输"字隐去. thisform.text1.value=int(rand()*10)&&设置本表单text1文本框的随机值.本例中随机值是10。 thisform.text2.value=int(rand()*10)&&设置text2文本框

HIT常用命令小结

常用BSC命令小结: 查询类: 1.ZEEI:BTS/BCF=BTS号/BCF号;查看BTS/BCF的详细信息 2.ZEEI::BCSU;查看当前BSC最大容纳载频数及各BCSU下所有载频数 3.ZERO:BTS= BTS号,TRX=TRX号;查看BTS/TRX的详细情况、干扰级别 4.ZEFO:BCF号:ALL;查看BCF的所有参数 5.ZEQO:BTS= BTS号:ALL;查看BTS的所有参数 6.ZEQO:SEG=**:ALL;查看EDGE站点的所有参数 ZEAO:BTS= BTS号;查看BTS的所有相邻小区 8.ZEAO:BTS= BTS号;ABTS= BTS号;查看同一BSC下的BTS的所有相邻小区 ZEAO:BTS= BTS号;LAC=LAC号,CI=CI号;查看不同BSC的BTS所有相邻小区 10.ZEHO:BTS= BTS号;查看BTS的切换参数 11.ZEUO:BTS= BTS号;查看BTS的功率控制参数 12.ZEFO:BCF号:ALL;查看BCF的所有参数 13.ZEOH::BCF=BCF号;查看当天BCF告警 14.ZEOH:YYYY-MM-DD:BCF= BCF号;查看从输入日期至今的告警 15.ZEOL:BCF号;查询实时告警 16.ZEOL::NR;查询实时告警 17.ZAHO;查看BSC当前告警 18.ZAHP;查看BSC历史告警 19.ZUSI:单元名,单元号;查看各单元状态和相关信息 20.ZUDU:单元名,单元号;诊断指定单元 21.ZCEL:CGR=1;查看A接口电路状态 22.ZRCI:GSW:CGR=1;查看A接口电路的详细信息 23.ZNEL;查看CCS7信令的详细信息 24.ZDSB:NAME=T***%;(***是BTS号)查看信令时隙 25.ZDTI:::PCM=***;查询是否有空余时隙 26.ZEJO ; 查看BSC参数检查 27.ZEAT ; 查看BSC下是否有相同的NCC + BCC + FREQ 28.ZYMO:ET 查看传输 修改类: 1.ZEFS:BCF号:L/U;对BCF重新启动 2.ZEQS:BTS=BTS号:L/U;对BTS重新启动 3.ZERS:BTS=BTS号,TRX=TRX号:L/U;对一个载频重新启动 4.ZUSC:单元名,单元号:目的状态;修改指定单元的状态 5.ZCEC:CRCT=PCM号-时隙号:目的状态;修改A接口电路状态 6.ZCEC:CRCT=PCM号-时隙号:目的状态;修改A接口电路状态 7.ZEAM:BTS=A:ABTS=B::PMRG=0(-10); 修改同一BSC内的PMRG,推话务量(A 为block cell,B是A的adj cell) ZEAM:BTS=A:LAC=B,CI=B::PMRG= 0(-10); 修改不同BSC的PMRG, ZEUG:BTS=A:PMAX= ; 给A小区降功率可缩小覆盖范围,起到缓解拥塞作用 注解:

教学设计表单控件--选项按钮组

优秀课堂教学设计 课题:教表单控件选项按钮组 师:教材分马冬艳析:本节课是选自中等职业学校计算机技术专业的《数据库应用技术 VISUAL FOXPRO6.0 》中第六章表单设计中的第三节的内容。节课是在同学们 已经掌握了几种基本表单控件的基础上,进一步学习选项按扭组控件。重点:选项 按钮组的基本属性和特有属性难点:选项按钮组的应用能力目 1)标:通过了解选项按钮组的特性,并予以适当的启发,让学生能够利用此 2)控件具有创造性的设计出实用表单,培养学生的创造力。 3)知识目标:熟知选项按钮组的特性并熟练应用。情感目标:通过讨论增进同学们的感情交流和知识交流。由于书上对本节的内容实例较少且实例多是在以往例 题的基础上添加上此控因此控件属性突出不明显,为此我特地 专对此控件的属性设计了一道例题,不但能突出这个控件的特有属性,而(4) 且能极大的提高学生的学习兴趣,有利有的突出了重点问题,为解决难点课程重组:(5) 做好了铺垫。在精心设置例题的基础上增加了让学生自己根据控件属性设置问题的环节,不但能增加学生学习的兴趣而且有利于学习对本节课的内容进行深层次的思考,从而达到突破难点的目的。学生在学习本节课之前已经学习了一些控件,对于控件的学习已经有了一定学习经验,知道在学习控件的学习过程中应该注意哪些地方。但是由于控件学习的比较多,而且有很多相似的地方学生容易产生厌烦情绪,为了解决这个问题,要在引入此控件时设置好问题情境,引发学生学习兴趣,且鼓励学生进行大胆的学情分析:设想,培养同学们的创造思维能力。根据学生学习能力水平的不同在请同学们上前操作时,按照要操作的内容有选择性的挑选学生上来操作,在做简单操作时挑选那些平时操作不是很熟练且胆子比较小的同学,在培养他们胆量的同时通过完成一些简单操作激发他们的信心。对于那些较有难度且需要进行一不思考的问题,找一些底子比较好但是又不会很快把这个问题解决出来的同学来做,在他做的过程

VFP常用命令及用法

VFP常用命令及用法、实例 命令中用到的范围: ALL:命令对表中所有记录起作用,即执行时从首记录到末记录,最记录指针停在数据库的末尾。 NEXT 命令作用于从当前记录开始到当前记录后条记录为止的范围内的记录,最后记录指针指向作用范围内的最后一条记录处。NEXT 1表示仅作用于当前记录。 Record 命令作用于记录号为的记录。 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 ] 功能:计算表达式的值,并填入指定字段,当范围和条件选项省略时只对当前记录操作。 5. 删除记录 DELETE [范围] [FOR 条件]

vfp命令

VF命令一览表 一、命令 https://www.doczj.com/doc/fe9162932.html,e 表名打开表 2.List 显示表记录,但不能修改 3.browse 浏览表记录,可以修改 4.display 显示记录指针指向的记录 5.append 追加记录 6.append blank 追加空白记录7.insert blank 插入空白记录8.delete 逻辑删除记录,记录前出现星号9.pack 物理删除,将逻辑删除的记录彻底删除10.recall 记录恢复11.zap 删除表里的所有记录12.go n 指向第n条记录13.go top 指向第一条记录14.go bottom 指向最后一条记录15.skip n 往下跳n条记录16.skip -n 往上跳n条记录17.? 从屏幕的下一行的第一列起显示结果18.? ? 从当前行当前列起显示结果https://www.doczj.com/doc/fe9162932.html,e sb copy to sb() 复制sb表给sb()表20.recno() 记录号函数21.bof() 上溢出22.eof() 下溢出23.dimension x(4) 定义数组x,里面有四个元素,其中每个元素的默认值为.F. declare和dimension 相同24.replace 替换25.add 表示增加字段26.distinct 不重复记录27.error 错误28.continue 继续29.else if 否则30.column 列31.input 显示数值32.accept 显示字符串33.wait 是弹出的一个信息框34.drop 删除字段或删除表35.otherwise 其它情况36.check 规则37.cursor 临时表38.build 连编 二、VF里文件类型 1.项目 .pjx project 2.数据库 .dbc database 3.表 .dbf table 4.菜单.mnx .mpr men 5.程序 .prg 6.表单 .scx form 7.报表 .frx report 8.查询.qpr query 9.视图 .vue view 10.文件 .txt 11.备注型文件 .fpt 三、例题 1.creat table student(学号c(6),姓名c(8),性别c(2),年龄n(2)) 创建学生表

Visual FoxPro常用命令总结

Visual FoxPro常用命令总结 1、打开表命令: USE 表文件名 2、关闭表命令:USE 、CLOSE ALL 3、记录指针定位命令:GO 数值表达式(绝对移动)、SKIP(相对移动) 4、替换(修改)记录命令: REPLACE 字段1 WITH 表达式1,字段2 WITH 表达式2…… [范围][FOR<条件>] 5、复制表命令: COPY TO 新文件名 [FOR〈条件〉][范围] 6、复制表结构命令:COPY STRU TO 新表文件名 [FIEL 〈字段名表〉] 7、查询命令:(1)条件查询:LOCATE FOR 〈条件〉 继续查找命令:CONTINUE 8、选择工作区命令: SELE 工作区号|别名 9、建立表之间的关联命令:SET RELATION TO 关联表达式 INTO 别名 10、表的更新命令: UPDATE ON 关键字段 FROM 别名 REPLACE 字段1 WITH 表达式1,字段2 WITH 表达式2 …… [RANDOM] 11、交互式输入命令: (1)INPUT [提示信息] TO 内存变量 (2)ACCEPT [提示信息] TO 内存变量13、输出命令:?和?? 14、设置默认路径命令: SET DEFA TO 盘符:\路径 15、关闭表命令:CLOSE TABLE,CLEAR ALL 16、记录显示命令:LIST/DISP [范围][FOR 〈条件〉] 17、追加记录命令:(1)表尾追加:APPEND [BLANK] (2)表中插入:INSERT [BEFORE] [BLANK] (3)从其他文件中追加多条记录到当前表: APPEND FROM 文件名 [FOR〈条件〉][FIEL <字段名表>] 18、删除记录命令:DELE [范围][FOR<条件>] 19、彻底删除带标记记录命令:PACK 20、取消删除标记命令:RECALL [范围][FOR<条件>] 21、物理删除表中所有记录命令:ZAP 22、复制任何类型文件:COPY FILE 〈文件名1〉TO 〈文件名2〉 23、将单个记录发送到数组:SCATTER TO 〈数组名〉[FIEL〈字段名表〉] 24、将数组中的值发送到当前记录命令:GATHER FROM 数组名 25、将表中多条记录传送到数组命令:COPY TO ARRAY 数组名 26、将二维数组中的值传送到表中: APPEND FROM ARRAY 数组名 27、表的排序命令: SORT ON 〈字段1〉/A|/D,字段2/A|/D to 新表文件名

表单控件常用属性、事件及方法英中对照

VFP表单/控件常用属性、事件及方法英中对照 ——属性—— Name:表单或控件名 Caption:标题文字 AutoCenter:自动居中 AutoSize:自动大小 ForeColor:前景色 BackColor:背景色 Closable:可关闭 Movable:可移动 Width:宽度 Height:高度 Icon:图标 Visible:可见 Font*:字体、字号等 Enabled:能用 ButtonCount:命令按钮组、选项组控件中控件的个数 Buttons(1):命令按钮组、选项组控件中第一个控件;Buttons(2)命令按钮组、选项组控件中第二个控件;…… value:表示组控件中选中的是第几个控件 或文本框中的内容 或列表框中选择的内容 等 PasswordChar:文本框用于输密码时显示的符号 ControlSource:和控件绑定的内存变量或字段SelStart:编辑框中选定内容的开始位置SelLength:编辑框中选定内容的长度SelText:编辑框中选定的内容 ListCount:列表框中可供选择的内容数 List(1)表示列表框中的第一项内容,List(2)表示列表框中的第二项内容,……RowSourceType:列表框中内容的给出方式RowSource:列表框中内容来自的字段名等MultiSelect:1或.t.时允许多项选择 Selected(1)为真,第一项被选;Selected(2)为真,第二项被选;……。 Text:下拉列表框中输入的内容Recordsource:表格控件绑定的表PageCount:页框中页面的个数 Pages(1)表示页框中的第一个页面,Pages (2)表示页框中的第二个页面,……ActivePage:页框中的活动页面号Increment:微调每次的变化量SpinnerHighValue:鼠标调整时的最大值SpinnerLowValue:鼠标调整时的最小值KeyboardHighValue:键盘输入时的最大值KeyboardLowValue:键盘输入时的最小值Value:微调的当前值 Picture:图像控件对应的图像 Stretch:图像的显示方式 Interval:计时器定时的时间间隔,单位毫秒 ——事件—— Load:装入事件 Init:初始化事件 Destroy:表单关闭前发生的事件Unload:表单关闭时发生的事件Click:单击事件 DblClick:双击事件 RightClick:右键事件 GotFocus:得到焦点事件 LostFocus:失去焦点事件 Timer:计时器指定的时间间隔到时发生 Error:执行对象事件代码出错时发生——方法—— Release:关闭表单Refresh:表单刷新Show:显示表单Hide:隐藏表单SetFocus:将焦点放到控件中 AddItem(内容项):向列表框中增加数据项RemoveItem(位置):从列表框中删数据项

VFP中常用命令

VFP中常用命令 一、数据库的建立、打开、关闭和删除 建立数据库: CREATE DATABASE [database name|?] 从磁盘中删除数据库: CREATE DATABASE [database name|?] ELETE DATABASE database name DELETE DATABASE database name |? 打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE] 打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DATABASE [database name|?] 指定的数据库database name为当前数据库。 指定当前的数据库: SET DATABASE TO [database name] Database name必须为已经打开的数据库。如果省略数据库名称database name则不指定当前数据库(没有当前数据库)。 关闭数据库: CLOSE DATABASE [ALL] 关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。 二、数据表和视图的建立、打开、关闭和删除 建立数据表(SQL命令): CREATE TABLE | DBF table name (Col_ name1 Type1 [NOT NULL/NULL] [{,Col _n ame2 Type2 [NOT NULL/NULL]}...] ) table_ name是所创建的数据表的名字。 Col_name1,Col_name2,...是表中列的名。 Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。 如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。 向当前打开的数据库中添加数据表: ADD TABLE table name|? 从当前打开的数据库中删除数据表: REMOVE TABLE table name|? [DELETE]

VFP函数大全

VFP函数大全 %运算符用于计算并返回两个数值表达式相除之后的余数 $(包含)运算符用于进行字符表达式之间的包含关系运算,如果一个字符表达式包含在另一个字符表达式之中,则函数返回真 ABS() 计算并返回指定数值表达式的绝对值 ACLASS() 用于将一个对象的父类名放置于一个内存数组中 ACOPY() 把一个数组的元素拷贝到另一个数组中 ACOS() 计算并返回一个指定数值表达式的余弦值 ADATABASES() 用于将所有打开的数据库名和它的路径存入一个内在变量数组中ADBOBJECTS() 用于把当前数据库中的连接、表或SQL视图的名存入内存变量数组中ADEL() 用于从一维数据中删除一个元素,或从二维数组中删除一行或者一列元素 ADIR() 将文件的有关信息存入指定的数组中,然后返回文件数 AELEMENT() 通过元素的下标,返回元素号 AFIELDS 将当前的结构信息存入数组中,然后返回表中的字段数 AFONT() 将可用字体的信息存入数组中 AERROR() 用于创建包含VFP或ODBC错误信息的内存变量 AINS() 在一维数组中插入一个元素或在二维数组中插入一行或一列元素 AINSTANCE() 用于将类的所有实例存入内存变量数组中,然后返回数组中存放的实例数ALEN() 返回数组中元素、行或者列数 ALIAS() 返回当前工作区或指定工作区内表的别名 ALLTRIM() 从指定字符表达式的首尾两端删除前导和尾随的空格字符,然后返回截去空格后的字符串 AMEMBERS() 用于将对象的属性、过程和成员对象存入内存变量数组中 ANSITOOEM() 将指定字符表达式中的每个字符转换为MS-DOS(OEM)字符集中对应字符APRINTERS() 将Print Manager中安装的当前打印机名存入内存变量数组中 ASC() 用于返回指定字符表达式中最左字符的ASCII码值 ASCAN() 搜索一个指定的数组,寻找一个与表达式中数据和数据类型相同的数组元素ASELOBJ() 将活动的Form设计器当前控件的对象引用存储到内存变量数组中 ASIN() 计算并返回指定数值表达式反正弦值 ASORT() 按升序或降序排列数组中的元素 ASUBSCRIPT() 计算并返回指定元素号的行或者列坐标 AT() 寻找字符串或备注字段在另一字符串或备注字段中的第一次出现,并返回位置 ATAN() 计算并返回指定数值表达式的反正切值 ATC() 寻找字符串或备注字段中的第一次出现,并返回位置,将不考虑表达式中字母的大小写 ATCLINE() 寻找并返回一个字符串表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号。不区分字符大小写 ATLINE() 寻找并返回一个字符表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号 ATN2() 根据指定的值返回所有4个像限内的反正切值 AUSED() 用于将一次会话期间的所有表别名和工作区存入变量数组之中 BAR() 从用DEFINE POPUP命令定义的菜单中返回最近所选择的菜单项的编号,或返回一个

VFP常用函数、属性、事件和方法

VFP常用命令,函数,属性,事件和方法一.常用命令 1.CREATE TABLE-SQL 创建一个含有指定字段的表。 2.ALTER TABLE-SQL 以编程方式修改表的结构。 3.SELECT 激活指定工作区。 4.USE 打开一个表及其相关索引文件,或打开一个SQL视图。5.CLOSE TABLES 关闭所有打开数据库中的所有表。 6.COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表。 7.COPY TO 用当前选定表的内容创建新文件。 8.RENAME TABLE 重命名当前数据库中的表。 9.BROWSE 打开浏览窗口。 10.A PPEND 在表的末尾添加一个或多个新记录。 11.A PPEND FROM 从一个文件中读入记录,添加到当前表的尾部。 12.G O/GOTO 将记录指针移到指定记录上。 13.L OCATE 按顺序搜索表,从而找到满足指定逻辑表达式的第一个记录。14.S EEK 在一个表中搜索首次出现的一个记录。 15.S KIP 使记录指针在表中向前或向后移动。 16.C ONTINUE 继续执行先前的LOCA TE命令。 17.E DIT 显示要编辑的字段。 18.D ELETE 给要删除的记录做标记。 19.D ELETE-SQL 给要删除的记录做标记。 20.P ACK 从当前表中永久删除有删除标记的记录。 21.R ECALL 恢复所选表中带删除标记的记录。

22.Z AP 从表中删除所有记录。 23.I NSERT-SQL 在表尾追加一个包含指定字段值的记录。 24.R EPLACE 更新表的记录内容。 25.U PDATE-SQL 以新值更新表中的记录。 26.S ET EXCLUSIVE 指定Visual FoxPro在网络上是以独占方式,还是以共享方式打开表文件。 27.S ET FILTER 指定访问当前表中记录时必须满足的条件。 28.S ET DELETED 指定Visual FoxPro 是否处理标有删除标记的记录。 29.S ET INDEX 打开一个或多个索引文件,供当前表使用。 30.S ET ORDER 指定表的主控索引文件或标识。 31.G A THER 将当前选定表中的当前记录的数据替换为某个数组、内存变量组或对象中的数据。32.S CATTER 从当前记录中把数据复制到一组内存变量或数组中。 33.O PEN DATABASE 打开一个数据库。 34.S ET DATABASE 指定当前数据库。 35.D ELETE DATABASE 从磁盘上删除数据库。 36.D ISPLAY DA TABASE 显示有关当前数据库的信息。 37.M ODIFY DATABASE 打开数据库设计器,让用户能够交互地修改当前数据库。 38.V ALIDATE DA TABASE 保证当前数据库中表和索引位置的正确性。 39.S ELECT-SQL 从一个表或多个表中检索数据。 40.D O 执行一个Visual FoxPro 程序或过程。 41.D O FORM 运行用表单设计器创建的、编译过的表单或表单集。 42.R EPORT 根据MODIFY REPORT或CREATE REPORE创建的报表定义文件,显示或打印报表。43.C ALCULATE 对表中的字段或包含字段的表达式进行财务和统计操作。

Suse_Linux常用命令小结

Suse Linux常用命令 目录 1、Suse9下配置默认网关 (1) 2、Suse9下开启telnet服务 (1) 3、Suse9下开启FTP服务 (2) 4、Suse9下配置rlogin (2) 5、查看版本、内核 (2) 6、查看CPU、MEM (3) 7、查看操作系统位数 (3) 8、查看VCS双机软件版本 (3) 9、主机名修改 (3) 10、检查系统分区 (4) 11、检查内存空间 (4) 12、检查时区设置 (4) 13、修改时区设置 (4) 14、系统时间设置 (4) 15、重新设置光纤驱动 (4) 16、检查磁盘分区信息 (4) 17、创建物理卷 (4) 18、查看已经创建的PV (5) 19、创建卷组 (5) 20、创建逻辑卷 (5) 21、查看创建的卷组和逻辑卷 (5) 22、创建文件系统 (5) 23、激活/去激活卷组 (5) 24、查找卷组信息 (5) 25、IP地址配置(临时生效,系统重启后会丢失) (5) 26、IP地址配置(永久生效) (6) 27、配置IP地址与节点名映射关系 (7) 28、激活/去激活网卡 (7) 29、配置双机ssh信任关系(两个节点上都要执行该操作) (7) 30、配置用户的.rhosts文件 (8) 31、配置心跳网卡信息 (8) 32、修改主机名 (9) 33、VCS涉及主机名的修改 (10) 34、XDM配置 (10) 35、Suse10sp1下开启FTP服务 (11) 36、查看操作系统补丁 (12) 37、查看操作版本 (12)

1、Suse9下配置默认网关 a、在/etc/sysconfig/network/routes文件下添加如下行: default 网关IP地址 - - b、重启网络服务 # /etc/init.d/xinetd restart # rcnetwork restart c、查看路由 # netstat -r 2、Suse9下开启telnet服务 a、修改/etc/xinetd.d/telnet文件:disnable=no 如果/etc/xinetd.d下不存在telnet文件,可能是telnet服务包没有安装,需要通过光盘安装好。 b、修改/etc/pam.d/login文件,注释如下行,允许root用户telnet "auth required pam_securetty.so" c、编辑/etc/securetty文件 # vi /etc/securetty 在文件中增加下面的内容: pts/0 pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9 d、重启网络服务

相关主题
文本预览
相关文档 最新文档