Sie sind auf Seite 1von 30

PowerBuilder

Sistemas de Gestin

Curso de Programacin (Power Builder)

Desarrollo de Sistemas de Gestin

Manual Instructivo

Setiembre, 2011

Asuncin - Paraguay

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Introduccin
Prog. Orientada a Objetos:
La programacin orientada a objetos (POO) es un modelo
de programacin que utiliza objetos, ligados mediante mensajes, para la solucin de
problemas. Puede considerarse como una extensin natural de la programacin
estructurada en un intento de potenciar los conceptos de modularidad y reutilizacin de
cdigo.
Es una tcnica de programacin que aumenta la velocidad
de desarrollo de los programas y hace que su
mantenimiento sea ms fcil al volver a utilizar objetos
que tienen comportamientos, caractersticas y relaciones
asociadas con el programa. Los objetos son organizados
en grupos que estn disponibles para la creacin y
mantenimiento de aplicaciones.
La programacin orientada a procedimientos clsica
presenta ciertos problemas que han ido hacindose cada
vez ms graves, a medida que se construyan aplicaciones
y sistemas informticos ms complejos.
Es difcil modificar y extender los programas, pues suele
haber datos compartidos por varios subprogramas, que
introducen interacciones ocultas entre ellos.
Es difcil mantener los programas. Casi todos los sistemas
informticos grandes tienen errores ocultos, que surgen a
la luz hasta despus de muchas horas de funcionamiento.
Es difcil reutilizar los programas. Es prcticamente
imposible aprovechar en una aplicacin nueva las
subrutinas que se disearon para otra.
La programacin orientada a objetos (OOP, por las siglas
ingls Object-Oriented Programming) es una nueva forma
de programar que prolifer a partir de los aos ochenta y
trata de encontrar solucin a estos problemas utilizando los
siguientes conceptos:
Objetos.
Entidades complejas provistas de datos (propiedades, atributos) y comportamiento
(funcionalidad, programas, mtodos). Corresponden a los objetos reales del mundo que
nos rodea. Un objeto es una forma de comunicacin con el usuario (por ejemplo, una
ventana o un men). Cada objeto tiene atributos que defne su apariencia y
comportamiento. Por ejemplo, los atributos height y width para un CommandButton definen
su apariencia, donde los atributos; visible y enabled definen su comportamiento.
Clases.
Conjunto de objetos comparten propiedades y comportamientos. Tipo de objetos definido
por el usuario. Ej. Windows, Mens, controles, etc.
Herencia.
Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases
a las que pertenecen.
Encapsulamiento.
Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se
reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos
asociados a un objeto contra su modificacin por quien no tenga derecho a acceder a ellos,
eliminando efectos secundarios e interacciones.
Polimorfismo.
EL polimorfismo permite que una misma operacin pueda llevarse a cabo de forma
diferente en clases diferentes, dependiendo de la referencia del objeto y el nmero de
argumentos. Por ejemplo la operacin mover, es distinta para una pieza de ajedrez que
para una ficha de damas, pero ambos objetos pueden ser movidos. Una operacin es una
accin o transformacin que realiza o padece un objeto.

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Evento.
Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un
mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje
adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que
puede desencadenar un objeto, es decir la accin que genera.
Cuando el usuario selecciona un objeto o ingresa/modifica informacin en un objeto, ocurre
un evento. Los eventos pueden ocurrir para muchos objetos (aplicaciones, ventanas,
controles, etc.). Un evento ocurre cuando el usuario ejecuta una accin con el ratn o el
teclado. Los eventos tambin pueden ser provocados por declaraciones en PowerScript y
por el sistema mismo. Los eventos comunes incluyen:
Click
DoubleClicked
Modified
Open
Close
GetFocus
LoseFocus
SelectionChanged
Qu es Power Builder?

Una Aplicacin puede


contener:

PowerBuilder es una herramienta de desarrollo de software


que permite construir variados tipos de sistemas y
aplicaciones. Es una herramienta que integra el grupo de
los productos Sybase que juntos proveen las
herramientas necesarias para desarrollar aplicaciones
cliente/servidor y aplicaciones web.
* Una interfaz de Mens, ventanas, controles con los
cuales el usuario interacta directamente con una
aplicacin. Bsicamente Objetos, eventos y script.
* Procesamiento, eventos lgicos, funciones y cdigo
conteniendo la lgica del negocio, reglas de validacin y
otros procesamientos. PowerBuilder permite codificar el
procesamiento lgico como parte de la interfaz de usuario
en mdulos llamados custom class user object
* Acceso y Administracin de Bases de Datos.
* Apoyo para intercambio Dinmico de Datos (DDE:
Dynamic Data Exchange), Bibliotecas de Enlace Dinmico
(DLL: Dynamic Link Libraries), Objetos Incrustados (OLE:
Object Linking and Embeddign), Texto ASCII.
* Apoyo para importacin y Exportacin de formatos de
archivos populares.

Arquitectura Cliente/Server: Una aplicacin que utiliza la arquitectura cliente/servidor


requiere de servicios de una base de datos servidora a
travs de sentencias SQL. La base de datos puede
localizarse virtualmente en cualquier lugar. Los mensajes
son traspasados entre el cliente y el servidor. Una vez que
los datos requeridos han sido traspasados al cliente, el
procesamiento toma lugar al nivel de cliente. Los datos
pueden estar disponibles para muchos usuarios, pero el
procesamiento tiene lugar localmente.
Arquitectura Web:

Prog. Rodrigo Velzquez

Esta arquitectura incluye lo que se denomina Web Forms


Applications que se desarrolla para servidores IIS usando
la tecnologa ASP.NET. Esta arquitectura utiliza la
tecnologa ASP.NET.
Esto tiene una arquitectura de tres hileras, con el cliente
navegador como el frontal, y los componentes
PowerBuilder sobre el servidor IIS como la hilera media. La
hilera de base de datos permanece inalterada.
3

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Programacin de Eventos:

En una aplicacin cliente, los usuarios controlan lo que


sucede por la accin que ellos eligen. Por ejemplo, cuando
el usuario hace click sobre un botn, elige un tem de
men, o ingresa dato en un cuadro de texto, uno o ms
eventos son inducidos. El programador slo escribe el
cdigo que especifica el procesamiento que se debe
realizar cuando el evento es inducido.
Las ventanas, los controles, y los dems componentes que
el programador puede crear con PowerBuilder, tiene un
conjunto de eventos predefinidos. Por ejemplo, cada botn
tiene un evento clicked asociado con l, y cada cuadro de
texto tiene un evento modified asociado. En la mayora de
los casos, los eventos predefinidos son los ms
necesarios, sin embargo, en algunas situaciones, el
programador tambin puede definir sus propios eventos.

Workspaces y Targets:

El significado de workspace es espacio de trabajo y el


significado de target es destino
En Power Builder, se trabaja con uno o ms targets en un
workspace. Se pueden agregar tantos targets como se
necesite, abrir y editar objetos en mltiples targets, y
construir y distribuir varios targets a la vez.

Web Target:

Una aplicacin Web que puede contener todos los


elementos que se necesite para construir un sitio web archivos HTML, scripts, imgenes, componentes que se
descargan o una aplicacin JavaServer Pages (JSP).un
Web target adems contiene configuraciones para
construir opciones, realizar conexiones a base de datos y
distribucin.
La capacidad de crear Web Targets est disponible
nicamente en la versin Enterprise de Power Builder
(Enterprise Edition)
Una aplicacin es una coleccin de objetos. Power Builder
provee de diversos tipos de objetos, inclusive objetos
grficos tales como ventanas, mens, botones y los
objetos no visuales tales como los datastore, exception y
objetos de transaccin. En un Web Target, el objeto con el
que se trabaje incluye pginas HTML, imgenes y hojas de
estilo.

Libreras:

Todos los objetos o controles que se crean en Power


Builder se guardan en una o ms libreras asociadas con la
aplicacin (que estn formadas por uno o ms de dichos
objetos y controles que estarn agrupados en archivos de
extensin PBL), cuando se ejecutan las aplicaciones,
Power Builder recupera los objetos de las libreras Pintores
y editores.
Algunas herramientas que se usen para editar o crear
objetos y controles se les llama Pintores (Painters). Por
ejemplo, se puede crear una ventana en el pintor ventana.
Dentro del pintor de ventanas se puede definir las
propiedades de las mismas, agregar controles tales como
botones y etiquetas, crear miniprogramas (scripts) usando
Power Script para la ventana y para los controles que la
misma contenga con el fin de instrumentar la funcionalidad
que se desee obtener.

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin
Power Builder proporciona pintores para ventanas
(windows), mens, DataWindow objetos, objetos visuales y
no visuales definidos por el usuario, funciones, estructuras,
base de datos, data pipelines, y la aplicacin en s. Para
cada uno de estos tipos de objetos, habr tambin un
editor de cdigo en el que se puede modificar el cdigo
directamente.
Para webs, existen editores especializados para HTML y
archivos JSP, frames sets, y hojas de estilo.

Datawindow:

Las aplicaciones que se construyen giran alrededor de la


organizacin de los datos. Con Power Builder se puede
definir objetos DataWindow para recuperar, mostrar y para
las operaciones de actualizacin de datos.
Aqu nos encontramos con dos connotaciones el control
Data Window y el objeto Data Window. El segundo ser
de gran uso para enlazar los requerimientos del control
data Window, el cual se crea desde este cono.

Target Application:

Objeto almacenado en una biblioteca


La coleccin de objetos que constituyen la aplicacin. La
aplicacin define una o ms bibliotecas en la cual se
almacenan todos los objetos relacionados.
En PowerBuilder, siempre se desarrolla en el contexto de
la aplicacin. Se puede asociar otros objetos, tales como
ventanas. menes, etc., con la aplicacin.
La definicin del objeto aplicacin est constituida por
varios componentes: Definicin de la aplicacin.

Template Application:

Se usa el wizard del target Template Application para crear


una plantilla de aplicaciones basada en PowerScript. Se
puede usar esta plantilla para iniciar la aplicacin, en lugar
de tener que crear todos los objetos desde el principio. Si
la aplicacin requiere una conexin a un EAServer o a una
base de datos, el wizard automticamente crea un objeto
Conection.
En el wizard Template Application, se puede seleccionar
uno de los dos tipos de aplicacin : MDI Application y SDI
Application.

Los MDI Application:

Si se selecciona MDI Application with MicroHelp en el


wizard Template Application, el wizard automticamente
generar la interfaz y codificacin para una aplicacin
bsica Multiple Document Interface (MDI) que incluye estos
objetos:
Application object
Frame window
Frame men
Base sheet window
Sheet men
Sheet men service object
Sheet windows
About window
Toolbar window
Connection service object (si la conexin a la base de
datos es necesaria o al EAServer)
Project object (optional; puede ser creada despus, usando
el Wizard del objeto Project)
Se puede ejecutar la aplicacin MDI inmediatamente
presionando el botn Run en el PowerBar.

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin
Se pueden abrir hojas, mostrar la ventana About, y
seleccionar items desde el men. Se puede entonces usar
la aplicacin como un punto de inicio para continuar el
desarrollo de la aplicacin MDI. El To-Do List puede
ayudarte a hacer esto.

Los SDI Application:

En el wizard Template Application, se puede tambin


seleccionar para crear un SDI application. Un SDI
application tiene una sola ventana principal con un men y
una ventana de Acerca de. Si la aplicacin requiere una
conexin a una base de datos, el wizard automticamente
crea un objeto Connection.

Funciones:

Power Script proporciona un muy variado grupo de


funciones pre definidas que se usan para actuar sobre los
objetos y controles de una aplicacin. Hay funciones para
abrir una ventana, cerrar la misma, habilitar un botn,
recuperar datos, actualizar una base de datos as por el
estilo.
Se puede adems definir funciones propias para que
procesen de manera particular una aplicacin.
Puede utilizar las funciones de PowerScript para:

Manipular objetos, nmeros y texto

Procesar fechas y horas

Imprimir informes

Ejecutar Intercambio Dinmico de Datos (DDE)

Manipular archivos de texto para entrada y salida

Funciones Predefinidas:

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Painters de PowerBuilder.

Painters

Uso

Application

Editar el objeto aplicacin. Tambin especificamos aqu la lista de las pbl que van a
componer nuestra aplicacin. Seleccionar el cono de la aplicacin.

Project

Generar los ejecutables una vez que la aplicacin est terminada.

Window

Diseo visual de las ventanas y tambin donde incluiremos una parte muy importante
del cdigo de la aplicacin.

User Object

Diseo de los objetos reutilizables. Mtodos reutilizables o conjuntos de controles,


siendo estos visuales o no-visuales

Menu

Generacin de los mens que despus podremos asociar a una o ms ventanas.

Structure

Estructuras de datos (del tipo utilizado en el lenguaje C) globales a la aplicacin.

Function

Funciones globales a la aplicacin.

Datawindow

Diseo de los formularios asociados a una consulta SQL en sus diversos formatos
(Monoregistro, tabular, hoja de clculo, etc). Punto fuerte de PowerBuilder.

Query

Consultas SQL que guardamos para usar varias veces (generalmente poco utilizado).

Pipeline

Traspaso de datos desde una tabla a otra en la misma base de datos o en dos
diferentes. Muy til, ya que ahorra teclear sentencias SQL muy complejas. Podemos
utilizarlos manualmente para hacer traspasos de datos de una aplicacin antigua a
otra nueva o llamarlo desde un programa PowerBuilder que realice traspasos
automticos.

Database

Diseo de la base de datos. Podemos prescindir de este painter y utilizar las


herramientas propias de la base de datos si queremos.

Library

Crear libreras, mover objetos de una a otra, borrar objetos, recompilar el cdigo
cuando ha habido modificaciones en herencias intermedias son algunas de la
funciones de este painter.

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Datawindow.
Los datawindow son como controles limitados a los datos, incorporan interfaces de usuario
tales como editores de una lnea y campos de texto estticos. Pero a diferencia de stos
los DataWindows son tratados como un solo objeto.
En algunos casos un Datawindow permite toda la sintaxis SQL, en otros casos no toda.
El pintor de datos windows tiene realmente tres vistas principales.
La primera (el SQL Painter), es donde se define el dato fuente para el
datawindows, as como su estilo de presentacin.
La segunda ventana (diseador de DataWindows), es donde se delinea su
formato usando argumentos de informe; hay 4 argumentos en la mayora de los
DataWindows, encabezamiento, detalle, pie y resumen.
La ltima ventana es la de (vista preliminar), donde se puede observar el
DataWindows con los datos recuperados desde el modelo de datos.
Para abrir el Pintor de DataWindows, se realizan los siguientes pasos:
1. Se pulsa el botn New de la powerBar para abrir el cuadro de dilogo general y
en la solapa DataWindows se selecciona el tipo de datawindow.
2. Se puede crear un nuevo DataWindows o modificar uno ya existente
3. En el cuadro de dilogo New DataWindows se seleccciona el DataSource y
presentation Style.
SQL Painter.
Una vez que se ha escogido el tipo de consulta que se desea hacer y el estilo de
presentacin es hora de seleccionar las tablas que se desea que sean parte del control
DataWindows que se est creando.
Despus de seleccionar las tablas de la consulta se deben escoger los campos de esas
tablas que aparecern en el resultado del DataWindows. Se puede adems escoger aqu
el criterio de seleccin de los campos.
Diseador de DataWindows: (es diferente dependiendo del DataSource escogido).
Una vez que sea pulsado OK, se abre el diseador de DataWindows, internamente ya se
tiene el estilo de presentacin que previamente se ha escogido; usando el ratn,
simplemente hay que arrastrar los campos adnde se quiera que aparezcan dentro del
DataWindows.
Una vez que se han hecho los ajustes necesarios dentro del diseador, es tiempo de
guardar el trabajo; para ello se pulsa dos veces en el cuadro de control del men del pintor,
PowerBuilder preguntar si efectivamente se desea guardar el trabajo realizado.
NOTA: para mostrar solo un detalle a la vez, se debe correr hacia abajo las franjas de los
diferentes componentes (detail, summary, etc.).
Se puede, en cualquier momento hacer un preview para ver cmo va quedando el
resultado de la clusula select que se est diseando.
Adems se puede, en el pintor de SQL, mediante el men: Design Convert to syntax,
ver o modificar, el cdigo de la consulta que se tiene hasta el momento. Para volver al
modo grfico se escoge Design convert to graphics.
Columnas para la clusula Select escogida
Si se est en el diseador de DataWindows en el modo grfico, bajo las tablas que se
tengan escogidas, aparecen varias lengetas propias de SQL, que se describen ahora:
Sort: permite hacer que la consulta aparezca en forma ordenada. Para ello, se escoge
la columna por la que se quiere hacer el ordenamiento y se traslada hacia el campo que
aparece a la mano derecha de las mismas; una vez aqu se puede escoger si el
ordenamiento se desea hacer ascendente o descendentemente.
Where: la condicin cul se desea que cumpla la consulta, se pueden usar adems de
los conocidos Like, between, is, etc, operadores de tipo relacional. Varias condiciones
pueden estar unidas mediante operadores lgicos.

Prog. Rodrigo Velzquez

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Es aqu donde podemos pasar parmetros trados del programa al DataWindow, los
agregamos mediante el men: Design Retrieval Arguments...; de esta forma
establecemos un vnculo entre el DataWindow y el programa de aplicacin.
Los agregamos a la clusula where como se agregan variables anfitrionas, es decir, se les
antepone :. Para eliminar argumentos se escoge de nuevo Design Retrieval
Arguments... y se elimina el argumento. Se puede eliminar una condicin completa,
escogiendo el botn derecho del mouse y clicando en Clear.
Group: para agrupamientos
Having: condicin del agrupamiento.
Compute: son columnas calculadas para la consulta que se est haciendo.
Sintax: es el cdigo de la consulta segn hasta el momento. (Desde aqu no se puede
modificar)
Filtros
Se definen mediante Rows Filter... Lo que hacen es ocultar las columnas que cumplan
con la condicin del filtro, pero no las elimina del DataWindow, por tanto no reducen el
trfico en la red.
NOTA: una vez que se da por OK, en esta parte se entra al diseo del DataWindows,
Se puede modificar la presentacin de los datos (pero no modificar el estilo de
presentacin, pues ste slo se puede modificar con cdigo en RunTime), o incluso se
puede modificar el select que se haya escogido, mediante el uso del cono SQL de la
PowerBar.
Propiedades de actualizacin de un objeto Datawindows.
Para ingresar a las propiedades de actualizacin de un DataWindows se debe escoger de
la PowerBar: Rows | Update Properties...
Ya una vez aqu, en un Datawindows, slo se puede actualizar una tabla a la vez, debido a
que probablemente se tengan seleccionado datos de diversas tablas, Power Builder no
sabe cul es la que hay que actualizar.
Lo primero es activar Allow Updates para que los usuarios de la aplicacin puedan
actualizar este DataWindow. Luego se selecciona la tabla que se desea actualizar Table
to Update
A continuacin se pulsa sobre las columnas que se quieren actualizar de la tabla
seleccionada.
Tambin se pueden elegir opciones para la clusula Where que el DataWindow utilizar en
la actualizaciones o cancelaciones del mismo. Estas opciones son importantes en el
supuesto de mltiples usuarios, que pueden estar actualizando una misma tabla al mismo
tiempo. Pulsando Key and Updatable columns, o bien Key and modified columns se
ampla la proteccin un usuario no puede escribir sobre una tabla que otro est
actualizando
En el Group de key modification se dispone de opciones de actualizar Delete then Insert
o Update para cambiar el valor de la clave principal. En este grupo si se escoge delete
then insert Power Builder primero eliminar la tupla a la que se refiere y posteriormente
har un insert con los nuevos valores insertados; si bien hay que considerar el efecto de
actualizaciones y cancelaciones en cascada cuando se toma esta opcin. Usar Update
para cambiar la clave puede ser ms rpido para actualizar, pero puede ser ms lento para
el proceso secuencial subsiguiente.
Finalmente

Prog. Rodrigo Velzquez

Se toma la clave principal (clave nica) para la tabla que se


est actualizando. Si se ha definido una clave principal
para la tabla actualizable, se pulsa primary Key y se deja
a Power Builder que tome por s mismo las columnas de
clave principal.
Pulsando OK se vuelve al pintor de DataWindow; una vez
listo todo el proceso de diseo del DataWindow, ste
puede ser guardado.

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Data sources.
Quick select: solo permite relacionar tablas que tenga relacin directa; o sea, por
medio de llaves forneas
SQL select: permite cualquier tipo de relacin entre tablas incluso para aquellas en las
que no existe ninguna relacin
Queries: es muy parecido al SQL select, la nica diferencia entre los dos es que se
pueden emplear queries
como una fuente de datos predefinida para distintos
DataWindows en lugar de definir el SQL select en cada DataWindows. Una Query es
como un SQL select reutilizable que se emplea para construir muchos DataWindows. Un
DataWindows se puede incluso guardar como una Query en el pintor SQL dentro del pintor
de DataWindows.
External: cuando se usan fuentes de datosexternas para un Datawindows,
generalmente se le da contenido a ste por medio de PowerScript, toda vez que hay un
SQL select asociado a l. Cuando se empieza la construccin de un Datawindows usando
una fuente de datos externa, se abre el cuadro de dilogo Result Set Description, se
definen ah los campos y los que son su tipo y su longitud, luego se contina la
construccin como si se estuviera un Quick Select o un SQL select como fuente de datos.
Los Datawindows con fuentes de datos externas son tiles cuando se necesita mostrar o
introducir datos que no estn almacenados en una base de datos relacional
Stored procedure: son extremadamente populares para los DataWindows, que
pueden ser usados si el sistema de gestin contiene la base de datos que los soporta.
Algunas bases de datos tienen procedimientos almacenados altamente eficientes. Con
frecuencia se puede mejorar la velocidad de la aplicacin situando algunas de las
sentencias SQL en estos procedimientos almacenados. Se pueden usar Procedimientos
almacenados dentro de DataWindows, y stos lo que devuelven es una consulta Select.
Estilos de presentacin.
Freeform: se usa frecuentemente para las
ventanas de entrada de datos. Normalmente slo se
muestra una fila a la vez y no tiene informacin de
encabezamiento ni de resumen. Es un DataWindows
sin formato (Sin formato = Freeform).
Este tipo de DataWindows se usa para tablas nicas
o entradas de datos de una sola lnea
Tabular: muestra tpicamente varias filas de
informacin a la vez. Es normal que este estilo tenga
un segmento de encabezamiento que contenga los
ttulos de las columnas (en vez de etiquetas en el segmentos de detalle, como en el caso
de los estilo libre) tambin suele tener un pie de pgina y filas de resumen al final del
informe. Una factura es un excelente ejemplo de un DataWindows tabular, ya que muestra
muchas filas a la vez (lneas de la factura) y tiene informacin de encabezamiento
(nombres de clientes, compaas, fecha, etc.) as como una informacin de resumen
(impuestos, descuentos, total.). con este estilo de presentacin los ttulos de columnas
aparecen en el segmento de encabezamiento, mientras que las columnas aparecen en el
detalle. La nica diferencia entre un DataWindows de estilo tablar y otro sin estilo es la
forma de disponer los objetos (=columnas y texto) al crearlos.
Compuesto: no se puede usar para mantenimiento
CrossTab: se puede usar para mantenimiento, la representacin es tipo matriz
Graph: tipo grfico
Group: no se puede usar para mantenimientos y se usa para agrupamientos
Label:
N-Up: si se puede usar para mantenimientos y aprovecha al mximo el papel cuando
se pasa a impresin.
Ole: para incrustados
RTF: para formatos enriquecidos.

Prog. Rodrigo Velzquez

10

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Objetos informatizados (campos calculados): los DataWindows se usan para crear


columnas que no estn presentes en la tabla pero que se requieren para algn proceso o
manipulacin por parte del usuario. En el PainterBar est representado por un smbolo de
+/= (+/=), una vez que se ha escogido el objeto informatizado se debe escoger la parte del
DataWindow en donde se quiere que aparezca el objeto y, una vez hecho esto, aparece la
pgina de propiedades Compute Object y en ella se puede introducir una expresin para
el objeto informatizado, como ya se detallar. Tambin se puede escoger el smbolo de
sumatoria (= ) pero aqu antes de escoger el objeto informatizado, se debe escoger
alguna columna que sirva de referencia a la funcin que vamos a crear. Por defecto se
crea un sum() para todas las columnas escogidas y la pone como summary sobre el
Datawindows, pero luego de esto se puede situar en cualquier lugar, as como modificar la
expresin que dar como resultado.
Para modificar la expresin se debe escoger las propiedades del objeto informatizado y
despus modificar el texto Expresin por la expresin requerida. Pulsando el botn
More en esa misma lengeta, se pueden escoger una gran cantidad de funciones
predefinidas para dar formato a la expresin, solo hay que tener cuidado pues el formato
de esas funciones difiere un poco de lo usual.
Por ejemplo si para validar un If lo hacemos usualmente as: If <cond> then; en ese tipo
de funciones el formato es If (cond, true, false); donde cond representa la condicin
propiamente dicha con su consecuente posible resultado, true especifica el resultado a
mostrar si se cumple la condicin y false el resultado a mostrar si no se cumple.
Objeto DataWindows Control DataWindows.
A veces existe confusin sobre la terminologa cuando se habla de DataWindows. Desde
el inicio de este documento se ha mencionado la diferencia entre el objeto DataWindows
(todos los que se crean desde el cono de la PinterBar) y el control DataWindows. La lista
siguiente puede aclarar alguna ambiguedad del tema.
Un objeto DataWindows es la que se pinta usando el pintor de
DataWindows. No son visibles estos objetos hasta que se han asociado a un
control de ventana. Se los conoce con el nombre genrico de DataWindows
(por ejemplo: crear un DataWindow para la entrada de datos de una tabla
de artculos)
Un control de DataWindows es un control de ventana, al que algunas veces
se le llama DataWindow (por ejemplo, aadir algn PowerScript al suceso
de DataWindow ItemChanged). Estos controles no son tiles salvo que estn
asociados a un objeto DataWindow.
Un objeto de usuario de DataWindow es un control de DataWindow
antecedente creado en el pintor de objetos de usuario. Estos objetos tambin
son conocidos como DataWindows (por ejemplo, se necesita heredar un
DataWindows antecedente) o controles DataWindows
Los objetos dataWindows muestran texto, figuras, columnas, etc. Dentro del
pintor de DataWindow estos objetos son tambin objetos dentro de un
DataWindow (por ejemplo, aadir un objeto informatizado a un
Datawindow en particular)
Asociacin de Controles DataWindow con ObjetosDataWindow.
En los trminos ms simples se puede crear una ventana y luego dentro de ella ir creando
controles DataWindow y asociarles a cada control un objeto segn sea necesario.
Opcionalmente se puede definir un DataWindow definido por el usuario de tipo objeto y
asociarle a cada instancia de este tipo de control un objeto DataWindow.
NOTA: el sufijo para el objeto DataWindow es solamente D y para el control
DataWindow se usa DW.

Prog. Rodrigo Velzquez

11

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Editar campos del DataWindow.


Para definir o revisar un estilo de edicin, basta con pulsar doble click sobre la columna del
DataWindow que se quiere editar, luego ah se elige la ficha cual se quiere editar, existen
varias entre las que podemos citar:
1. Edit: dentro de las propiedades ms
importantes que podemos encontrar aqu,
est STYLE, donde se define el formato
para la columna, por defecto es EDIT , que
es un campo SLE, adems entre los ms
destacables podemos citar el DDDW, DDLB;
ambos se discutirn la siguiente seccin de
DataWindows desplegables.
2. Format: (= utilizacin de formatos de
muestra), estos formatos son similares a los
EditMask, la principal diferencia es que los formatos de muestra cambian la
forma en que el valor de una columna se muestra en un informe, mientras que
los EditMask cambian la forma en que los datos se introducen en el formulario.
Si se est usando un formato de cadena hay que usar el signo @ para que se
pueda mostrar cualquier carcter. En una columna numrica se usa el signo
#; en formatos numricos tambin se pueden introducir formatos en los que
los nmeros negativos aparezcan en rojo: e.g: #,##0.00; [red] #,##0.00. cuando
se introducen los datos en una columna estos no cambian hasta que el campo
pierde la atencin.
3. Validation: (utilizacin de reglas de validacin): evitan que una columna
pierda el foco si el valor introducido no es adecuado. El texto introducido en la
columna se recupera con la funcin gettext(), de ah en adelante se puede
hacer la validacin necesaria y mostrar un mensaje en caso que se produzca
un error a la regla
4. Expressions: (empleo de expresiones condicionales) supongamos que
se desea cambiar el color de la columna si el valor en ella es menor de 10 por
ejemplo. Para ello se pulsa 2 veces sobre la propiedad color, con lo cual
aparece el cuadro de dilogo Modify expression, donde se introduce la
validacin correspondiente, que en este caso podra ser: if (nombre_columna <
10, rgb(255,0,0), 0)
rgb red, green, blue
5. Las dems lenguetas son comunes a todos los controles: general, font,
pointer, etc.

Prog. Rodrigo Velzquez

12

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Lenguaje PowerScript.
En powerBuilder se escriben scripts usando el lenguaje PowerScript, el lenguaje de
PowerBuilder. Los scripts consisten en comandos, funciones y sentencias que forman y
dan una estructura especfica a los procedimientos de cada evento.
Variables.
La mayora de los lenguajes de 4GL soportan el concepto de mbito de las variables. El
mbito describe dnde se puede usar la variable.
Este concepto es importante. El mbito permite a un analista/programador escribir una
funcin o suceso sin escribir sobre las variables en otra zona de la aplicacin, incluso si las
variables tienen el mismo nombre.
Hay 3 niveles de mbito en Power Builder:
1. mbito Local: las variables de mbito local (o simplemente variables
locales), son variables que se declaran en el script. Muchas variables
definidas por el analista/programador que se emplean en el script son
variables locales, que solo existen en el interior del suceso o funcin en
la que estn definidas. El valor que adquiera la variable se pierde una
vez que salga del suceso o funcin.
2. mbito Compartido: con una aplicacin de tipo MDI se puede abrir ms
de una ventana del mismo tipo (en otras palabras, se pueden abrir dos
ventanas w_item al mismo tiempo). Estas versiones mltiples de la
misma ventana se llaman rplicas de esa ventana. Las variables
compartidas son variables cuyas funciones, sucesos controles de cada
rplica de un objeto pueden compartirse.
3. mbito Global: la aplicacin completa puede acceder a las variables
globales. Estas variables nunca se salen de mbito hasta que se cierra
la aplicacin.
4. mbito Instancia: Una variable de instancia puede ser:
Nivel de aplicacin. Utilizado slo en los scripts del objeto aplicacin
Nivel de men. Utilizado slo en los scripts para el men en el cual
fue declarada y sus tems dentro del men
Nivel de ventana. Utilizado slo en los scripts para la ventana en la
fue declarada y los controles de dicha ventana
Nivel de Objeto de Usuario. Utilizado slo en los scripts para el objeto
de usuario en el cual fue declarado.
No se deberan usar variables globales si se emplea otro tipo de variables, usndolas se
viola el principio de encapsulacin; en otras palabras, si se establece una variable global
en un suceso, otro suceso la puede reinicializar sin que el primero se llegue a dar cuenta
de ello.
La forma de declarar variables de tipo local en un determinado evento es el siguiente:
Tipo_de_dato nombre_variable{ [nmero de elementos] }
Cuando se abre la ventana de script sea de una ventana o de un objeto de ventana, aparte
del rea de trabajo, existe, al realizar click derecho con el mouse, un sub-men de pegado
especial, con las cuales se pueden pegar rpidamente variables y objetos de uso frecuente
al codificar los scripts.
Paste instance: ese sub-men despliega todas las declaraciones de variable
de instancia. Con una simple pulsacin sobre una variable de rplica se puede
pegar en el script
Paste global: este sub-men permite pegar en el texto cualquier variable de
mbito global.
Paste object: este sub-men permite pegar objetos que estn relacionados con
el script que se est escribiendo; por ejemplo botones de comando, list boxes,
etc.
Paste Argument.

Prog. Rodrigo Velzquez

13

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Select event: da la opcin de seleccionar un evento del objeto al que se le


desea agregar cdigo. Cuando un evento de un objeto especfico posee cdigo,
aparece una marca sobre la esquina izquierda del evento.

Comentarios.
En PB existen dos formas de agregar comentarios a una aplicacin.
// para un comentario de una lnea
/* lineas de comentarios */ para comentarios de ms de una lnea
Dentro del Script Painter, existen tres sub-mens que son muy funcionales a la hora de
agregar cdigo a la aplicacin; los describimos a continuacin:
1. Paste function: permite agregar (cada vez) uno de los tres tipos de funciones
que PB soporta.
Built-in: cualquiera de las funciones que tiene predefinidas PB
User-defined: alguna funcin definida por el programador
External: alguna funcin externa a Power Builder y que se ha extrado hasta
aqu por medio de una librera asociada a la aplicacin
2. Paste SQL: para declarar por medio de un ayudante alguna consulta sobre un
modelo de datos
3. Paste statement: para pegar en el script cualquier sentencia ya predefinida de
PB, como un ciclo una sentencia If then o if then else, etc.

Como se puede notar con estas herramientas prcticamente podemos generar cdigo PB
sin conocer la estructura de su sintaxis.
Algunos conos tiles para este momento:
Select all: selecciona todo el texto que se encuentre en el script
Comment: pone como comentario todo lo que se encuentre seleccionado. Si no
hay texto seleccionado pone como comentario el cdigo de la lnea en la que se
encuentre el cursor
UnComment: quita la seleccin hecha anteriormente.
Find: para buscar algn texto.
Find next: busca la siguiente ocurrencia
Replace: reemplaza algn texto seleccionado por otro que se proporcione
Compile: compila la ventana actual
Select object: selecciona un objeto en particular
Browse Object: determina las caractersticas de un objeto que se encuentre
seleccionado.
Return: vuelve al formulario.

Prog. Rodrigo Velzquez

14

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Manipulacin de datos usando DataWindows.


1. Iniciar
Causa que un control Datawindow o almacn de datos use un objeto de transaccin que el
programador le indique. El objeto transaccin provee la informacin necesaria para
comunicarse con la base de datos.
La sintxis que se usa para iniciar es por lo general:
nombre_dw.SetTansobject(nombre_transaccin); lo cual se indica en el evento open
de la ventana donde est el control DataWindow; y lo que causa, es como se dijo que se
active el objeto transaccin con relacin al control DataWindow.
2. Recuperacin de datos en el DataWindows
Al usar la funcin Retrieve() de DataWindow se limpia el bfer de este y se edita un SQL
Select de Datawindow para la base de datos. El conjunto de resultados retornados desde
la base de datos se almacena sobre el cliente en el bfer de DataWindow.
Por ejemplo si se declarar un evento de usuario llamado ue_retrieve en un control
DataWindow el cdigo podra ser como sigue:
This . retrieve( )
This . setfocus( )
Si por el contrario se deseara llamar la funcin retrieve desde un botn de comando por
ejemplo se podra usar:
Nombre_dw.retrieve(); si se tuvieran argumentos definidos cuando se dise el
DataWindow en la seccin Retreval Arguments..., los mismos se indican como argumentos
de la funcin nombre_dw.retrieve(lista_argumentos[,...])
Si se incluye un argumento para la recuperacin y posteriormente se desean hacer
actualizaciones sobre el resultado devuelto no es necesario indicar el where como
argumento otra vez, pues el data window trabaja con el resultado devuelto por el evento de
recuperacin.
NOTA: para modificar algn registro obtenido por el datawindow se modifica su valor
directamente del resultado devuelto por el retrieve(). Luego en el evento que se tenga
dispuesto para la actualizacin de la base de datos los cambios se harn permanentes.
3. Insercin de filas en un DataWindow
La funcin InsertRow( ) de DataWindow aade una nueva fila al DataWindow antes de la
fila especificada, si sta es cero, la nueva fila se aade al final del conjunto de resultado.
Un suceso de definicin de usuario tal como ue_insertrow, podra insertar una fila
en el DataWindow con la llamada de funcin Insertrow(0). Se podra usar este mtodo
para insertar una nueva lnea dentro de una factura, con un cdigo como este:
Long ll_row
Ll_row = This . InsertRow(0)
This . ScrollToRow(ll_row)
This . SetColumn(1)
This . Setfocus()
Si se desea hacer la llamada a la funcin InsertRow, dentro de un botn de comando el
cdigo a introducir sera algo como este:
Long ll_row
Ll_row = nombre_dw. InsertRow(0)
Nombre_dw. ScrollToRow(ll_row)
Nombre_dw. SetColumn(1)
Nombre_dw. Setfocus()
Si la funcin InsertRow se llama sin ninguna otra funcin, el usuario debe hacer el scroll
hasta la fila que PowerBuider disponga para tal efecto, es por ello que se usan las
funciones scrollToRow, SetColumn, y SetFocus().

Prog. Rodrigo Velzquez

15

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

4. Cancelacin de filas en un DataWindow


Es importante confirmar una peticin antes de cancelar una fila. Un cdigo como el que
sigue sobre un evento definido por el usuario que podra llamarse ue_deleterow, sobre la
ventana que contiene el DataWindow
Int li_rc
Li_rc = messaggeBox(Delete requested, &
Are you sure you want to delete row + &
string(This.getRow()) + ?, &
StopSign!, yesno!, 2)
If li_rc = 1 then
This . DeleteRow(0)
End if
If this . Rowcount() = 0 then
This . event ue_insertRow()
End if
Setfocus(This)
Si se desea llamar la funcin deleteRow() desde un botn de comando la sintxis puede
ser como sigue:
Nombre_dw.deleteRow(0), para eliminar la fila actual, o se especifica cual es la
lnea que se desea eliminar.

Prog. Rodrigo Velzquez

16

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Conexin con los datos.


El uso de esta herramienta de desarrollo de software est destinada hacia el lenguaje de
manipulacin (DML) en cerca de un 80%. Por lo que su interaccin con motores de bases
de datos es muy extensa; principalmente a travs del objeto Data Windows que
posteriormente se discutir ampliamente.
Un detalle importante en relacin a los S I es que, siempre que se pueda las reglas del
negocio deben estar presentes en la definicin de los modelos de datos, para de esta
manera hacer ms giles las modificaciones que a futuro se le tengan que hacer a los S I
de la organizacin.
Ahora bien, con relacin a los motores de bases de datos, es importante destacar que un
motor puede ser accesado desde una herramienta de diseo como lo es Power Builder de
dos formas:
Driver nativos: aqu se necesita que tanto el fabricante del
DBMS como el desarrollador de la herramienta se pongan en
contacto para incluir en la herramienta de desarrollo los
drivers nativos del Sistema Gestor. Esto tiene la ventaja que
entonces al sistema gestor le sern explotadas casi el 100%
de sus bondades.
Driver ODBC: por otra parte, si no hay contacto entre los
proveedores, se puede hacer uso del sistema Gestor
mediante conexiones ODBC (Open Data Base Conection
Conexiones Abiertas de Base de Datos-), la deficiencia aqu
es que no se aprovecha el 100% tanto de la herramienta de
desarrollo como del sistema gestor.
Ventajas / Desventajas de ODBC.
1. ODBC le permite a tu aplicacin conectarse a muchas base de datos a travs de
una interfaz estndar
2. Cualquier base de datos que tiene un driver ODBC puede ser accesado a travs
de una aplicacin PowerBuilder
3. No todas las caractersticas de las bases de datos son implementadas.
4. La performance de acceso a los datos puede degradarse

Nativo
Driver

SQL

DDL
DML
DCL

ODBC
Toda aplicacin en PowerBuilder est respaldada en al menos una o ms libreras (.pbl),
por lo que se podra afirmar que una aplicacin es en realidad un conjunto de una o ms
libreras.
// Ejemplo de script de conexin a los datos
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False // AutoCommit es puesto a false
SQLCA.DBParm =
"ConnectString='DSN=sybhealth;UID=sybhealth;PWD=sybhealth'"
Connect Using SQLCA; // Conectarse a la base de datos
// Inserta una fila en la tabla patient.
INSERT INTO PATIENT (patient_ID,fist_name,last_name)
VALUES ( 1025,Christopher,Columbus );
if SQLCA.sqlcode = 0 then
COMMIT using SQLCA;
Else
ROLLBACK USING SQLCA;
end if
// Commit cambia y desconecta desde la base de datos.
DISCONNECT USING SQLCA;

Prog. Rodrigo Velzquez

17

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Variables de Transaccin.
En la introduccin al inicio de este manual, y en la seccin anterior ya se ha abordado el
tema de las variables de transaccin; al menos de la que Power builder trae como Default
(SQLCA). La Structured Query Language Comunication Area rea de Comunicacin del
Lenguaje Estructurado de Consultas-, es suficiente si nuestra aplicacin solo necesita
comunicarse con una sola base de datos.
En la tabla siguiente se presentan las propiedades de los objetos de transaccin
retornados por la base de datos.
ATRIBUTO
TIPO DE DATO DESCRIPCIN
SqlCode
Largo
El xito o fallo del cdigo de la operacin SQL ms
reciente:
0 = xito
100 = no retorna resultado (ms de un registro)
- 1 = Error (se usa SQLDBCode para ver detalles)
SqlNRows
Largo
El nmero de filas afectadas
SQLDBCode
Largo
El cdigo de error del vendedor de la base de datos
SQLErrText
Cadena
El mensaje de error del vendedor de la base de
datos
SQLReturnData Cadena
El dato de retorno especfico de DBMS
Como ya se he dicho, si nuestra aplicacin solo necesita conectarse a una base de datos
con el Transaction que por default trae Power Builder es suficiente (SQLCA); pero en los
casos en que sea necesario que nuestras aplicaciones interacten con ms de una base
de datos. El caso tpico aqu es el ejemplo de los agentes de ventas; quienes portan su
propia base de datos en su PC y al final del da pasan las transacciones al servidor de la
organizacin; aqu se debe (al final del da por ejemplo) estar conectado al mismo tiempo a
la base de datos centralizada y la personal.
Ya aqu estamos en necesidad de definir al menos una variable de transaccin ms aparte
del SQLCA. Incluso podemos definir otra transaction diferente si no queremos usar el
SQLCA, pero en realidad carece de sentido pues SQLCA trae ya implcito lo necesario
para comunicarse con SQL.
Definicin del transaction (mediante cdigo)

Se define la variable de

Transaction MiTransaction
transaccin
MiTransaction = CREATE transaction
MiTransaction.DBMS = 'ODBC' ...
una vez creada hay que definir las variables
de transaccin de igual forma que como se hace con la SQLCA
Eliminacin de la transaction
Una vez que la transaction ha cumplido con su objetivo, se debe destruir la variable
de transaccin para liberar recursos del sistema.
La eliminacin de la variable de transaccin se hace mediante el comando
DESTROY.
Ejemplo:
DESTROY MiTransaction
Orden Lgico:
Para trabajar con una variable de transaccin que no sea la SQLCA, se debe seguir un
orden especfico a fin de no ocasionar problemas al usuario en tiempo de ejecucin:
Pasos:
1. Definir la variable de transaccin
2. Conectarse al sistema de gestin
3. Ejecutar el cdigo necesario
4. Desconectarse del sistema de gestin
5. Destruir el transaction que se haya definido

Prog. Rodrigo Velzquez

18

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Aplicacin.
Las aplicaciones son implementadas a travs de objetos Application, los que presentan
propiedades, evento y funciones (mtodos) que sern revisados. Una aplicacin es un
objeto no visual, desde el que se invocan a las interfaces (ventanas) que sern parte de
una aplicacin adems de poder declarar variables globales, usar objetos de usuario, etc.
Propiedades de una Aplicacin.
Las propiedades de una aplicacin son las caractersticas globales de la aplicacin como
por ejemplo las fuentes predeterminadas de las letras para las cajas de texto, etiquetas,
etc. Tambin se puede definir el icono que tendr la aplicacin cuando se haga el archivo
ejecutable de sta.
PROPIEDADES PREDEFINIDAS EN POWER BUILDER
EVENTO
DESCRIPCION
AppName
De slo lectura, es el nombre del objeto aplicacin que se indica al
momento de grabar, luego de crearlo.
DisplayName
De slo lectura, es el nombre de la aplicacin que es mostrada por
otras aplicaciones al utilizar la aplicacin.
DWMessage Title
Es un ttulo para las cajas de mensaje que se apreciar en la barra
de ttulo de las mismas.

PROPIEDADES ADICIONALES.
Son aquellas como fuente de los textos(Text Font),
fuente de las columnas (Column font), Fuente de
etiquetas (Label font), fuente de las cabeceras
(Header Font), Icono (Icon) y tipos de variables
(Variable Types).
Fuente de los textos (Text Font) permite cambiar el
tipo de fuente de windows en cuanto a tipo de letra,
estilo de la letra (Font styles) como Regular
(Normal), Italic (Itlicas)m Bold (negritas) y Bold
Italic (en negrita e Italic), tamao (Size), color de la
letra (Text Color), y color de fondo de letra
(Background).
EVENTOS DE UNA APLICACIN.
Los eventos son todos aquellos sucesos que le
ocurren a la aplicacin y a los que se puede asignar
un script para que se realicen alguna accin cada
vez que ocurra el suceso.

Eventos Pre-Definidos.
EVENTO
Close
ConnectionBegin
ConnectionEnd
Idle

Open
SystemError

Prog. Rodrigo Velzquez

DESCRIPCIN
Ocurre cada vez que se termina la ejecucin de una aplicacin.
Obsoleto (usado para conexiones distribuidas con Power
Builder)
Obsoleto (usado para conexiones distribuidas con Power
Builder)
Cuando la funcin Idle ha sido llamada en un script de una
aplicacin y el nmero de segundos que han transcurrido sin
que el teclado o el ratn hayan sido usados.
Ocurre cada vez que se ejecuta una aplicacin.
Cuando un error crtico ocurre en tiempo de ejecucin (como
tratar de abrir una aplicacin no existente). Si no se pone un
script para ste evento Power Builder muestra un mensaje con
el nmero de error y mensaje de error que ha ocurrido. Puede
usarse para personalizar los errores.

19

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

A continuacin vemos como crear una nueva aplicacin.


Toda nueva aplicacin debe estar contenida en un Workspace (espacio de trabajo), por lo
que antes debemos crear el mismo.
Crear un Workspace
En el men de Power Builder elija FILE y luego NEW aparecer la siguiente ventana:

Despus aparecer:

A la nueva carpeta le daremos de nombre APPPB (referencia a lo que haremos en


nuestra aplicacin) y entramos en ella:
Dentro de dicha carpeta digitamos el nombre del archivo de nuestra aplicacin. (Ejemplo:
mi aplicacin) y finalmente click en Guardar.
Con esto hemos creado el WorkSpace Mi aplicacin, lo que significa que el archivo
WorkSpace se llama: mi aplicacin.pbw

Prog. Rodrigo Velzquez

20

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Crear una Aplicacin.


D click derecho en el Workspace Mi
aplicacin y elija la opcin New...

Pulsar el
New

sub-men

Luego aparecer la ventana con las siguientes opciones:

Application: Para una nueva aplicacin.


Template Application: Para crear una nueva aplicacin que viene con objetos
preconstruidos, til para quienes ya conocen Power Builder.
Existing Application: Para incorporar una aplicacin que existe ya sea que est
construida en una versin anterior de Power Builder o no.
EAServer Component: Para crear una aplicacin que use componentes de Power
Builder usando el Servidor EASserver
COM/MTS: Para crear una aplicacin que use componentes Microsoft.
Automation Server: Para crear una aplicacin que use una aplicacin de Windows
como servidor.

De todas ellas elegiremos la primera opcin: Template Application.

Prog. Rodrigo Velzquez

21

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Le asignamos un nombre a nuestra primera aplicacin. Por ejemplo aplicacionpw.

Despliegue el rbol del sistema (System Tree) y se muestra de la siguiente manera

Donde observes este smbolo


da click en l para
desplegar una rama del rbol. Cuando una rama est
desplegada le antecede el siguiente smbolo
Realizamos el desplegado hasta ver lo mismo que en la
figura. Para entrar al cdigo y propiedades de esta nueva
aplicacin da click derecho del mouse en la aplicacin
aplicacionpw y a continuacin click en Edit.

Prog. Rodrigo Velzquez

22

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Creacin de Window (Ventana).


Para crear la primera ventana seleccione NEW... (o CTRL + N) en la ficha PB Object
seleccionar el objeto Window.

Se muestra un rea de diseo de ventanas (formulario), seleccionaremos la propiedad


Title y digitaremos el ttulo de la ventana. Ejemplo: Ventana de aplicacin. Si la Ventana
de Properties no aparece, dar click derecho en el Layout y elegir Properties para que
aparezca.

Prog. Rodrigo Velzquez

23

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Luego grabaremos la ventana con el icono de Guardar o eligiendo FILE y despus SAVE
en el Power Men.

A partir de este momento agregar los controles que sean necesarios para nuestra primera
aplicacin, as por ejemplo:

Hacer un click en este


elemento para
desplegar la lista de
controles que
podemos agregar a
nuestro objeto
window.
Esta ventana principal tiene 5 zonas esenciales para poder iniciar a disear nuestra
aplicacin
1. System Tree (Arbol de Sistema). Muestra todos los objetos visibles o no visibles que
vamos creando para nuestra aplicacin.
2. Ventana de diseo de controles. Donde pegaremos todos los controles que requiera
nuestra aplicacin, el primer objeto que vemos all es el window.
3. La ventana de codificacin (Script). En esta ventana se codifican todos los objetos
segn el evento que deseamos que se desencadene o suceda.
4. La ventana de Propiedades. En esta ventana encontramos todas las caractersticas o
atributos referentes al control seleccionado.
5. Ventana de Salida (Output). Esta ventana nos mostrar la salida de los sucesos
ocurridos durante la compilacin de la aplicacin.
Comenzaremos nuestra aplicacin colocando el nombre
que llevar nuestra ventana cuando se ejecute, para ello
vamos a la ventana de propiedades y en la opcin Title,
escribimos Ventana Sumar dos nmeros.
Adems de la ficha General tambin vemos 3 opciones
ms :

Prog. Rodrigo Velzquez

24

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Propiedades de la Ventana.
Las propiedades de la ventana estn organizadas en forma de FICHAS, aqu la descripcin
de sus principales caractersticas:
FICHA
General

Scroll
Toolbar
Other

DESCRIPCION
La casilla TITLE, indica el texto de ttulo de la ventana. La casilla men
Name, indica el nombre del objeto men para la ventana. Window Type,
indica el tipo de ventana:
Child!, ventana que permanece inserta dentro de una ventana MDI
Main!, ventana normal (principal) con posibilidad de men.
Mdi!, ventana que posee rea interna para contener otras ventanas.
MdiHelp!, igual que la anterior, y sirve como ayuda.
Popup!, ventana de contexto o emergente.
Response!, necesita cerrar esta ventana para continuar la ejecucin.
Permite definir si la ventana tendr barras de desplazamiento, y la unidad a
utilizarse por ellas.
Permite definir si se utilizar la caja de herramientas definida para el men, su
presentacin y posicin.
Permite indicar la posicin y tamao de la ventana dentro de la pantalla, como
ser presentada.

Prog. Rodrigo Velzquez

25

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Configuracin de ODBC.
Power Builder ofrece la posibilidad
de crear la configuracin para
conexiones ODBC (cono Configure
ODBC de la barra de men), pero
desde aqu no es posible determinar
la versin del driver del motor de la
base de datos con el que se est
haciendo la conexin, por tanto no se
puede estar seguro si la misma
proporcionar
los
resultados
esperados, pues si el motor de la
base de datos es de una versin ms
reciente que el driver que se posee
para la conexin ODBC no dar un
resultado adecuado.
Ante esta perspectiva lo adecuado
es hacer la conexin desde un
producto (de cualquier marca,
incluso el que est proporcionado
por el sistema operativo -caso que
est usando windows XP o superior en la parte del Panel de control Control Panel-)
para conexiones ODBC.
Desde un producto para conexiones ODBC, se puede en la gran mayora de los casos
escoger la versin del driver que corresponda con la versin 1 del sistema gestor que se
est usando.
En
ambientes
cliente
servidor, se requiere instalar
en el cliente una versin
mnima del DBMS, que en el
caso
de
Oracle
es
Oracle/client

Ahora bien ya en el producto ODBC, lo que se tiene que definir es el DSN (Data Souse
Name), para lo que se siguen los siguientes pasos:
Buscar el driver que corresponda a la versin del DBMS que se est usando.
Inicialmente, lo que presentan los productos ODBC, es la lengeta con los DSN que ya han
sido previamente definidos, por lo que si se quiere agregar uno nuevo se debe escoger
Agregar... (Add...), que est en la misma lengeta.
Luego escoger la opcin de Finalizar; con lo cual se presenta un cuadro de
dilogo que proporciona la oportunidad de configurar el DSN, segn el driver que se haya
escogido.
Independientemente del driver que se escoja, se debe completar el campo del Data
Source Name, que es el que se refiere a la base de datos que se le est haciendo, la
conexin ODBC. Adicionalmente se pueden completar el usuario y password, pero esto en
un ambiente cliente servidor carecera de sentido
Una vez que se haya completado el Data Source Name, se escoje la opcin de Terminar
para que se cree el User DSN.

Si la versin del driver es mayor a la versin del sistema gestor que se use no tiene perjuicio, lo que
importa es que la versin del driver contenida en el producto ODBC no sea menor a la del DBMS

Prog. Rodrigo Velzquez

26

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Conexin con Driver Nativo.


Power Builder no solo puede comunicarse son sistemas gestores por medio de conexiones
ODBC; sino que posee una serie de drivers nativos de diferentes sistemas gestores, a
saber Informix, SQL Server, Oracle, Sybase, para hacer ms eficiente su comunicacin
con los sistemas gestores que ya hemos mencionado.
La configuracin de un perfil de driver Nativo es muy similar a la configuracin de un perfil
para conexin mediante ODBC.
Para crear un perfil mediante un driver nativo, se escoge el cono de perfil de la PowerBar
y se escoge el sistema de gestin con el que se desea que la aplicacin se comunique,
una vez hecho esto, se escoge New del men que se presenta.
Con esto se consigue abrir el cuadro de dilogo Database Profie Setup. La principal
diferencia entre ste y uno para conexin ODBC es la lengeta, conexin la cual pasamos
a describir a continuacin:
Profile Name
Connect Information
Server
nombre del servidor donde se encuentra instalada la base de datos
Log Id
un usuario vlido
Password el password que corresponda al Log Id
DataBase nombre de la base de datos (solo el nombre sin extensin)
Language lenguaje que se desea usar en la comunicacin a SQL Server
Other
Isolation Level: nivel de aislamiento
Autocommit mode:
autocommit despus de cada transaccin
Commit on disconnect: commit despus de que desconecte la aplicacin
Prompt for database information: Select this checkbox to be prompted for connection
information when creating or selecting a profile to access a database.
Generate trace Select this checkbox to start the Database Trace tool in order to
trace your connection.
NOTA: Se puede trabajar por medio de driver nativo y adems tener un archivo .Ini para la
conexin de n usuarios.
La principal diferencia entre los preview de una conexin de Driver nativo y una con ODBC,
es que en driver nativo no se hace uso del DBPARM, que en conexiones con ODBC, con
una cadena de conexin podamos almacenar todos los parmetros necesarios para
realizar la conexin, almacenbamos el nombre del DSN, usuario, password, ect.
Ejemplo de preview con ODBC:
// Profile Perfil_empleado
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm
=
"ConnectString='DSN=DSN_Empleado;UID=MakerTables;PWD=MakerTables;',PBCatalog
Owner='MakerTables'"
En cambio en el preview con driver nativo se presenta una conexin como la siguiente:
// Profile prf_Pubs_Nativo
SQLCA.DBMS = "MSS Microsoft SQL Server 6.x"
SQLCA.Database = "pubs"
SQLCA.ServerName2 = "Gerardo"
SQLCA.LogId = "sa"
SQLCA.LogPass = "**"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
Es obvio, sin embargo lo apuntamos, en un ambiente de cliente servidor, tanto el usuario
como el password se deben cargar en RunTime.

El servidor de ULACIT se representa como: @tns.labs TNS = tnsnames, que es una cadena de
configuracin del servidor. Para ms informacin: Oracle NetWork Adm tnsnames.ora.

Prog. Rodrigo Velzquez

27

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Compilar y Ejecutar la Aplicacin.


Como primer punto se debe crear un proyecto aplicacin, accediendo al men New y luego
seleccionar la opcin Application como muestra la siguiente figura.

Una vez aceptado el proyecto se dispone una ventana como la siguiente;

Se debe especificar el nombre del ejecutable que se desea obtener, y de ser el caso
tambin se debe especificar el nombre del archivo pbr.

Prog. Rodrigo Velzquez

28

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Conceptos necesarios en el momento de generar la aplicacin.


Cuando usar un PBR
Siempre que los recursos externos sean asignados dinmicamente
Bitmaps
picture_control.PictureName = "bmp_or_rle_filename"
Icons
dw_control.Icon = "ico_filename"
Siempre que los recursos internos sean asignados dinmicamente, y se est compilando
un EXE en lugar de PBD o DLL
DataWindows
dw_control.DataObject = "d_object_name"
Archivos de recursos no son necesarios para objetos DataWindow en PBD o DLL
Todos los objetos PowerBuilder en el source PBL son incluidos en el PBD o DLL resultante
Opciones de Generacin de Cdigo.
Machine Code
Machine Code compila DLLs
Ventajas
Rpido para expresiones matemticas complejas y looping constructs
Ningn efecto en la velocidad de instanciacin de objetos, acceso a base de datos,
o llamada de funciones DataWindow
Desventajas
Toma ms tiempo compilar
Plataforma especfica
El archivo ejecutable significativamente ms grande puede bajar lentamente la
performance
Pcode
Pcode compila PBDs
Ventajas
Compila ms rpido bueno para propsitos de prueba
Produce ejecutables ms pequeos
Interpretado ejecuta en todas las plataformas soportadas por PowerBuilder
Desventajas
Interpretado Puede ejecutarse ms lentamente
Machine Code o Pcode?.
Se recomienda que pruebas de performance se realicen dentro de las condiciones
actuales del usuario final para determinar el uso de machine code Runtime DLLs
Necesarias
Para Ejecutar la Aplicacin Standalone, las siguientes DLLs son requeridas para estar en
el mismo flder de la aplicacin o en el flder de Sistema para el Sistema Operativo
libjcc.dll
pbvm115.dll
pbodb115.dll
ppdwe115.dll
PBVM 11.5 (actual)

Prog. Rodrigo Velzquez

29

www.nativos.com.py

PowerBuilder

Sistemas de Gestin

Convertir el tutorial de PowerBuilder a Web Forms Application.


Esta seccin provee informacin necesaria para convertir el PowerBuilder tutorial
application a un ASP.NET Web Forms application.
Se asume que est instalado el Microsoft .NET Framework 2.0 y una version del IIS server
en la computadora de desarrollo. Se puede usar una computadora diferente para correr el
Web Forms application desde un standard Web browser.
Pasos para convertir el proyecto tutorial a Web Forms Application:
Abrir el workspace tutorial en PowerBuilder
Realizar cambios para .NET Web Forms application
Crear un .NET Web Forms target y proyecto.
Seguir el Wizard.
Compilar el proyecto .NET Web Forms.
Correr la aplicacin desde un explorador.

Prog. Rodrigo Velzquez

30

www.nativos.com.py

Das könnte Ihnen auch gefallen