Sie sind auf Seite 1von 4

Power Builder

Carrera Profesional: Computacin e Informtica

FUNCIONES
FUNCIONES DEFINIDAS POR EL USUARIO Power Builder tiene muchas funciones propias del lenguaje (SelectText, Setfocus, etc) las cuales realizan procesos determinados pero tambin existen funciones definidas por el usuario. Tipos de Funciones de Usuario: Las funciones definidas por el usuario pueden ser de 2 tipos: Funciones Globales.- Son aquellos que no necesitan estar asociados a ningn objeto, son reconocidas en toda la aplicacin y son siempre accesibles en cualquier momento. Funciones Locales (A Nivel Objeto).- Estas funciones siempre estn asociados a un objeto en particular que puede ser un objeto: window, menu, user object o en la aplicacin. Estas funciones son parte de la definicin del objeto donde se ha declarado, esto significa que puede accederse desde cualquier Script del objeto, pero tambin se le puede dar la propiedad de que pueda accederse a otros Scripts.

Nombre de las Funciones de Usuario.El nombre de las funciones pueden tener como mximo hasta 40 caracteres, es recomendable asignarle un prefijo a los nombres de las funciones: Tipo de Funcion Global Nivel Window Nivel Menu Nivel UserObject Nivel Application objeto Prefijo f_ wf_ mf_ uf_ af_

Locales

Niveles de Acceso en las Funciones.Los accesos a las funciones son distintos, para las funciones globales el acceso es pblico esto significa que pueden ser llamadas desde cualquier parte de la aplicacin. En cambio las funciones de Objeto, pueden tener restricciones en su nivel de Acceso y pueden ser: Public.- En cualquier lugar de la aplicacin es reconocida. Private.- Solo es reconocida en los Scripts de los eventos del objeto donde ha sido definida. Sus descendientes no pueden llamarlo. Protected.- Solo es reconocida en el Script para el objeto donde la funcin se defini y tambin en sus descendientes.

Argumentos en las Funciones Definidas por el Usuario.Una funcin solo puede devolver UN valor, pero se puede hacer un artificio mediante sus argumentos, los argumentos pueden ser de 3 tipos: 1. Value (por Valor).- Son aquellos que llegan con un valor, dentro de la funcin puede tomar cualquier valor, pero al momento de salir toma el valor con el cual ingres a la funcin. 2. Reference (por Referencia).- Son aquellos valores que ingresan con un valor, el valor puede ser modificado durante la funcin y cuando salen toman el ltimo valor que se le asign dentro de la funcin. 3. ReadOnly (solo lectura).- Son aquellos argumentos que ingresan con un valor, lo mantienen durante la funcin y cuando salen van con el ltimo valor con el cual ingresaron.
Prof. Johnny Daz Pg. 1

Power Builder
Carrera Profesional: Computacin e Informtica

Ejemplos: 1. Utilice una Funcin local para calcular el Sueldo neto del Trabajador. Paso 1: Crear la ventana con el siguiente diseo. (grabe la ventana como: w_Empleado)

Sle_bruto Sle_dcto Sle_bon Sle_neto

Paso 2: Se debe crear una funcin local (wf_calculo) que permita calcular el Sueldo Neto y adems debe devolver mediante sus argumentos el descuento y la Bonificacin.

2. Luego invoque a la funcin desde el control sle_bruto. (Sueldo bruto) en el evento Modified. Real SB, descu, bonif, SN SB=Real(sle_bruto.text) //Invocando a la funcin para calcular el Sueldo Neto, el Descuento y la Bonificacin. SN=wf_calculo(SB,descu,bonif) //Pegando los resultados sle_dcto.text=String(descu,"###,###.00") sle_bon.text=String(bonif,"###,###.00") sle_neto.text=String(SN,"###,###.00")

Prof. Johnny Daz

Pg. 2

Power Builder
Carrera Profesional: Computacin e Informtica

Ejemplo 2: Crear una Funcin Local que permita calcular el Total a Cobrar por el Trabajador. Consideraciones: El programa deber solicitar que Ud. ingrese el nombre del empleado y luego que seleccione a que categora pertenece. El Bsico aparecer de acuerdo a la categora del Empleado. a. Si es: OBRERO Su Bsico ser 800 b. Si es: EMPLEADO Su Bsico ser 1000 c. Si es:: GERENTE Su Bsico ser 1500 d. Si es: AUXILIAR Su Bsico ser 500 La Movilidad y el Refrigerio sern del 10% y 15% resp. del S.basico. Al seleccionar la Movilidad y/o Refrigerio aparecer el Total. Crear una Funcin Local que se encargar de mostrar el Total a cobrar del empleado.

SOLUCIN:
Disee la siguiente ventana:

Proceda a crear la Funcin Local

Function: Wf_Calcular //Return Type: Real //Arguments: //Pass: Value //Pass: Value //Pass: Value Real Total //Calcula el Total Total = Bas + Mov + Refrig //Devolviendo el Total Return (Total)

Type: Real Type: Real Type: Real

Name: Bas Name: Mov Name: Refrig

Prof. Johnny Daz

Pg. 3

Power Builder
Carrera Profesional: Computacin e Informtica

Function Wf_Limpiar //Return Type: None sle_emp.text="" sle_bas.text="" sle_total.text="" cbx_movilidad.checked=false cbx_refrigerio.checked=false ddlb_1.clear( ) sle_emp.setfocus( ) Declare Shared Variables Decimal Xbas, Xmov, Xref Script SelectionChanged for ddlb_1 CHOOSE CASE Trim(Upper(This.text)) CASE "OBRERO" Xbas=800 CASE "EMPLEADO" Xbas=1000 CASE "GERENTE" Xbas=1500 CASE "AUXILIAR" Xbas=500 END CHOOSE sle_bas.text=String(Xbas,"s/. ###,##0.00") Script Clicked for cbx_Movilidad If This.Checked=True Then Xmov = 0.10*Xbas Else Xmov = 0 End if Sle_total.text = String(Wf_Calcular(Xbas,Xmov,Xref),"s/.###,##0.00") Script Clicked for cbx_Refrigerio If This.Checked=True Then Xref = 0.15*Xbas Else Xref = 0 End if Sle_total.text = String(Wf_Calcular(Xbas,Xmov,Xref),"s/.###,##0.00")

Fin de la Gua Prctica

Prof. Johnny Daz

Pg. 4