Iniciando POWERBUILDER Versión 5.0
Para ingresar al PowerBuilder versión 5.0 desde Windows 95, seguir los siguientes pasos:
Dar un click sobre el botón . Arrastrar el mouse y dar un click en . En el siguiente grupo de opciones, seleccionar dando un click sobre la
Carpeta , luego dar doble click en
A continuación, aparecerá momentaneamente una pantalla como la que se muestra:
Requisitos de Instalación
Sistemas OperativosMicrosoft Windows 95 óMicrosoft Windows NT 3.51
Memoria 16 Mb de RAM(Recomendado : 32 Mb de RAM
Espacio en disco duro:160 Mb Instalación Compacta190 Mb Instalación Típica
Ratón de Microsoft o compatible.
PC con procesador 486DX/4 ó superior.(Recomendado Pentium)
Tarjeta Gráfica VGA o superior(Recomendado SGVA de 256 colores)
Unidad de Floppy de 3.5 pulgadas (alta densidad).CD- ROM.
Conceptos Generales
¿Qué es PowerBuilder?
Es un entorno de programación que está compuesto por diferentes herramientas, para el desarrollo rápido de una aplicación en el ambiente cliente - servidor. Permite usar ventanas, botones y todas las herramientas que presenta windows, facilitando su manejo.
Se maneja básicamente con el ratón, y el lenguaje de programación llamado PowerScript.
Esta herramienta de desarrollo está completamente orientada a objetos, lo que permite a equipos de programadores crear aplicaciones gráficas sofisticadas con acceso a información de base de datos locales o en servidores de red.
Características Básicas
Power Builder es un desarrollador de aplicaciones, cuyas características básicas son:
o Soporta una gran variedad de sistemas de gestión de base de datos, tales como: Sybase, Informix, Oracle, Watcom, entre otras.
o Tiene capacidad de acceder a información de múl- tiples bases de datos y mostrar esa información en una única ventana.
o Se trabaja en ambiente cliente - servidor.o Posee un objeto inteligente llamado Datawindow
realiza directamente la interface con la base de datos, sin requerir que el programador conozca SQL.
o Capacidad de utilizar sentencias SQL combinadas en el código.
o Se puede trabajar en múltiples plataformas, ya que
soporta diferentes sistemas operativos y posee drivers nativos para las bases de datos más comerciales.
o La creación de aplicaciones es sencilla.o Se realiza poca programación.o Permite usar ventanas, botones y todas las
herramientas que presenta el windows facilitando su manejo.o Para construir la aplicacion se utilizan painters, allí se
definen las propiedades de los objetos y se agregan los controles.
o Se puede trabajar con múltiples ventanas.
PowerBuilder, ofrece a los programadores:
o Un entorno de desarrollo profesional.o La Orientación a Objetos.
o Rapidez de aprendizaje y de desarrollo.
o Generación automática de código SQL.
o Acceso a las aplicaciones de Windows.
o Una herramienta de desarrollo asequible y rentable en explotación.
o Un entorno abierto de desarrollo que dispone de interfaces inteligentes a otras tecnologías Cliente/Servidor.
o Abierto a la mayoría de Base de Datos del mercado.o Abierto a diferentes herramientas CASE.o Abierto a Librerías de objetos y control de versiones.
o Abierto a aplicaciones Windows: DLL, DDE, OLE.
Eventos y Scripts
Un evento se ejecuta por ejemplo cuando se hace Click en un botón o al salir de cualquier control.
En el Script se escriben los comandos y funciones que se realizan cuando se ejecuta algún evento.
Funciones
Permite al programador hacer más fácil la programación. PowerBuilder posee una gran cantidad de funciones que se pueden usar en los objetos, por ejemplo se pueden usar para abrir o cerrar una ventana o para activar algún botón.
Librerías
Las librerías o PBL es el contenedor básico de objetos PowerBuilder (ventanas, menues, datawindows). Cualquier cosa que se cree deberá estar contenida en una PBL o librería. Una aplicación puede tener una o más librerías.
De una PBL se puede generar una PBD, que es lo mismo que una PBL pero sin el código fuente, o una DLL típica de windows.
El Ambiente del POWERBUILDER
Una vez que se ha iniciado el PowerBuilder, lo primero que se aprecia es una ventana con un menú y una barra de herramientas (PowerBar), similar a la que se presenta a continuación:
En la versión 5.0 del PowerBuilder abre por defecto la aplicación activa. Si es la primera vez que se carga el PowerBuilder, aparecerá por defecto la aplicación de ejemplo del PowerBuilder.
En el ambiente de desarrollo, para crear los objetos se usan painters o pintores. Cada pintor tiene un icono asociado. Para los diferentes iconos, seleccionar la opción PowerPanel desde el menú File.
Power Panel
La caja de diálogo mostrada arriba se llama `PowerPanel'. Para invocar un pintor desde el PowerPanel, se necesita seleccionar el pintor haciendo "click" sobre el icono/texto y seleccionar el botón 'OK'.
Antes de hacer cualquier otra cosa describiremos cada uno de los painters o pintores.
PAINTERS O PINTORES DE OBJETOS :
Son pintores para crear objetos que se almacenan en las librerias Power Builder.
Pintor de Aplicación
El objeto de aplicación es el punto de entrada a cualquier aplicación Power Builder. Si se hace una comparación, sería algo así como `main()' en un programa de `C'.
Pintor de Ventana
En cualquier aplicación, la pantalla es la interface principal entre el usuario y la aplicación. Una pantalla permite hacer entrada de datos, ver informes,etc.
En PowerBuilder, las pantallas se llaman `Windows'.
El Pintor de Ventana, como el nombre lo dice, permite pintar y salvar objetos de ventana. Sobre una ventana se puede pintar diversos controles, tales como CommandButtons, ListBoxes, Pictures,etc.
Pintor de Menú
Un menú es simplemente una lista de opciones o comandos. Un ejemplo de menú, el menú del PowerBuilder.
En PowerBuilder se puede crear objetos menú en el pintor de menú y asignarlos a las pantallas (ventanas). También se pueden pintar menúes popup ( menúes sensibles de contexto) en el pintor de menú.
Pintor de DataWindow
El objeto DataWindow permite recobrar datos desde la base de datos u otras fuentes.
Mediante un datawindow también se puede hacer entrada de datos.
Después de pintar el objeto de DataWindow, no puede usarse el objeto solo. Se necesita asociar el objeto DataWindow con el control DataWindow y poner el DataWindow control sobre la pantalla (ventana).
Pintor de Tubería de Datos
El objeto de Tubería de Datos permite copiar tablas y sus datos desde una base de datos a otra, con pocas líneas de código.
Pintor de Objetos de Usuario
Es una colección de uno o más objetos de PowerBuilder/ no-PowerBuilder. Los objetos no-PowerBuilder incluyen objetos de VB, DLLS, OCX y otros. El Objeto de Usuario permite reusar el código.
Pintor de Consultas
El Pintor de Consultas permite construir declaraciones SQL SELECT que pueden salvarse como objetos de Consulta en la biblioteca de PowerBuilder.
Pintor de Funciones
El pintor de funciones permite construir objetos de función que pueden usarse para definir una serie de comandos, frecuentemente usados. En PowerBuilder, una función es una colección de comandos PowerScript o declaraciones de SQL dinámicos. Se puede referir también a estas funciones en su PowerScript y también en el pintor de Datawindow.
Pintor de Estructura
El Pintor de Estructura permite crear objetos de estructura. Una estructura es un conjunto de variables conexas (que puede tener los tipos diferentes de datos) agrupadas bajo un nombre único.
OTROS PINTORES
Pintor de Biblioteca
Los objetos que crean en los Pintores de PowerBuilder (aplicaciones, ventanas, menúes, funciones, consultas, estructuras, objetos de usuario y DataWindows) se almacenan en un archivo de sistema con extensión ".pbl". En la terminología de PowerBuilder, este archivo se llama "la Biblioteca". El Pintor de Biblioteca permite crear y mantener bibliotecas de PowerBuilder y objetos en esas bibliotecas.
Pintor de base de datos
El Pintor de base de datos permite crear objetos de base de datos como tablas, vistas, índices, etc., sin saber la verdadera sintaxis. Todos los objetos de base de datos que se crean en este pintor se almacenan en la base de datos conectada, no en la biblioteca de PowerBuilder. Los objetos que se crean en los otros painters, como ventanas o el menú, se almacenan en la biblioteca de PowerBuilder.
Se puede hacer también administración de base de datos desde el pintor de base de datos.
Pintor de Proyecto
El Pintor de Proyecto, permite crear Bibliotecas Vinculadas Dinámicas (PBDS PowerBuilder), ejecutables.
Corrida
El Icono de Corrida permite ejecutar la aplicación.
Debug
El pintor de Debug permite inspeccionar la ejecución de la aplicación actual gradualmente, simplificando el descubrimiento de los errores en la aplicación.
Usando los PAINTERS o PINTORES
Al usar los painter o pintores se visualizan 4 componentes básicos:
1. The title bar : Identifica la ventana y muestra el nombre de la aplicación actual.2. The menu bar : Muestra las opciones disponibles del menú.3. Workspace : Espacio en el cual se pueden colocar los objetos a utilizar.4. Toolbars : Provee varias barras de herramientas para hacer el trabajo
rápido.
Usando la BARRA DE HERRAMIENTAS
PowerBuilder usa 4 barras de herramientas (Toolbars):
1. PowerBar : contiene iconos para abrir pintores y otras herramientas.2. PainterBar : manipula componentes en el painter activo.3. StyleBar : cambia atributos de los textos (tipo, tamaño y fondo).4. ColorBar : cambia los colores de los componentes en el pintor actual.
El programador puede controlar qué barra de herramientas puede usar y dónde visualizarlas. Además se puede agregar, mover y deletear iconos en el Power Bar y en el PainterBar.
Mostrando la Barra de Herramientas
Si se muestra la barra de herramientas (toolbars), se puede escoger dónde mostrarlo y decidir si se muestra o no texto sobre los iconos.
Si se elige mostrar texto, éste afecta a toda la barra de herramientas, o de lo contrario el texto es omitido.
Usando el Mouse para mover las Barras de Herramientas
Para mover la barra de herramientas (toolbars) con el mouse, se tiene que hacer lo siguiente:
- Ubicar el cursor sobre un espacio vacío dentro del toolbar- Pulsar y retener el botón izquierdo del ratón.- Arrastrar la barra de herramientas y dejarla donde se desee.
Personalizando la Barra de Herramientas
Se puede personalizar la barra de herramientas (toolbars) con los iconos del PowerBuilder y con los iconos invocar otrar aplicaciones
Windows, tal como la Calculadora o Notepad.
Adicionar, Mover y Borrar Iconos
Se puede agregar, mover y borrar iconos en el PowerBuilder y en el PainterBar. No se puede accesar iconos en el StyleBar o ColorBar.
Usando el
PowerBar
El Power Bar se muestra cuando se inicia una sesión de Power Builder.
El PowerBar es el control principal para construir aplicaciones PowerBuilder. Desde el PowerBar se puede abrir el Painter de PowerBuilder, depurar o correr la aplicación actual, pedir ayuda o personalizar PowerBuider para cualquier necesidad.
Se puede personalizar PowerBuilder. Por ejemplo, se puede agregar iconos para operaciones que se necesiten con mayor frecuencia.
Usando Iconos
Los iconos en el Power Bar ( y en el Power Panel) representan cada una de las herramientas y pintores frecuentemente usados en PowerBuilder.
Usando el Menú POPUP
Power Builder provee un contexto sensible de menú popup que lista los items apropiados para el objeto seleccionado.
El menú popup está disponible en cualquier lugar del PowerBuilder.
Para usar el Menú PopUp:
* Seleccionar uno o más objetos* Dar click con el botón derecho del mouse, el menú apropiado se displayará.* Seleccionar el item deseado.
Trabajando con Ventanas en Power Builder
Cada Painter de PowerBuilder muestra su propia ventana. Se puede abrir varios painters a la vez y también varias instancias de un painter.
Ejemplo : Si ha abierto varias ventanas en PowerBuilder, puede moverse de una a otra, pulsando los botones:
Crtl + Tab.
Usando la Ayuda en Linea
PowerBuilder tiene una extensa ayuda en línea. Cuando se requiere usar el
help, seleccionar el icono Help ( ) o F1,la ayuda está disponible en cualquier lugar.
La ayuda sensitiva al contexto sólo es disponible en las funciones y en el script.
Ejemplo :
Si se está escribiendo en el script la palabra password y se desea saber en qué objetos puede ser usada, seleccionar la palabra y presionar Shift + F1 y a continuación, aparecerá una ventana similar a la siguiente:
Esta ayuda complementa la información que aparece en los manuales del PowerBuilder y, además, provee de una orientación, referencia y ejemplos de aplicación.
Construyendo una APLICACION
El punto de inicio de cualquier proyecto que se ha de realizar en PowerBuilder es crear la aplicación, ya que en la aplicación es donde se diseña el ambiente donde se va a trabajar ( equivalente a crear un proyecto en Visual FoxPro).Una aplicación tiene como elementos a las ventanas, los menúes, los datawindows, los objetos de usuario, entre otros.Crear una aplicación en PowerBuilder consiste en crear cada una de sus piezas con el painter adecuado, y después codificar las interacciones entre ellas. El orden lógico de esta creación podría ser:
Las convenciones para los nombres de los objetos son recomendados para una fácil identificación de los objetos y controles a los que se hace referencia.
Ejemplo.windows w_principal menu m_principaldatawindow dw_principal command button cb_ Ok
Como se puede apreciar en el gráfico anterior, las opciones de menú que se nos ofrecen desde el painter aplicación incluye:
* Crear una aplicación nueva,* Abrir una ya existente,* Grabar,* Introducir código en los scripts,* Modificar las propiedades y* Salir.
Si creamos una aplicación nueva se nos preguntará primero si deseamos crear la Pbl contenedora o utilizar una ya creada anteriormente.En este painter es donde creamos el objeto aplicación, que es lo primero que deberíamos crear al empezar un nuevo proyecto. Este objeto contendrá el código que debe ejecutarse al arrancar y parar la aplicación.El apartado más importante para el que empieza a programar es el de las librerías, el cual contendrá las rutas de las Pbl (librerías) que nuestra aplicación va a utilizar.Una aplicación recién creada sólo contendrá una librería, la que se ha utilizado para crear el objeto aplicación, las demás (si hubiesen) se han de introducir manualmente.
Eventos del Objeto APLICACION
PowerBuilder es un lenguaje orientado a eventos. Esto significa que los objetos con los que tratamos tienen predefinidas unas "rutinas" vacías que serán llamadas por el sistema de forma automática, cada vez que ocurra una acción concreta. Cada evento tiene asociado una acción o suceso del sistema.
También podemos crear nuestros propios eventos (User Event) . Si elegimos el botón de barra de herramientas, se nos abrirá una ventana parecida a la siguiente:
Fijémonos en la lista desplegable (también llamada cuadro combinado o combo box. En PowerBuilder se le conoce como Drop Down List) de la esquina superior izquierda. Si pulsamos en la flecha se nos abren todos los eventos disponibles para este objeto.Los más importantes son:
Si por ejemplo deseamos realizar alguna acción inmediatamente después de que la aplicación se ponga en marcha, sólo tenemos que escoger el evento open y escribir en el lenguaje PowerScript las instrucciones que se deseen.
Creando la primera APLICACION
Vamos a crear nuestra primera aplicación, la llamaremos "Publicaciones" y los pasos a seguir serían los siguientes:
1. Ejecutar PowerBuilder
2. Dar un click en Application Painter (pintor de aplicación).
3. Seleccionar File / New o el icono .4. PowerBuilder preguntará qué Pbl (librería) deseamos
escoger para grabar la nueva aplicación, si digitamos un nombre que no existe, crearemos una nueva Pbl.
5. El siguiente paso es darle un nombre al objeto aplicación, También se pue- de añadir un comentario. (Ver Fig. 1)
6. PowerBuilder nos pregunta si deseamos generar un "Application template", esto provocará que nos genere una aplicación que cree un entorno mdi listo para funcionar, contestaremos que no. (Ver Fig. 2)
7. Escoger la opcion Close del menúFile.8. Pulsar el botón y veremos una vista de la pbl que
acabamos de crear con el objeto aplicación dentro.
9. Ahora vamos a introducir código en el evento open. Abrimos el pintor de Aplicación.
10. Escogemos el botón de la barra de herramientas que
corresponde al script ( ).11. Seleccionamos en la lista de la izquierda el evento
open.
12. Tecleamos la instrucción:
MessageBox ("Aviso", "Esta aplicacion, más adelante será un control de publicaciones!!!").
13. Compilar la
sentencia escrita con el icono ( ) de la barra de herramientas del pintor aplicación.
14. Cerramos la ventana del script dando un click en el último botón de la barra de herramientas del pintor aplicación ( ).
15. Para grabar, pulsar sobre el botón del diskette ( ).16. Por último, hacer click en el botón de Run ( ).
¡ Listo, ya hemos realizado nuestro primer programa enPowerBuilder..... !
Observación importante:
Aunque PowerBuilder esté pensado para crear aplicaciones tipo MDI, este programa demuestra que no es imprescindible abrir ninguna ventana para que el programa haga algo.
Con PowerBuilder también se puede realizar procesos no interactivos que hagan su trabajo en background.
En los próximos capítulos, a medida que se incrementen los conocimientos, se podrá crear un programa que se conecte a la base de datos y abra una ventana marco MDI principal y una ventana tipo "sheet".
Construyendo una APLICACION
El punto de inicio de cualquier proyecto que se ha de realizar en PowerBuilder es crear la aplicación, ya que en la aplicación es donde se diseña el ambiente donde se va a trabajar ( equivalente a crear un proyecto en Visual FoxPro).
Una aplicación tiene como elementos a las ventanas, los menúes, los datawindows, los objetos de usuario, entre otros.
Crear una aplicación en PowerBuilder consiste en crear cada una de sus piezas con el painter adecuado, y después codificar las interacciones entre ellas. El orden lógico de esta creación podría ser:
Las convenciones para los nombres de los objetos son recomendados para una fácil identificación de los objetos y controles a los que se hace referencia.
Ejemplo.
windows w_principal menu m_principaldatawindow dw_principal command button cb_ Ok
Como se puede apreciar en el gráfico anterior, las opciones de menú que se nos ofrecen desde el painter aplicación incluye:
* Crear una aplicación nueva,* Abrir una ya existente,* Grabar,* Introducir código en los scripts,* Modificar las propiedades y* Salir.
Si creamos una aplicación nueva se nos preguntará primero si deseamos crear la Pbl contenedora o utilizar una ya creada anteriormente.
En este painter es donde creamos el objeto aplicación, que es lo primero que deberíamos crear al empezar un nuevo proyecto. Este objeto contendrá el código que debe ejecutarse al arrancar y parar la aplicación.
El apartado más importante para el que empieza a programar es el de las librerías, el cual contendrá las rutas de las Pbl (librerías) que nuestra aplicación va a utilizar.
Una aplicación recién creada sólo contendrá una librería, la que se ha utilizado para crear el objeto aplicación, las demás (si hubiesen) se han de introducir manualmente.
Eventos del Objeto APLICACION
PowerBuilder es un lenguaje orientado a eventos. Esto significa que los objetos con los que tratamos tienen predefinidas unas "rutinas" vacías que serán llamadas por el sistema de forma automática, cada vez que ocurra una acción concreta. Cada evento tiene asociado una acción o suceso del sistema.
También podemos crear nuestros propios eventos (User Event) . Si
elegimos el botón de barra de herramientas, se nos abrirá una ventana parecida a la siguiente:
Fijémonos en la lista desplegable (también llamada cuadro combinado o combo box. En PowerBuilder se le conoce como Drop Down List) de la esquina superior izquierda. Si pulsamos en la flecha se nos abren todos los eventos disponibles para este objeto.
Los más importantes son:
Si por ejemplo deseamos realizar alguna acción inmediatamente después de que la aplicación se ponga en marcha, sólo tenemos que escoger el evento open y escribir en el lenguaje PowerScript las instrucciones que se deseen.
Creando la primera APLICACION
Vamos a crear nuestra primera aplicación, la llamaremos "Publicaciones" y los pasos a seguir serían los siguientes:
1. Ejecutar PowerBuilder
2. Dar un click en Application Painter (pintor de aplicación).
3. Seleccionar File / New o el icono .4. PowerBuilder preguntará qué Pbl (librería) deseamos
escoger para grabar la nueva aplicación, si digitamos un nombre que no existe, crearemos una nueva Pbl.
5. El siguiente paso es darle un nombre al objeto aplicación, También se pue- de añadir un comentario. (Ver Fig. 1)
6. PowerBuilder nos pregunta si deseamos generar un "Application template", esto provocará que nos genere una aplicación que cree un entorno mdi listo para funcionar, contestaremos que no. (Ver Fig. 2)
7. Escoger la opcion Close del menúFile.
8. Pulsar el botón y veremos una vista de la pbl que acabamos de crear con el objeto aplicación dentro.
9. Ahora vamos a introducir código en el evento open. Abrimos el pintor de Aplicación.
10. Escogemos el botón de la barra de herramientas que
corresponde al script ( ).11. Seleccionamos en la lista de la izquierda el evento open.
12. Tecleamos la instrucción:
MessageBox ("Aviso", "Esta aplicacion, más adelante será un control de publicaciones!!!").
13. Compilar la sentencia escrita con el icono ( ) de la barra de herramientas del pintor aplicación.
14. Cerramos la ventana del script dando un click en el último botón de la barra de herramientas del pintor aplicación ( ).
15. Para grabar, pulsar sobre el botón del diskette ( ).
16. Por último, hacer click en el botón de Run ( ).
¡ Listo, ya hemos realizado nuestro primer programa en
PowerBuilder..... !
Observación importante:
Aunque PowerBuilder esté pensado para crear aplicaciones tipo MDI, este programa demuestra que no es imprescindible abrir ninguna ventana para que el programa haga algo.
Con PowerBuilder también se puede realizar procesos no interactivos que hagan su trabajo en background.
En los próximos capítulos, a medida que se incrementen los conocimientos, se podrá crear un programa que se conecte a la base de datos y abra una ventana marco MDI principal y una ventana tipo "sheet".
Construyendo Ventanas (Windows)
Las aplicaciones PowerBuilder consisten en ventanas (windows) que interactúan con el usuario.
EL OBJETO WINDOWS ( Ventana )
Las ventanas son la interface entre el usuario y una aplicación Power Builder. Muestran información requerida e interactúan con el usuario.
Un Ventana consta de:
o Atributos: Son los que definen el comportamiento y apariencia de la ventana. Estos pueden ser cambiados . Ejm (color, título, etc).
o Eventos: Especifican lo que sucede cuando un window es manipulado. Ejem: evento close (ocurre al cerrar una ventana)
o Controles: Colocados sobre un windows, para recibir y brindar información al usuario. Ejm (command button, singleline edit, radio button, etc).
Entorno Windows (Ventana)
Un window (ventana) es un término para una pantalla. Se puede tener múltiples ventanas en la pantalla al mismo tiempo y cada ventana trabaja independientemente.
En PowerBuilder se crean ventanas usando el Pintor de Windows. Se puede abrir el pintor de
windows haciendo click con el mouse sobre el botón ( ) situado en el PowerBar, o presionando Shift + F2.
La barra de herramientas de este painter (pintor) es mucho más compleja que la del objeto aplicación.
Los botones que tienen una flecha negra a la derecha despliegan una lista con más botones al pinchar sobre ella.
Uno de los botones más importantes es el cuarto empezando por la izquierda.
Al pulsar sobre la flecha negra que despliega la lista, muestra todos los objetos que podemos pegar encima de la ventana (controles que describiremos más adelante).
Estos controles se pueden pegar en la ventana y al pulsar el boton derecho del mouse sobre ellos, aparece un menú, qué entre otras opciones muestra la opción properties (propiedades) y la opción de script (código). Estas dos son las más utilizadas, nos permiten cambiar algunas propiedades y codificar los eventos con las instrucciones de PowerScript que describiremos más adelante.
Construyendo una Ventana
A continuación se describirá cómo construir una ventana que no esté basada en una ya existente.
Al acceder al pintor de window ( ) , se displaya el select window y lista los window de la librería actual.
Las ventanas (windows)pueden ser heredadas (Inherit).
Para construir una nueva ventana, seguir los siguientes pasos:
o Hacer click en botón New o dar click en el botón de la barra de herramientas del pintor window.
o A continuación, se displayará el workspace (espacio de trabajo ) y es aquí donde se definirá la apariencia y comportamiento del window (ventana).
Tipos de Ventanas (Windows)
Hay varios tipos de ventanas
Windows Main : Son ventanas que son independientes de otros windows. La primera ventana (window) abierta en la aplicación es el window Main, a menos que sea una aplicación MDI.
Window Popup : Un popup tiene una ventana de origen como la ventana pequeña pero no tiene todas las limitaciones.
Window Child : Los windows Child son siempre abiertos desde un window main o popup, los que llegan a ser su window parent.
Un window Child sólo existe dentro de su parent. No puede tener asociado un menú y nunca son considerados como el window activo. Un window child se cierra cuando su parent se cierra.
Window Response : Los window response piden información al usuario, siempre son abiertos dentro de otro window ( su pariente ).
MDI Frame : Un MDI window es un frame window, y es usado cuando el usuario necesita organizar los trabajos con múltiples ventanas
Ejemplo :
Ventana de impresión ( típico ejemplo de una ventana Response )
Propiedades del Window (Ventana)
Cada ventana y cada uno de sus controles tiene un estilo que determina la apariencia para el usuario.
Cuando define un estilo para una ventana (window) se le asigna valores a las propiedades de dicha ventana.
Para el ejemplo: la ventana será visible, de tipo main, de color silver, entre otros.
Para definir el estilo de windows, realizar los siguientes pasos:
o Hacer doble click sobre el window (aparecerá una pantalla similar a la superior).
o Especifique el tipo de window (Window Type).o Especifique otras propiedades del window.o Asociar un menú con el window (si lo desea).o Escoger el color para el background del window (Window Color).o Finalmente, hacer click en OK.
ESPECIFICANDO EL TIPO DE WINDOW
Lo primero que se debe hacer después de crear un window es especificar su tipo, para ello:
o Escoger el tipo de ventana en la lista desplegableWindow Type, en la ventana de propiedades de la ventana.
o Definiendo el tipo de window se habilitarán o deshabilitarán ciertas propiedades del windowEjemplo:
Si se crea un window de tipo Main el Title Bar Check box y el border check box ( ) aparecerán deshabilitados.
ESPECIFICANDO OTRAS PROPIEDADES BASICAS
También puede especificar si el window se maximiza, tiene Scrollbars, visible, enabled, resizable, entre otros.
( )
Notitas:o Un window main debe tener un título.o Un window child no puede tener menú.
o Un window response no puede tener menú, maximize box, minimize box, ni resizable (es decir, su tamaño no puede variar).
ASOCIANDO UN MENU A LA VENTANA
Para asociar un menú a un window, digitar el nombre del menú a asociar en el campoMenu Name de la ventana de propiedades.
En el caso que el menú que se desea seleccionar no aparezca en la lista (P.B. lista todo los menúes de la aplicación), hacer click en el botón y escoja el menú deseado.
Se puede cambiar un menú asociado con un window durante ejecución con la funciónChangeMenu.
ESCOGIENDO EL COLOR DE LA VENTANA
Para cambiar el color de la ventana, seguir los siguientes pasos:o Seleccionar un color en el Listbox Window colorde la
ventana de propiedades de la ventana.
CAMBIANDO EL TAMAÑO Y LA POSICION
En la ventana de propiedades de la ventana (ingresar haciendo doble click sobre la ventana), escoger la carilla y seguir los siguientes pasos :
o Seleccionar el estado inicial del window (Normal, Minimizado o Maximizado).
o Mover el window a un lugar apropiado con el mouse o dando valores a X e Y.
o Hacer click en «OK»
Para window Main, Popup, Response y MDI frame, X e Y son relativos a la esquina superior izquierda del y para window child, X e Y son relativos al parent).
Para cambiar el tamaño del window (ventana):
o Usar el mouse para modificar el tamaño o cambiar los atributos Width y Height.
GRABANDO EL WINDOW
VISTA PREVIA DEL WINDOW
Mientras construye el window, se pueden ir haciendo vistas previas.
Para ello hacer click en ( ) de la barra de herramientas del pintor de Window.
El window (ventana) creado se guarda en una de las librería PBL. Para ello, selecionar SAVE del File Menu, o hacer click en el icono ( ) de la barra de herramientas del pintor window , a continuación aparecerá una pantalla digitar el nombre del window.
Eventos de una Ventana
Al igual que se ha visto en el Painter Application y tal como se verá en el resto de objetos de PowerBuilder, al pulsar el botón derecho sobre la ventana y escoger la opción script, se abre la ventana de edición de código.
Los eventos más utilizados a la hora de codificar en una ventana son:
Evento Descripción
Activate: Ocurre inmediatamente después de abrirse la ventana. La ventana activa se muestra con un título sumamente iluminado.
Clicked: Ocurre cuando se hace un click en una ventana, pero no dentro de los controles (así como un command Bottom).
Close:Ocurre antes de que la ventana esté desactivada y cerrada.
Close Query: Los query de una ventana le dan una oportunidad de manejar cualquier último detalle, así como guardar cualquier cambio actual a un archivo o una tabla. El evento ocurre antes del cierre de eventos y es posible que reuse a permitir que la ventana se cierre.
Desactivate: Este evento es impulsado antes de que la ventana llegue a estar inactiva.
Double Clicked: Ocurre cuando se hace doble click en una ventana, pero no dentro de los controles.
DragDrop: Ocurre cuando el modo drag y el puntero drop están en un objeto de la ventana (no dentro de un control)
DragEnter: Ocurre cuando el modo drag está en un objeto de entrada de la ventana.
DragLeave: Ocurre cuando el modo drag está en los objetos que van a salir de la ventana.
DragWithin: Cuando el modo drag está en los eventos que son impulsados periódicamente mientras que un objeto está dentro de la ventana.
Hide: Esta ventana se hace invisible.
HotLinkAlarm: Ocurre después que una conexión DDE ha sido efectuada.
Key: Ocurre cuando el teclado es presionado y el foco no está dentro de un control de edición.
MouseDown: Ocurre cuando se da click al botón izquierdo del mouse.
MouseMove: Ocurre cuando el mouse se ha movido dentro de la ventana.
Mouse Up: Ocurre cuando el botón del mouse es soltado dentro de la ventana y el señalador no está localizado dentro de cualquier control activado.
Open: Este evento ocurre al abrirse, antes de que el usuario vea nada.
Other: Todo los eventos de la otra ventana que han sido señalados por los eventos del PB, están ruteados en este evento, raramente se usará este evento.
Rbutton Down: Ocurre cuando se presiona el botón derecho del mouse.
Resize: Ocurre al cambiar el tamaño de la ventana.
Show: Este evento es impulsado antes de llamar a la función show.
SystemKey: Evento impulsado antes que el usuario presione la tecla Alt (usualmente en combinación con otra tecla) y el foco no estará dentro de un
tipo de edición activa del control.
Timer: Ocurre con intervalos específicos como colocar la función de tiempo. El evento del tiempo es solamente impulsado si la función del timer fue llamada.
Funciones de una Ventana
Las funciones que se mencionan a continuación se aplican específicamente a los objetos de las ventanas:
ArrangSheets: Organiza a las hojas de las ventanas en un estilo específico, como tiled o cascada.
Change Menu: Asigna el menú asociado con una ventana a unanamed menú
ClasName: Retorna el nombre de la ventana.
GetActiveSheet: Retorna cual es la ventana que está actualemente activa en la ventana de hoja.
Hide: Hace que la ventana se haga invisible.
Move: Cambia la ventana a una nueva posición.
ParentWindow: Retorna cual es la ventana padre.
Pointer X: Devuelve la actual posición horizontal del puntero.
Pointer Y: Devuelve la actual posición vertical del puntero.
Postevent: Adiciona un evento a la cola de mensaje de un objeto (un mensaje asincrónico).
Resize: Cambia el actual tamaño de la ventana.
SetFocus: Activa el foco de la ventana, haciendo que ésta sea la actual ventana activa.
Setmicrohelp: Asigna un texto en línea de status del MDI y lo displaya.
SetPosition: Mueve la ventana al frente o posterior a otra ventana.
SetRedraw: Enciende o apaga el estado de actualización para una ventana.
Show : Displaya una ventana.
TriggerEvent: Envía un mensaje para un evento del objeto.
TypeOff: Retorna el tipo de objeto
Introducción a los Controles
Cuando se ejecuta la aplicación los usuarios interactúan generalmente con los controles colocados en la ventana (window).
Hay dos tipos de controles :
- Controles que tienen eventos- Controles sin eventos (Group Boxes y los drawing objects (objetos para dibujar)).
Hay controles para:
Mostrar y / o manipular valores:
ª Static text ª SingleLineEdit
ª MultilineEdit
ª EditMask
ª CommandButton ª Data Window (control especial para la presentación de datos)
ª PictureButton
ª User Objectª TreeView, ListView, Tabs.
Hacer cambios: Incluyen los siguientes controles
ª CheckBox
ª List Box
ª DropDownListBox
ª RadioButton
Mostrar Información Gráfica :
Incluyen los siguientes controles
ª Graph
ª HScrollBar
ª VScrollBar
Para Dibujar sobre la Ventana
ª GroupBox
ª Line
ª Oval
ª Rectangle
ª RoundRectangle
ª Picture
Colocando Controles en una Ventana
Para colocar un control en la ventana (window), seguir los siguientes pasos:
o Seleccionar el control del window PainterBar o del MenuControl.o Hacer click donde se quiere colocar el control.
Después de colocar el control puede cambiar de tamaño, definir su apariencia y comportamiento, y asociar scripts para los eventos.
CAMBIANDO LAS PROPIEDADES DEL CONTROL
Cada control tiene propiedades que determinan su apariencia y comportamiento.
Para definir las propiedades, seguir los siguientes pasos:
o Hacer click con el botón derecho del mouse sobre el control.
o A continuación aparecerá un menú emergente con varias opciones. (ver a la derecha)
o Seleccionar la opción propiedades (properties) del control.
o Si se prefiere, hacer doble click sobre el control y aparecerá la ventana de propiedades del control.
Cuando coloque un control en una ventana (window), PowerBuilder asigna un nombre único al control de la siguiente manera:
prefijo de control_ + número
el número puede ser cambiado por una palabra representativa para el control.
Para el ejemplo el prefijo del control comand button será:
cb_grabar1
A continuación, se muestra una lista con los principales controles y sus prefijos:
ENTORNO BASES DE DATOS
Antes de comenzar a trabajar en una aplicación PowerBuilder se debe crear la base de datos, el enlaceODBC y un database profile.
Pero .......
¿Qué es un database profile?. Es el enlace que utilizarán los pintores
(painters) del entorno PowerBuilder a la base de datos.
La aplicación debe conectarse explícitamente, mediante un script (código) a la base de datos. Pero cuando la aplicación no está ejecutándose, ¿qué base de datos han de usar los pintores?
Esto se especifica pulsando el botón del PowerBar.
Para nuestro ejemplo usaremosla base de datos Publi.
Se pueden definir varios «profiles», pero sólo uno será el activo. Se puede conectar a una base de datos cuando se ejecuta la aplicación y a otra mientras se esté diseñando, así que hemos de tener cuidado de no equivocarnos.
El enlace ODBC podemos crearlo a través del panel de control de windows
o dentro del mismo PowerBuilder con el botón del PowerBar (ver Pag 53).
Si se crea el ODBC dentro de PowerBuilder, éste creará el profile por sí solo, de manera que sólo tenemos que pulsar el botón database profile, y escogerlo para que sea el activo. A partir de entonces, todas las operaciones que ejecutemos sobre datawindows o base de datos, repercutirán sobre la base de datos activa.
Ejemplo: Base de datos de Publicaciones
CREANDO LA BASE DE DATOS
Para crear la base de datos, como se muestra en el ejemplo, seguir los siguientes pasos:
o Pulsar el botón (pintor de base de datos). A continuación se mostrará una lista de las tablas de las bases de datos.
A continuación aparecerá una ventana similar a la de la derecha, en la que se escribirá el nombre que se desea dar a la base de datos y hacer click en el botón Ok.
:
También se puede crear y modificar las tablas desde aquí. Si se desea crear una base de datos nueva, hacer click en el botón cancelar e ir al menúFile y seleccionar la opcion Create Database.
En el entorno de base de datos al hacer click, con el botón derecho del mouse y seleccionar Select Tables aparecerá la lista de tablas a seleccionar y si la base de datos esta vacía aparecera activo el boton new.
PowerBar
Barra de Herramientas del pintor Base de Datos (ToolBars)
CREANDO LAS TABLAS
Una vez que se ha creado la base de datos se pueden crear las tablas que serán adicionadas a esta base de datos, para ello debemos de seleccionar en el menú Object new table o bien en el icono create table de la barra de herramientas.
A continuación aparecerá la pantalla de entorno para la creación de tablas (create table dialogbox), obligadamente debemos ingresar un nombre, que generalmente deberá ir relacionado con la característica de los datos a
guardarse, por ejemplo: Mae_publi, responsable, área, etc., además nos muestra una serie de atributos que describimos a continuación:
Name: Identifica el nombre del campo. Debería ir relacionado con la característica del atributo, por ejemplo : num_publi, tipo_publi, nomb_publi, etc.
Type : Tipo de información que puede contener el campo. Existen diferentes tipos por ejemplo : varchar, char, numeric, integer, double, date, time, float etc.
Width : Número de caracteres máximos a guardar el campo.
Dec : Sólo en el caso de numéricos, especifica el número de decimales que contiene el campo.
Null : Esta opción especifica al el PowerBuilder que debería obligar que se ingrese necesariamente datos al campo, las opciones de respuesta para este atributo, son Sí o No. Es recomendable que las claves del archivo no permitan ingresar nulos, para mantener la integridad de la información.
Cuando se ha terminado de ingresar los datos en la tabla debemos de guardarla (Ctrl+S) con un nombre, tal como se ve a continuación y luego puede crear otra tablas si es necesario.
ATRIBUTOS EXTENDIDOS
Los atributos extendidos de cada tabla son los siguientes:
Format Attribute : Se usa para dar una visualización editada al campo, al momento de mostrar por pantalla.
Edit attribute : Se usa para describir cómo se va ingresar un campo editado por pantalla.
Valid Attribute : Se puede especificar una validación especial al campo, ya sea un rango de monto, código, fechas, etc.
Justify Attribute : Puede especificar la justificación que se le va dar al campo ya sea a la izquierda, derecha, centro.
Height and windth attributes : Puede especificar el tamaño y el ancho del área para el campo.
Header attribute : Es la información que se mostrará a la hora de displayar el campo en un reporte.
Label Atribute : Este attribute es similar a header attribute, pero éste se usa en el dialog Boxes, pero por defecto (default) siempre es la misma del nombre del campo.
Comments : Puede especificar comentarios con respecto al campo, en esta sección.
TIPOS DE DATOS
En cuanto a tipo de datos , PowerBuilder ofrece :
Char (character String) : Usado para nombres, direcciones, o cualquier item que contenga textos, generalmente usado cuando conocemos el tamaño de la data a almacenar.
Varchar(Variable length/Character String): Este tipo es usado cuando el tamaño de la data a guardar es variable, a veces larga o a veces corta, la
ventaja de usar este tipo de dato es que vemos en nuestra tabla, justo los datos que son necesarios, de tal forma que ahorramos espacio.
Numeric (numbers) : Usado para almacenar datos numéricos, por ejemplo: Sueldo, tipo de cambio, edad, ancho , etc.
Integer and Short integer(Counting numbers): Estos son números que no manejan porción decimal, el short integer y el integer se diferencia solo en el tamaño que se va a almacenar.
Float and double (floating point numbers) : Este tipo de datos almacenan una porción decimal, y es similar al anterior. Se diferencia por el tamaño de almacenamiento de datos.
Binary (Binary data ) : Este tipo de datos puede almacenar datos, no importando el tipo de data a guardar, ya sea (char, varchar, integer, etc). Generalmente usado para almacenar información digital(Sonidos, gráficos, etc).
Date, Time and Timestramp : Almacenan fechas, horas con formato especial, de tal forma que para el programador se hace más fácil manejar tipos de datos como éstos.
CREANDO INDICES
Para crear un índice a una tabla, seguir los siguientes pasos:
Hacer click en el botón de la barra de herramientas o seleccionar en el menú Object la opción New, luegoIndex.
A continuación aparecerá una ventana similar a la de la derecha, en donde se deberá seleccionar el campo o campos que formarán el índice.
Por último, se le dará un nombre al índice en el campo Index Name.
Hacer click en Ok y el índice ya estará creado y será representado por en la tabla (los índices se crearán para luego poder, realizar ordenamientos).
CREANDO LLAVE PRIMARIA
Cuando se crea una tabla se necesita elegir el campo o campos que conforman la llave primaria (primary key) de tal forma que se cree una clave única por registro, para garantizar que los datos no sean repetidos. Por ejemplo (los campos num_publi, tipo_publi de la tabla mae_publi).
Haciendo click con el botón derecho del mouse dentro de la tabla
creada, se puede observar una serie de opciones, entre ellas, se debe de seleccionar
La llave primaria ( Primary Key ) sirve para salvaguardar la integridad de los datos.
A continuación aparecerá una ventana como la que se muestra, donde se escogerá la opción Primary Key y se especificará el campo o campos que se desee utilizar como llave principal o primaria. Para nuestro ejemplo, utilizaremos los campos num_publi y tipo_publi, ambos representarán la llave principal, la cual tambien se le llama llave compuesta.
CREANDO LLAVE FORANEA
Es necesario crear una llave foránea cuando el campo de una tabla puede ser usado para accesar a otra tabla (en nuestro ejemplo gráfico que se muestra al inicio de este capítulo, se verá que en la tabla mae_publi existe un campo codi_resp el cual es un campo o atributo más de esta tabla, pero que representa la llave principal en otra tabla, entonces podemos decir que ese campo es una llave foránea de la tabla responsable).
La llave foránea se crea haciendo un click con el botón derecho del mouse sobre la tabla en donde es foránea, en este caso la tabla mae_publi, aparecerá una ventana de la siguiente manera:
CREANDO EL ORIGEN DE LA BASE DE DATOS (ODBC)
Como ya hemos mencionado un ODBC es el origen de base de datos.Para crear un enlace ODBC, seguir los siguientes pasos:
Hacer click en el botón del PowerBar. A continuación, aparecera la sgte. pantalla:
Si se va a crear por primera vez el ODBC,entonces Hacer click en el botón Create.
A continuación aparecerála siguiente pantalla:
En esta pantalla, llenar losdatos: Nombre del Origen dedatos, Descripción, usuario,password, base de datos, entreotros, y hacer click en OK.
SELECCIONANDO EL PROFILE
Como ya se ha mencionado antes un profile es el enlace que usan los pintores a la base de datos.
Si se ha creado el odbc dentro de PowerBuilder, éste creará el profile por sí solo, de manera que so lamente se debe pulsar el botón database profile, del PowerBar y seleccionar el que se desee para que sea el activo. A partir de entonces, todas las operaciones que ejecutemos sobre datawindows o base de datos, repercutirán sobre la base de datos activa.
EL ENTORNO MENU
Con el pintor menú se diseñarán los menúes que aparecerán en las diferentes ventanas de una aplicación.
Las aplicaciones pueden ser de dos tipos:
SDI = Single Document Interface.
La aplicación consta de una ventana y de un menú asociado a la misma. Ejemplo : Block de notas, WordPad.
MDI = Multi Document Interface.
La aplicación consta de una ventana principal o marco MDI y de varias secundarias que están contenidas dentro y que no pueden salir de los límites visuales de la ventana marco. Ejem: PowerBuilder, Microsoft Word, etc.
Al entrar al entorno Menú se activa la barra de herramientas de este entorno (toolbars) la cual consta de los siguientes botones:
Pero.... ¿Porqué se usan menúes en las ventanas?
CONSTRUYENDO UN MENU
Hay dos maneras de construir un menú
o Construir un menú desde el principio
o Construir un menú que hereda su estilo, funciones, estructuras, variables y script de un menú ya existente.
CONSTRUYENDO UN NUEVO MENU
Para construir un nuevo menú seguir los siguientes pasos:
1. Hacer un click en el icono del pintor de
menú ( = Menú Painter ) en el PowerBar.
A continuación la ventana de selección de Menús lista los Menúes en la librería actual si, aplicación ya tiene menúes. Si recién se está creando aparecerá una ventana vacía.
2. Haga click sobre el botón Nuevo para construir un nuevo menú. Se mostrará luego el espacio de trabajo del Menú Painter.
ACERCA DEL PINTOR MENU
Tiene varias áreas de trabajo :
o Un área para especificar los elementos del menú de barra.o Un área para definir los elementos de los menúes
colgantes.o Un área para especificar si es que los elementos se
muestran en la barra de herramientas en aplicaciones MDI.
TRABAJANDO EN EL PINTOR MENU
En el menú painter, se especifica lo siguiente:
o Los elementos que se muestran en el menú de barra(la barra en la parte superior de la ventana )
o Los elementos que se mostrarán debajo de cada opción del menú de barra
o Atributos de los elementos.o Aceleradores y atajos(combinaciones de teclas).o Scripts para los eventos de los elementos del menú.
AGREGANDO ELEMENTOS EN EL MENU
Cada menú consiste de al menos un elemento en el menú de barra y elementos en el menú colgante.
Se puede agregar elementos a unmenú en tres lugares: En el menú barra En el menú colgante En el menú de cascada
Para agregar elementos en el menú de barra, seguir los siguientes pasos:
1. Hacer click en el espacio en blanco a la derecha del último elemento definido en el menú de barra al tope del espacio de trabajo del Menú Painter. PowerBuilder mostrará un campo vacío.
2. Digitar el texto que se mostrará para el elemento.3. Para agregar otro elemento al menú de barra, hacer un
click a la derecha del elemento que acaba de definir, PowerBuilder mostrará otro campo vacío.
4. Digitar el texto para el nuevo elemento.5. Repita los pasos 3 y 4 para agregar elementos adicionales
al menú de barra.
Para agregar elementos al menú colgante, seguir los siguientes pasos:
6. Hacer un click sobre el elemento al cual se le definirá un menú colgante en el menú de barra. PowerBuilder mostrará el menú colgante ya definido(si existiera) para el elemento seleccionado.
7. Presionar la tecla TAB o vaya al primer campo vacío debajo del encabezado "Menu for".
8. Digitar el texto que se mostrará para el elemento.9. Repita los pasos 2 y 3 para agregar elementos adicionales
al menú colgante.
Para agregar elementos al menú en cascada
10. Hacer click sobre el elemento de un menú colgante al cual se le quiere asignar un menú en cascada.
11. Hacer click en el icono de siguiente nivel de la barra de
herramientas ( ) o seleccione en el menú Edit la opción Next (Siguiente Nivel).
Un campo vacío aparece debajo del encabezado "Menu For"y el puntero se mueve al campo de manera tal que se puede empezar a construir el menú en cascada.
Nota:
El encabezado "Menu For" muestra el nombre del elemento del menú de barra, un triangulo hacia la derecha, el nombre de la opción que se escogió y otro triangulo hacia la derecha. Esto es para recordar que está ingresando elemento a un menú en cascada.
12. Ingrese elementos en un menú en cascada de la misma manera que lo hace en menúes colgantes.
13. Para ingresar al nivel previo del menú, haga click sobre el icono de nivel previo o seleccione Nivel previo de la opción Edit.
COMO SE NOMBRAN LOS MENUES
Cuando se agregan elementos del menú, PowerBuilder le da un nombre por defecto, el cual es mostrado en el campo Menu Item Name.
NOMBRE POR DEFECTO DEL MENU
El nombre por defecto es una concatenación del texto especificado para la variable prefijo en la opción Options del Menú Design (inicialmente el prefijo por defecto es m_ y los símbolos y caracteres válidos para PowerBuilder en el texto que digitó para el elemento del menú.
Si no hay símbolos o caracteres válidos en el texto digitado por defecto se coloca el prefijo n, donde n representa el número más bajo que puede ser combinado con el prefijo para crear un nombre único.
INSERTAR ELEMENTOS EN EL MENU
14. Seleccionar el elemento del menú de barra que se quiere que esté después, del elemento a insertar.
15. Hacer click en el icono Insertar del PainterBar, o presione la teclaIns o también seleccionar Insertar del menú Editar. Un campo vacío se mostrará.
16. Tipear el texto del nuevo elemento.
MOVIENDO ELEMENTOS DEL MENU
Para cambiar el orden de los elementos en el menú de barra o en un menú colgante o en un menú cascada, se puede arrastrar los elementos a la posicion deseada de un menú a otro (por ejemplo, no puede arrastrar un elemento en el menú de barra a un menú colgante).
Para mover un elemento, seguir los siguientes pasos :
17. Hacer click en el icono Mover ( ) en el PainterBar o seleccionarMover del menú Editar . En ese momento se cambia al modo Mover.
18. Presionar y mantener presionado el boton izquierdo del mouse sobre el elemento que desea mover. El puntero cambiará a un puntero en forma de mano.
19. Arrastrar el elemento a una nueva posición en su menú.
20. Soltar el botón del Mouse. El elemento se muestra en una nueva posición y se abandona el modo Mover.
BORRANDO ELEMENTOS DE LOS MENUS
21. Seleccionar el elemento que desea borrar.
22. Hacer click en el icono Borrar ( ) en el PainterBar o seleccione la opciónBorrar del Menú Editar. El elemento seleccionado será borrado.
ASIGNANDO ACELERADORES O ATAJOS
Todos los elementos de un menú deberían tener una sola tecla aceleradora, la cual permitirá al usuario seleccionar una opción al presionar ALT + tecla .
Los aceleradores se muestran con un subrayado en el texto del elemento.ejemplo: ( )
Adicionalmente se puede definir atajos, los cuales son teclas de función o combinaciones de teclas que el usuario puede presionar para seleccionar un elemento de un menú en cualquier momento.
Para asignar un acelerador, seguir los siguientes pasos:
o Digitar un ampersand (&) antes de la letra del texto del elemento del menú que quiere designar como acelerador.
o Los aceleradores se ven como letras subrayadas en un menú durante la ejecución.
Para asignar atajo,seguir los siguientes pasos
1. Seleccionar el elemento del menú al que se le quiere asignar un atajo.2. Selecionar la tecla de la lista de operaciones en el grupo de atajo(Shortcut).3. Si desea seleccione ALT, CTRL y/o SHIFT para crear una combinación de teclas.
PowerBuilder muestra el atajo en el campo al lado del texto del elemento del menú. Los atajos se muestran a la derecha del texto de los elementos durante su ejecución
CREANDO LINEAS SEPARADORAS EN LOS MENUES
Para separar grupos de elementos con líneas en un menú, seguir los siguientes pasos:
- Tipear un guión en lugar de un texto en el campo donde debería ir el nombre de un elemento.
DEFINIENDO MICROHELP Y BARRA DE HERRAMIENTAS
Estas dos propiedades de los elementos de un menú son usadas en aplicativos MDI(Multiple document Interface).
Para definir el Texto de MicroHelp, digitar el mensaje en el área señalada.
GRABANDO UN MENU
Se puede guardar el menú en el que se está trabajando en cualquier momento.
Si se desea grabar un menú, seguir los siguientes pasos:
1. Seleccionar Save del menú File o el
icono en forma de diskette( ) que aparece en la barra de herramientas. Si el menú fue guardado previamente, Power Builder graba la nueva versión en una misma librería y regresa al menú painter. Si el menú no fue guardado previamente PowerBuilder muestra la ventana de guardar Menú.
2. Dar un nombre al menú en el campo de menúes.
3. Escribir algún comentario para describir el menú.
4. Especificar la librería en la que se va a guardar el menú.
5. Hacer click en Ok, para guardar el menú.
VISTA PREVIA DEL MENU
El usuario que está creando un menú,puede de hacer vistas previas mientas lo estádiseñado.
Para ello seleccionar el icono ( ) dela barra de herramientas o seleccionarPreview del menú Design.
A continuación, el menú se mostrará en una ventana como se muestra en la figura superior.
ESCRIBIENDO SCRIPT PARA LOS ELEMENTOS
Al seleccionar un elemento del menú, debe ocurrir una acción (ejem: abrir una ventana, realizar un proceso, entre otros), estas acciones se especifican escribiendo código en el script.
Para escribir Scripts para un elemento, seguir los siguientes pasos:
6. Seleccionar el elemento.
7. Hacer click en el icono Script ( ) en el PainterBar. El PowerScript Painter se abrirá.
EVENTOS DEL MENU
Para ver los eventos del menú, hacer click en el botón que contiene una
hoja en blanco (script), que nos permite acceder a los dos únicos eventos que posee un menú.
Evento Descripción
clicked
Es el más importante. Aquí se escribe el código que se debe ejecutar cuando el usuario escoge una opción.
Como por ejemplo abrir una ventana.
selected
Evento no es utilizado con frecuencia. Se ejecuta cuando una opción es señalada con el ratón sin que llegue a ejecutarse.
UTILIZANDO UN MENU
Se puede utilizar los menúes de dos maneras:
o Colocando en el menú de barras de una ventana
o Mostrando el menú como un menú popup
AGREGANDO UN MENU A UNA VENTANA
Para mostrar un menú de barra cuando se abre una ventana, se le asocia un menú a la ventana en el window painter.
Para asociar un menú con una ventana, seguir los siguientes pasos :
1. Abrir el pintor window (entorno ventana) y seleccionar la ventana con la que se quiere asociar al menú.
2. Hacer doble click en el fondo de la ventana o seleccionar window Style del menú diseño, para entrar a las propiedades de la misma.
3. Seleccionar la opción menú haciendo click en el botón Browse y elegir un menú de la lista, la cual muestra todos los menúes disponibles en la aplicación. (Para el ejem: el menu es m_pricipal).
CREANDO DATAWINDOWS
Un datawindow es un objeto visual de acceso a los datos.
Básicamente, este pintor genera una representación visual de una sentencia Sql del tipo select.
EL OBJETO DATAWINDOWS
El Objeto DataWindow es un objeto que se usa para recuperar, presentar y manipular datos de una base de datos relacional u otra fuente de datos (como archivos DBF). Puede, además, escoger distintos estilos de presentación (freefrom, Graph,…).
Los objetos DataWindow tienen conocimiento de los datos que son recuperados. Puede especificar formato de display y otros atributos, de forma tal que los datos son mostrados de manera más significativa.
Para tener un datawindow en una ventana se debe tener dos elementos:
o Datawindows Objeto ( ver fig. anterior )o Datawindows Control ( Un datawindow control debe
asociarse a un datawindow objeto para poder visualizar su
contenido en una ventana).o Código de conexión de base de datos en el script de la
aplicación y de actualización en la ventana en la que se mostrará el datawindow.
CREANDO UN OBJETO DATAWINDOW
Para crear un objeto datawindow, seguir los siguientes pasos:
o Hacer un click en el pintor DataWindow ( ).o A continuación, el window Select Datawindow se
displayará.o Hacer click en el botón New.o La ventana New DataWindow se displayará.
o Escoger el estilo de presentación: Freeform, tabular, grid, entre otros. (Para el ejemplo se escogerá el tipo GRID)
o [Opcional ] escoger opciones para el Objeto DataWindow.o Escoger un Data Source para el Objeto DataWindow. (Para
el ejemplo se escogerá la fuente de datos Quick Select)o Hacer click en el botón Ok.o Seleccionar la(s) tabla(s) y campos de la(s) misma(s) que
se presentarán en el datawindow.
o Si se desea se puede hacer un previo inmediatamente después que el Objeto Data Window ha sido definido. Para ello hacer click en el botón () de la barra de herramientas del pintor datawindows.
o [Opcional ] se puede mejorar la apariencia del título y otros.
o Guardar el Objeto DataWindow ( hacer click en el botón
de la barra de herramientas ). A continuación aparecerá la siguiente ventana:
Es conveniente que eldatawindow objeto tenga elmismo nombre que eldatawindow control.
o Escribir el nombre con el que se va a guardar el objeto datawindow, seguido de la convención dw_, seleccionar la librería en la que se va a grabar y hacer click en el botón ok.
MODIFICANDO UN DATAWINDOW EXISTENTE
o Hacer click al Pintor DataWIndow (datawindow
painter).o Seleccionar el objeto datawindow de la actual librería.o Hacer click en OK.o En la ventana que aparecerá a continuación modificar el
datawindow seleccionado.
ESCOGIENDO EL ESTILO DE PRESENTACION
El estilo de presentación que se selecciona para un objeto datawindow determina el formato que PowerBuilder usa para el primer display del Objeto DataWindow en el DataWindow painter Workspace.
Se pueden escoger los siguientes estilos de presentación en un nuevo Objeto DataWindow :
o Tabularo Freeformo Grido Labelo N-upo Groupo Graph
o Crosstab
ESTILO TABULAR
Este estilo de presentación presenta los datos a través de columnas, encabezados(header) y páginas, generalmente muestran muchas filas de las B.D., al mismo tiempo como pueda el Objeto Datawindow. Puede modificar la organización default, moviendo las columnas y textos. Este estilo es frecuentemente usado cuando se quiere agrupar los datos.
ESTILO FREEFORM
Este estilo de presentación presenta los datos como columnas de datos, de arriba hacia abajo de la página, con su respectiva etiqueta para cada columna. Puede organizar la definición default moviendo las columnas y textos. Este estilo es frecuentemente usado para entrada de datos(mantenimiento).
ESTILO GRID
Este estilo de presentación, presenta los datos en formato fila-columna con lineas grid que separan filas y columnas. No puede mover las columnas y encabezados como en los estilos anteriores.
ESTILO LABEL
Este estilo presenta los datos como etiquetas. Escoja este estilo para crear etiquetas de correo u otro tipo de etiquetas.
ESTILO N-UP
Este estilo presenta 2 ó más filas en la misma línea del Objeto DataWindow, una seguida de otra. Es similar al estilo label.
ESTILO GROUP
Este estilo es una forma corta para crear grupos en un Objeto DataWindow, generando un estilo tabular que está agrupado por ciertas popiedades que son definidas por el que programa.
ESTILO GRAPH Y CROSSTAB
Los anteriores estilos son basados en texto. PowerBuilder provee dos estilos que permiten mostrar información gráficamente : graphs y crosstab.
DEFINIENDO LA FUENTE DE DATOS
Al definir la fuente de datos (dataSource), se especifica cuál es la fuente de datos que será usada en el Objeto Datawindow. Se puede
escoger de las siguientes fuentes de datos:
o Quick Select
o SQL Select
o Query External
o Stored Procedure
Si los datos que el Objeto DataWindow muestra, proviene de una base de datos, escoger Quick Select, SQLSelect, Query , o Stored Procedure como la Data Source.
Si los datos a recuperar son de una sola tabla y sólo necesita escoger columnas, criterio de selección y Sort (No necesita agrupar, campos calculados, etc.), escoger Quick Select SQLSelect.
Si la data ha sido definida y salvada en un query, escoger Query.
Si la data es definida en un Stored Procedure (procedimieno almacenado), escoger Stored Procedure.
Si los datos no provienen de una B.D. , escoger Select externa.
Esto incluye las siguientes situaciones:
Si los datos serán importados de un archivo externo, tal como un archivo de texto separado por un tab o archivo Xbase(DBF).
Si los datos serán importados de una aplicación DDE.
QUICK SELECT
Si sólo necesita seleccionar columnas de una sola tabla, use Quick Select data source, el Quick Select genera una sentencia SQL.
SQL SELECT
Cuando el SQL Select como Data Source, se construye la sentencia SQL select (grafico o texto) que puede incluir lo siguiente:Más de una tabla
o Criterio de selección (clausula Where)o Criterio de Sort(clausula Order By)o Criterio de agrupamiento (clausula group By y Having)
o Columnas Computadas
CREANDO UN CONTROL DATAWINDOWS
Un control datawindow, como todo control, va pegado en una ventana.
Para crear un control datawindow y asociarlo con un objeto datawindow, seguir los siguientes pasos:
o Crear una nueva ventana (window).o Seleccionar de la barra de herramientas el control
datawindow (ver lista que aparece al lado izquierdo).
o Pegar el control en la ventana, dándole el tamaño que se estime va a tener el datawindow que se desea mostrar.
o Asociar el control datawindow al objeto datawindow anteriormente creado.Para ello, dar doble click sobre el control datawindow y aparecerá la ventana de propiedades en la que se colocará en el áreaDataWindow Object Name, el nombre del datawindow objeto.
o Es conveniente que el nombre del datawindow control sea el mismo que el del datawindow objeto.
o En el script de la ventana, en la que se encuetra el control datawindow en el evento open, escribir el siguiente código:
dw_coleccion. settransobject(sqlca)dw_coleccion.retrieve( )
o Si la aplicación no tiene código para CONEXION a base de datos, escribir el siguiente código en el evento open de la aplicación.
CONTROLANDO LA ACTUALIZACION
Para controlar la actualización de un datawindow, seguir los siguientes pasos:
o Hacer un click con el botón derecho del mouse en el control datawindow. Aparecerá una lista como la que se aprecia en la figura.
o Seleccionar la opción: Modify DataWindow....
o A continuación aparecerá el entorno datawindow (datawindow workspace).
o Seleccionar el menú Rows, la opción Update Properties.
o Hacer click en OK y el datawindow tendrá la propiedad de actualización.
o A continuación aparecerá una ventana similar a la siguiente, en la que se hará un check al checkbox Allow Updates.
COMPONENTES DE UN DATAWINDOWS
Un datawindow consta principalmente de las siguientes áreas:
En otro tipo de datawindow, también existen áreas como:
Group Header : Muestra información acerca de los grupos de la cabecera.
Group Trailer : Muestra los totales por cada grupo creado.
Barra de color : Se puede cambiar el color del background, texto, etc., desde el popup del menú.
EVENTOS DE UN DATAWINDOWS
Los eventos más importantes del objeto datawindow son:
Evento Se ejecuta cuando ... .
Clicked
El usuario ejecuta un click con el ratón.
Constructor
Este evento está presente en casi todos los objetos de PB. Se ejecuta cuando el sistema acaba de crear el objeto.
DbError
Ha ocurrido un error de base de datos. Util para capturar errores de la base de datos y tratarlos según nuestro criterio.
Destructor
El sistema destruye los objetos, normalmente al cerrar una ventana.
EditChanged
Cada vez que el usuario pulsa una tecla y modifica un carácter del contenido de un campo.
Error
Se produce un error de validación en un campo.
ItemChanged
El usuario ha modificado un campo e intenta cambiar de campo con la tecla tab o el mouse. Util para validar los datos, ya que nos da la oportunidad de rechazar lo que el usuario ha introducido.
ItemError
El usuario ha producido un itemchanged pero los datos que contiene el campo no pasan las reglas de validación introducidas en el datawindow object.
ItemFocusChanged
El usuario cambia de campo.
RetrieveEnd
Ha finalizado una instrucción retrieve (consulta a la base de datos).
RetrieveRow
Mientras se está ejecutando una instrucción retrieve y recuperamos cada una de las filas.
RetrieveStart
Antes de que se lance la instrucción SQL Select contra la base de datos.
RowFocusChanged
El foco cambia de fila. Cuidado con esta instrucción porque se ejecuta por sí sola cuando hacemos un insert, un delete o un retrieve.
SqlPreview
Cada vez que ejecutamos funciones de PB que afectan a la base de datos.
Retrieve,
Update, etc. Muy útil para depurar el sql que se está generando.
UpdateEnd
Ha finalizado la actualización de la base de datos.
UpdateStart
Antes de que empiece la actualización de la base de datos.
Para finalizar DataWindows, algo importante: Normalmente, primero pegas un datawindow control en la ventana, y después le asignas un datawindow object que debes haber creado antes. Pero también se puede hacer ésto dinámicamente a través de un script. El atributo DataObject (de tipo string) es el que asigna el data object a la datawindow. Piensa por un momento en las posibilidades que ésto ofrece.
EL LENGUAJE
POWERSCRIPT
PowerBuilder tiene un ambiente de trabajo llamado PowerScript, el cual sirve para escribir el código de la aplicación. Estos comandos corresponden al lenguaje de programación llamado PowerScript.
El lenguaje PowerScript es muy extenso y se suele recordar todas las instrucciones necesarias para poder realizar programas más o menos complejos. El archivo de ayuda no está organizado para iniciar un aprendizaje, aunque más adelante su uso será de mucha utilidad. Este capítulo servirá para saber qué función se ha de utilizar, y qué nombre tiene en el archivo de ayuda.
¿QUE ES EL SCRIPT?
El script es un conjunto de uno o más comandos del lenguaje PowerScript que se ejecutan en respuesta a la ejecución del evento que lo invocó, es decir, siempre está asociado a un determinado evento.
En los scripts se hace referencia a ventanas, controles, objetos, menúes, variables y a sus atributos, los cuales pueden ser modificados.
Ejem:
FACILIDADES DEL PINTOR POWERSCRIPT
o Posee herramientas de edición por medio de comandos y menúes que permiten copiar, cortar, pegar, borrar, seleccionar y eliminar comentarios.
o Posee listbox que contienen las variables, objetos y comandos, los cuales, al ser seleccionados, son pegados en la posición en la que se encuentra el cursor.
PRONOMBRES USADOS POR EL POWER SCRIPT
Los Pronombres usados en el PowerScript son:
This Super Parent ParentWindow
referencia al objeto actual.referencia al objeto del que hereda el actual.referencia al objeto que contiene el actual.referencia a la ventana que contiene el menú (solo vale para menúes).
TIPOS DE DATOS
PowerScript provee 3 tipos de datos :
ESTANDAR :
Similares a muchos lenguajes de programación, el PowerScript utiliza estos tipos de datos cuando declara variables o array, así tenemos los siguientes ejemplos:
Tipo Descripción
Blob Usado para almacenar imágenes textos grandes..Boolean True o False.Char Sólo carácter._________________________________________________________________________Date Fechas._________________________________________________________________________Datetime La fecha y la hora en un solo tipo de dato.Decimal Número decimal con signo de 18 dígitos.Double Punto flotante.Int Entero con signo de 4 bytes.Long Entero largo de 6 bytes.
OBJETOS DEL SISTEMA
En PowerBuilder se manipula objetos como windows, menúes, controles.
Internamente el PB define estos tipos de objetos como un tipo de dato
Ejemplo :
Para definir una variable window: window mi_window
Para definir una variable menú: Menu mi_menu
Definir una variable commandbutton: Commandbutton mi_comando
ENUMERADOS:
Puede ser usado de dos formas :
Como argumento en funciones y para especificar el atributo de un objeto o control.Cada tipo de dato enumerado puede ser asignado con un conjunto fijo de valores. Estos valores siempre terminan en exclamación (!).
Ejemplo :
El tipo de dato Alignament, puede ser asignado a uno de los tres siguientes valores : Center!, left! y right!
TIPOS DE VARIABLES
PowerScript reconoce 4 tipos de variables:
Variables Globales : Cuando se quiere disponible en cualquier parte de la aplicación.
Variables de instancias(Instance): Cuando necesite tener variables que son accesadas por más de un script dentro de un objeto, pero no necesita ser global para toda la aplicación
Variables compartidas(Shared): Las variables compartidas son asociadas con la definición del objeto, es decir, todas las instancias de ese objeto tienen a esta variable común.
Variables locales: Cuando se necesite una variable temporal, éstas son definidas en el script y sólo pueden usarse en dicho script.
OPERADORES
PowerBuilder soporta los siguientes tipos de operadores:
FUNCIONES MAS UTILIZADAS
FUNCIONES PARA VENTANAS:
open
opensheet
openWithParm
openSheetWithParm
close
Abrir una ventana.
Abrir una ventana dentro de otra ventana del tipo mdi.
Abrir una ventana enviándole un parámetro.
Abrir una ventana dentro de otra del tipo mdi enviándole parámetro.
Cerrar una ventana. Close(parentWindow) y close (parent)
son válidas.
BUFFERS DEL DATAWINDOWS
Primary!Es el buffer por defecto. El que el usuario modifica con el teclado.
Original!Es el buffer que guarda los datos tal y como se recuperaron de la base de datos.
Deleted!Guarda las filas borradas.
Filtered!Cuando aplicamos un filtro a la datawindow, aquí se almacenan las filas que no se ven, y que han desaparecido del buffer Primary!
Ejemplo del uso de buffers:Cuando un usuario borra una fila, ésta no desaparece de la memoria, sino que simplemente se mueve del buffer Primary al Deleted. Así que si queremos, podemos recuperarla sin acceder a la base de datos.
FUNCIONES DEL DATAWINDOW
AcceptTextProvoca la validación del campo actual si el usuario no pulsó tab.
DBCancelProvoca la cancelación de un retrieve( ) en curso.
DeletedCountDevuelve el número de filas que el usuario ha borrado.
DeleteRowBorra una fila.
DescribeDevuelve información muy detallada sobre la estructura de la DataWindow.
FilterEjecuta el filtro actual (véase setFilter).
GetChildDevuelve un apuntador a una DataWindow contenida dentro de otra.
GetColumnDevuelve el número de columna actual.
F UNCIONES
GetColumnNameDevuelve el nombre de la columna actual.
GetItemxxxxxx representa un tipo de dato. Devuelve el valor contenido en una columna.
GetItemStatusDevuelve el status de una fila o columna.
GetRowDevuelve el número de fila actual.
GetSQLSelectDevuelve la select de la datawindow.
GetTextDevuelve un string que contiene el valor de una columna que está siendo editada antes de que el usuario la confirme cambiando de campo.
GetValueDevuelve un string conteniendo el valor de una columna.
InserRowInserta una fila en blanco.
ModifyModifica la estructura interna de una datawindow.
DE
DATAWINDOWS
Imprime una datawindow.
RetrieveEjecuta una select contra la base de datos y muestra los datos en la datawindow.
RowCountCuenta las filas en una datawindow.
SaveAsSalva el contenido de una dw en un fichero. Soporta diversos formatos incluyendo excel, texto, rtf y html.
ScrollToRowScrollea la datawindow hasta una fila y la hace visible (no confundir con setRow()).
SetColumnCambia el foco a una columna en concreto.
SetFilterModifica las condiciones de filtro de una DW.
SetFocusColoca el foco en una datawindow.
SetItemModifica el valor de una columna.
SetItemStatusModifica el status de una fila o columna.
SetRowHace que la fila especificada sea la actual.
SetSortModifica las condiciones de ordenador.
SetTransObjectEnlaza una datawindow con el objeto transacción. Para que una datawindow funcione es imprescindible ejecutar la siguiente instrucción:
NombreDw.SetTransObject(SQLCA)
ShareDataHace que una datawindow comparta datos con otra (se puede conseguir un efecto de espejo).
SortOrdena una Dw con las condiciones especificadas con SetSort().
UpdateGraba las modificaciones en la base de datos.
Ejemplos:
Hay muchas más funciones pero éstas son las que permiten crear un programa más o menos completo que modifique una base de datos.