二级VF教案 - 图文 下载本文

环变量自动增加步长值之后,再判断循环变量是否满足终值;在SCAN循环结构中遇到LOOP时,立即返回判断FOR条件或WHILE条件。

例:编写程序:统计XS表中的男生人数,假设性别字段为逻辑字段。 OPEN DATABASE School Use xs in 0 Select xs M=0

SCAN FOR 性别=.T. M=M+1

ENDSCAN CLEAR

?―男生人数:‖,M CLOSE DATABASE RETURN

一、多模块程序设计 模块的定义和调用 1、模块及其定义:

过程定义的语法格式:

PROCEDURE|FUNCTION<过程名> <命令序列> RETURN [<表达式>] [ENDPROC | ENDFUNC] 过程说明:

A:过程开始:PROCEDURE | FUNCTION表示一个过程开始,并声明过程名。过程名必须以字母或下画线开头,还可以包含字母、数字、下画线。 B:过程结束。ENDPROC | ENDFUNC表示一个过程的结束。如果省略ENDPROC |ENDFUNC命令,则过程执行下一条PROCEDURE |FUNCTION命令或在文件尾处结束。 C:过程返回。RETURN命令用于指定过程的返回值。当过程执行到RETURN命令时,控制将转回到调用程序(或命令窗口),并返回表达式的值。如果省略RETURN命令,则在过程结束时自动执行一条隐藏含的RETURN命令;如果RETURN命令中没有表达式,则返回值为逻辑真(.T.) 注:一般情况下,过程保存在单独立文件里。

过程文件的建立仍使用MODIFY COMMAND命令。

文件的默认扩展名还是.prg。另外,过程也可以保存在命令文件里,但必须放置在命令文件正常代码的后面。 2、模块的调用(格式有两种) 格式1:DO<文件名>|<过程名>

格式2:<文件名>|<过程名>()注:直处圆括号不能省略

注:如果模块是程序文件的代码,模块调用就用<文件名>;如果模块不是程序文件的代码,模块调用就用<过程名 >

格式2的模块调用既可以当做命令使用,也可以当做函数出现在表达式中,格式2中的<文件名>不能含有扩展名。 例:用过程编写一个求和与乘积的程序。

SET TALK OFF S=1 P=1 DO X ? ―S=‖,S

SET TALK ON RETURN

PROCEDURE X M=11 N=12 S=M+N P=S*N ? ―P=‖,P

ENDPROCEDURE 3、参数的传递: 接收传递的命令:

PARAMETERS <形参> [,<形参2>,??] LPARAMETERS<形参> [,<形参2>,??]

PARAMETERS命令声明的形参变量被看作是模块程序中建立的私有变量,LPARAMETERS命令声明的形参变量被看作是模块程序中建立的局部变量。 4、调用模块程序的格式为:

格式1:DO <文件名>|<过程名> [WITH <实参列表> 格式2:<文件名>|<过程名>(<实参列表>)

注:实参可以是常量、变时,也可以是一般形式的表达式。调用模块程序时,系统会自动将实能传递给对应的形参。形参的数目不能少于实参的数目,如果形参的数据少于实参的数目,系统会出现运行时错误,如果形参的数目多于实参的数目,则多余的形参都赋初值逻辑假(.F.)

注:参数传递功能:是指将实参传递给形参(相当于把实参值赋给形参) 传递方式有两种:按值传递和按引用传递

A:按值传递:是指将实参传递给形参,形参值的改变不会影响实参。

B:按引用传递:指把实参值传递给形参,形参值的改变会影响实参。即实参的值与形参的值相同。

例:按值传递和按引用传递: CLEAR

STORE 500 TO X1,X2

SET UDFPARMS TO VALUE DO P4 WITH X1,(X2) ??第一次:‘,X1,X2 STORE 500 TO X1,X2

P4(X1,X2)

??第二次:‘X1,X2

SET UPFPARMS TO REFERENCE DO P4 WITH X1,(X2) ??第三次:‘,X1,X2 STORE 500 TO X1,X2 P4(X1,X2)

??第四次:‘X1,X2 *过程P4

PROCEDURE P4

PARAMETERS X1,X2 STORE X1+1 TO X1 STORE X2+1 TO X2 ENDPROC

注:(X2)用一对圆括号括起来,表示不管在什么情况下,总是按值传递。从运行结果来看,用格式1调用模块程序时的参数传递方式不受UDFPARMS值的设置影响。

5、判断参数传递的方式:

格式1调用(用DO调用)实参是常或一般形式的表达式按值传递。当实参是变量则按引用传递(除实参用“()”括起来按值传递外)。与SET UDFPARMS此设置无关。 格式2调用(文件名())默认情况总是按值传递,但与SET UDFPARMS TO VALUE | REFERENCE命令设置有关。(格式1不受影响) VALUE:按值传递。REFERENCE:按引用传递。

注:无论用格式1或格式2调用实参一但用圆括号括起来总是按值传递。 参数传递时,实参的个数不能多余形参;当形参个数多余实参个数时,多余形参初值为.F.。(这是很显然的,俗语说:一个萝卜一个坑,就是这个道理,萝卜要有坑放,不可能10个萝卜3个坑,但坑多了没关系,多余形参为.F.) 二、变量的作用域:

按变量的作用域来分,内存变量可分为:全局变量、私有变量和局部变量三类; 变量名称 定义命令 使用范围 初值 全局变量 PUBLIC 本层、上层及上层模块 .F. 私有变量 无需定义 本层和下模块 无 局部变量 LOCAL 仅限本层模块使用 .F. PRIVATE<内存变量>隐藏指定的在上层模块中已经存在的内存变量,使用得上层模块中的这些变量在当前模块程序中暂时无效。

表单设计与应用

一、概念及常事件:

1、对象:是指客观世界里的任何实体。可以是具体的物,也可以是某些概念。对象包含两个方面:属性和方法。属性是指对象的外部特性(静态描述);方法是指对象的行为(动态描述)

2、类:是具有共同属性、共同方法的对象集合。类是对象的抽象。对象是类的一个实例。

3、方法:是对象类的通用过程,指定对象执行的特点动作。方法的过程代码由VF定义,用户是不可见的。如:Show、Release等。

4、事件:是一种由系统预先定义好而由用户或系统发出的动作(如有int Load Click Rightclick等),事件代码能在事件引发时执行,也可以象方法一样被显示调用。

5、继承:是指基于现有类创建新类时,新类继承了现有类的方法和属性。 6、数据环境:是一个对象,有自己的属性、方法和事件。在数据环境中的表、视图和关联、会随表单运行的打开和建立,并随表单的关闭或释放而关闭。

7、关系:是数据环境的一个对象,有自己的属性、方法和事件。 常用事件和方法: 引用对象关键字: 关键字 引用对象 Parent 当前对象的直接容器对象 This 当前对象 Thisform 当前对象所在的表单 Thisformset 当前对象所在的表单集 一、描述对象的属性方法格式:

格式1:路径.对象名.属性=<表达式>

功能:把表达式的值赋予给指定对象的属性. 如:This.parent.text1.value=[成人电脑培训部] 格式2:<变量名>=路径.对象名.属性

功能:把指定对象的属性值赋予给指定变量名

如:my=Thisform.labell.caption

格式3:路径.对象名.属性=路径.对象名.属性

功能:把指定对象的属性值赋予给指定对象的属性. 如:Thisform.text.value=Thisform.text2.value 二、创建表单的方法:

注:表单的扩展名为:.SCX 1、使用向导创建

2、使用新建对话框创建

3、使用命令创建:CREATE FORM <表单名> 注:A:表单向层合适于创建基于一个表的表单。