循序渐进学习Power Builder 6.0(11-3)

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 22:59:05

11.3 类用户对象

除了可视的用户对象之外,POWER BUILDER还提供了一种不可视的用户对象:类用户对象。它也具有非常广泛的应用领域。

比方说,在制作一个商用数据库软件的时候,经常会使用某些商业规则对数据进行重复地计算和处理。如果我们定义一个用户对象,由它来管理这套数据处理的办法,那就会使程序的设计工作方便很多。

下面我们通过一个例子来说明如何建立和使用类用户对象。首先单击POWER BAR上面的用户对象画板按钮。系统弹出对象选择对话框。如图2。

单击NEW按钮,新建一个对象。接着,系统询问新建用户对象的类型。

关于这两个组框的含义,在介绍可视化用户对象的时候已经进行了大致的说明。CLASS组框当中的STANDARD图标表示标准类型的类用户对象。POWER BUILDER本身带有一些不可视的用户对象,比方说前面曾经提到过的系统事务处理对象,通过继承这些系统对象生成的类用户对象就是标准类型的类用户对象。CUSTOM图标表示定制的类用户对象,顾名思义就是用户自己定义的类对象。我们选中这个图标,建立一个定制类用户对象。单击OK按钮,进入用户对象画板的工作区。如图11-12。

循序渐进学习Power Builder 6.0(11-3)(图一)

图11-12

这个矩形框就代表着用户对象,由于类用户对象是不可见的,所以我们不能在它上面布置任何的可视控件。接下来要做的工作是为这个对象封装属性和函数。在对象上面单击鼠标右键,弹出菜单。如图11-13。

循序渐进学习Power Builder 6.0(11-3)(图二)

图11-13

GLOBAL VARIABLES,SHARED VARIABLES,INSTANCE VARIABLES这三个命令都可以用来为对象定义变量属性。

GLOBAL VARIABLE 是全局变量,它可以从应用程序的任何地方直接访问。

INSTANCE VARIABLE是实例变量,什么是实例呢?我们在这里定义的是类用户对象,它相当于一个模板,进行程序的设计的时候,我们可以在需要的时候根据这个模板生成具体的对象,这些具体的对象才是我们真正使用的东西,它们被称为实例。实例变量就是为一个对象产生的所有实例定义的,但是它的值对于每一个实例而言又是不同的。

SHARED VARIABLE是共享变量,和实例变量一样,它也是与一个对象的所有实例都有关系,不同的是共享变量在每一个实例变量当中都具有相同的值。我们选择INSTANCE VARIABLE 定义一个实例变量。屏幕上弹出声明实例变量的对话框。如图11-14。

循序渐进学习Power Builder 6.0(11-3)(图三)

图11-14

在里面敲入需要定义的变量。单击OK按钮,关闭对话框。再次在对象上面单击鼠标右键,选择USER OBJECT FUNCTIONS 命令,为对象封装函数。如图11-15。

循序渐进学习Power Builder 6.0(11-3)(图四)

图11-15

屏幕上显示函数选择对话框,单击NEW按钮新建一个函数。如图11-16。

循序渐进学习Power Builder 6.0(11-3)(图五)

图11-16

在NAME 一栏当中,输入函数的名字。单击ACCESS列表框,如图11-17。

循序渐进学习Power Builder 6.0(11-3)(图六)

图11-17

在这里可以定义这个函数的访问类型,PUBLIC 表示可以从应用程序的任何地方访问这个函数,PRIVATE表示这个函数只能在当前对象的脚本当中被访问,而PROTECTED 则表示只有当前对象以及当前对象的子对象可以访问这个函数。我们选择PRIVATE类型。

在RETURN列表框中可以选择当前函数运行的返回值类型。我们接受缺省的INTEGER整数类型。

下面的ARGUMENT组框是用来定义当前函数的参数表的。我们要定义的函数只接受一个参数,输入参数的名称,在参数类型选择列表框当中选择需要的参数类型。

PASS BY列表框是用来定义参数传递方法的。单击这个列表框,如图11-18。

循序渐进学习Power Builder 6.0(11-3)(图七)

图11-18

VALUE方式的意思是传参的时候将这个参数复制一份,再利用这个值进行计算,函数操纵的是参数的复制品,这样函数被调用结束的时候将不会影响参数的值,这个参数实际上就相当于C语言中的形参;

REFERENCE引用方法的意思就是函数进行数据处理的时候将会直接地操纵这个参数,这意味着在函数当中将可以改变参数的值,这个参数实际上就相当于C语言中的变参;

READ ONLY方式与引用方式的不同之处在于函数只能读参数的值而不能直接改变参数。我们选用REFERENCE方式。

进行了以上的设置之后,单击OK按钮,就进入了POWER BUILDER 的函数工作区,

我们可以在这里输入需要的函数定义了。如图11-19。

循序渐进学习Power Builder 6.0(11-3)(图八)

图11-19

关闭工作区,选择“是”保存这个函数。前面我们已经完成了给对象封装变量和函数的工作,关闭工作区,单击“是”按钮确认保存这个对象,给对象取一个名字,单击OK按钮。如图11-20。

循序渐进学习Power Builder 6.0(11-3)(图九)

图11-20

这样就完成了一个类用户对象的定义。那么如何使用这个类用户对象呢?下面举一个例子。打开一个已经准备好的应用程序,在需要使用用户对象首先声明一个用户对象:

calplan instance

然后使用CREATE生成类用户对象的一个实例:

instance = CREATE calplan

当对象例化之后,我们就可以使用这个实例进行工作了。

需要注意的是当不再需要使用这个对象的时候,必须用DESTROY语句来清除这个对象:

DESTROY calplan

在程序中其它使用这个类用户对象的地方也要进行同样的工作。我们运行这个程序。刚才定义的对象可以使用两种处理方案进行数据处理,按下“按方案一计算按钮”,对象对数据取整加和,如图11-21。

循序渐进学习Power Builder 6.0(11-3)(图十)

图11-21

按下“按方案一计算按钮”,对象对数据进行四舍五入加和,如图11-22。

循序渐进学习Power Builder 6.0(11-3)(图十)

图11-22

类用户对象的定义和使用的方法就介绍到这里。


Tags:

作者:佚名
分享到: 微信 更多