Anda di halaman 1dari 154

PowerBuilder Developer v10.

0 PBDV10- Laboratorio

Laboratorio

PowerBuilder Developer V10.0 PBDV10


cursos@techeras.com www.techeras.com

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 1 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Laboratorio

PowerBuilder Developer V10.0 PBDV10


2005 TechEra e-Learning www.techeras.com

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 2 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Estructura de Directorio de los Archivos del Laboratorio Vista General

Asegurarse que se encuentra en el Directorio correcto. Su directorio de trabajo para el Laboratorio y las aplicaciones de Ventas es C:\Cursos TechEra\PBDV10.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 3 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 1-1: Creando el Ambiente de Desarrollo


Objetivo: Crear un Workspace para el ambiente de desarrollo Para empezar a desarrollar con PowerBuilder, lo primero que tenemos que crear es nuestro Workspace, donde le asignaremos un nombre para que sea identificado como nuestra rea de trabajo.

En la ventana New de PowerBuilder escogemos el tab Workspace y hacemos doble clic sobre el icono workspace.

El nombre a ingresar puede ser opcional, nosotros le agregamos techera, y nos crear un archivo de extensin .pbw, en el directorio indicado.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 4 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Luego de ingresar el nombre, PowerBuilder nos muestra el workspace creado y la ruta donde se ha generado este archivo, ahora falta agregarle los targets para poder trabajar.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 5 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 1-2 : Creacin de los Targets de la Aplicacin


Objetivo: Crear el PowerScript Target para la Aplicacin Ventas Luego utilizaremos el wizard para crear los targets en este caso vamos a crear el wizard para crear el objeto application, el cual nos va a crear el PowerScript Target, esto lo ubicamos haciendo New en el toolbar y seleccionamos el tab Target y hacemos doble click en Application, como se muestra en las figuras de abajo.

Por ahora solo trabajaremos con el target Application

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 6 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Cuando se ingresa un nombre de Aplicacin automticamente te crea una librera con este mismo nombre y un target, tal como se muestra a continuacin.

Luego de ingresado los valores PowerBuilder nos muestra, el target ventas.pbt, la librera ventas.pbl y el objeto application ventas. Ahora puedes crear tus dems objetos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 7 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 1-3 :Creacin de las Libreras de Desarrollo


Objetivo: Crear las libreras para almacenar los objetos de la Aplicacin Ventas Para trabajar en PowerBuilder se necesitan crear Libreras, en estos archivos es donde se almacenan los objetos de PowerBuilder, para tal efecto vamos a crear libreras donde vamos a almacenar los objetos, se recomienda crear libreras por cada tipo de objeto, asimismo es recomendable que las libreras no tengan un tamao mayor al de 1 MB, ni tampoco la creacin de demasiadas libreras. Como PowerBuilder es una herramienta orientada a Objetos se recomienda crear libreras donde se van a guardar todas las clases principales de donde se van a heredar, como se indica a continuacin : Acceder al painter del Library para crear libreras, esto lo realizamos presionando el icono Library del PowerBar, como se ilustra.

Una vez en el painter del Library, procedemos a crear las libreras presionando el icono Create Library

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 8 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Las libreras deben ser ingresadas y sern guardadas en el directorio indicada, las libreras a crear se indican a continuacin: base_win.pbl base_dw.pbl base_uo.pbl base_fun.pbl base_mn_pbl

Luego para trabajar con los objetos de estas libreras base se recomienda crear libreras para la aplicacin a desarrollar en este caso vamos a crear un sistema de ventas y para esto crearemos las libreras necesarias : ventas_win.pbl ventas_dw.pbl ventas_uo.pbl ventas_fun.pbl ventas_mn.pbl

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 9 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Luego de haber finalizado la creacin de las libreras necesarias para el desarrollo del Sistema de Ventas se necesita poder compartir estas libreras a fin de intercambiar objetos entre las diferentes libreras como se muestra a continuacin :

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 10 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 2-1: Creacin de las clase Window de la Aplicacin


Objetivo: Crear un objeto Window y trabajar con sus propiedades y crear eventos de Usuario Objeto window ancestro Este objeto ser el principal de toda aplicacin, asimismo se deber de guardar con el nombre de w_ancestro y ser guardado en la librera base_win.pbl, por ser una clase de objeto, a continuacin detallamos como se crea una objeto window. Acceder al Icono New del PowerBar

Luego en el tab PB Object, escogemos el icono Window y hacemos doble click para crear un window

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 11 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Una vez escogido la opcin nos muestra el objeto window, y lo grabamos con el nombre de w_ancestro, para efectos de poder grabar debemos de realizar alguna modificacin para que se active la opcin de grabar.

Asignacin de eventos y funciones generales Para poder reutilizar las propiedades de los objetos ancestros vamos agregar las opciones necesarias a estos, empezaremos con agregarles eventos de Usuario (user events)

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 12 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Para crear user events, escogemos el List box y la opcin (New Event), y solo agregaremos el nombre de los eventos, la funcionalidad luego ser programada.

ue_nuevo ue_eliminar ue_grabar ue_anular ue_buscar ue_imprimir ue_preliminar ue_siguiente ue_anterior ue_inicio

ue_fin ue_validar ue_postvalidar ue_zoom ue_regla ue_guardarcomo ue_pag_siguiente ue_pag_anterior ue_pag_inicio ue_pag_fin

Creacin de Variables de Instancia Muchos de los objetos a heredar utilizan variables, para esto vamos a declarar las siguientes variables de instancias en la clase principal w_ancestro.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 13 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 3-1: Creacin de la Ventana de Operacin


Objetivo: Poder crear una objeto Window y realizar la programacin con el Lenguaje PowerScript sobre los controles

Ahora crearemos una ventana y lo guardaremos en la librera ventas_win.pbl.

Le agregaremos los siguientes controles: 3 Controles SingleLineEdit 1 Control DropDownListBox 4 Controles StaticText y 1 Control CommandButton

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 14 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Los objetos creados, se ubican en diferentes posiciones, pero PowerBuilder te provee de una opcin que te permite ordenar todos los controles, lo que se tiene que realizar es seleccionar los controles a ordenar y escoger una de las opciones como se muestra a continuacin:

Para poder realizar el proceso de Operacin necesitamos varios valores en el control DropDownListBox, estos datos son ingresados en sus propiedades en el tab Items, y procedemos a ingresar los valores de la operacin tal como se ilustra.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 15 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Luego de haber agregado los controles y configurado sus propiedades, el siguiente paso es realizar la codificacin del Script, esto lo realizamos con el lenguaje PowerScript, un lenguaje similar a las dems herramientas, PowerBuilder se caracteriza por tener un orden, y para esto debemos de codificar teniendo en cuenta los estndares para cada variable y tipo de dato, el siguiente cdigo es para realizar el proceso de clculo.

Ahora procedemos a grabar este objeto window con el nombre de w_operaciones en la librera ventas_win.pbl.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 16 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El paso final para probar el objeto creado es programar el evento Open del objeto application ventas, de donde invocaremos a la ventana w_operaciones, el cdigo se muestra a continuacin:

Ahora ingresamos y escogemos valores de los controles para verificar que la codificacin realizada fue correcta.

Felicitaciones!, haz creado tu primera aplicacin en PowerBuilder, esto realmente es lo bsico, pero ya viene lo ms interesante, el proceso de creacin de clases, herencia, la interaccin con la base de datos, trabajar con los DataWindows. Ahora pon en prctica lo aprendido y crea una ventana de Ingreso de tu Nombre y muestra un mensaje, tienes libertad para el diseo y la programacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 17 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 4-1: Creacin del Objeto Men Base de la Aplicacin


Objetivo: Poder Crear y Trabajar con los objetos Men de PowerBuilder Objeto men ancestro Ahora vamos a crear una clase men principal para toda la aplicacin, este objeto deber ser guardado con el nombre de m_ancestro y deber ser ubicado en la librera base_mn.pbl, crearemos el objeto men como se indica a continuacin : Primero escogemos la opcin New del Toolbar como se muestra en la figura.

En la ventana de dilogo escogemos el tab PB Object y escogemos el icono de men y presionamos doble click como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 18 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora necesitamos agregarle items al objeto men, por lo general se sigue el estndar del GUI el cual est basado en una norma para desarrollar aplicaciones de entorno grfico como se muestra en la figura y en la tabla.

Luego de agregar los items, estos son mostrados de forma automtica para poder verificar el diseo del men.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 19 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Tabla de la Lista de items del objeto menu Archivo Nuevo Abrir Cerrar Guardar Guardar Como Imprimir Preliminar Setup Salir Configuracin (items configuracin de aplicacin) Editar Deshacer Repetir Cortar Copiar Pegar Ver 1 2 3 4 (Opcionales (Opcionales (Opcionales (Opcionales para los para los para los para los procesos) procesos) procesos) procesos)

Reporte (se agrega las opciones de reportes)

Ventana Vertical Horizontal Cascada ...

Ayuda Ayuda Indice Acerca de..

Opciones Nuevo Eliminar Grabar Anular Buscar Imprimir Preliminar Siguiente Anterior Inicio Fin (estas opciones invisibles)

son

Nota : Cuando se crean los items para las opciones nuevo, eliminar, grabar etc. La propiedad del toolbar del men el ToolbarItemVisible debe de ser desactivado en el m_ancestro, esto posteriormente ser activado cuando sea requerido.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 20 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 4-2: Creacin de las subclases principales del Men


Objetivo: Poder Heredar desde la clase principal y reutilizar sus propiedades Primero vamos a crear los objetos men, que van a ser asignados a todos los objetos windows que posteriormente vamos a crear, se crearn los siguientes objetos que se indican : m_main m_sheet m_impresion Objeto men para la aplicacin general Ahora vamos a heredar de la clase m_ancestro y vamos a crear el objeto m_main, este objeto estar relacionado con la aplicacin que se va a desarrollar, en tal sentido lo vamos a guardar en las libreras de la aplicacin de sistemas, en ventas_mn.pbl, como se muestra en la figura. Heredar de la clase m_ancestro

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 21 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio A este objeto m_main, le vamos a modificar los items 1 y 2 y lo vamos a renombrar con Mantenimientos y Procesos, para darle una forma orientada a la Aplicacin que vamos a realizar, el objeto debe de quedar tal como se muestra a continuacin.

NOTA : Las opciones que no van a ser utilizados deben de tener la propiedad de visible desactivada a fin de poder tener un diseo adecuado en la aplicacin, esto se realiza en el tab General.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 22 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Objeto men para las ventanas de la aplicacin


En esta parte se crear el objeto men que ir asociado a las ventanas de la aplicacin al cual la denominaremos m_sheet, y que ser heredada del objeto men m_main, como se muestra en la figura, asimismo los items del men Opciones deben de ser habilitadas en las propiedades del Toolbar, en la opcin ToolbarItemVisible activar el check, tambin debemos de desactivar algunos items de la barra principal como el de ayuda, para que no sea mostrado dos veces en el toolbar.

Objeto men para las impresiones Para poder trabajar con los objetos con los formularios preliminares de los DataWindows a imprimir, debemos de crear un men para estos objetos, el cual vamos a heredarlo desde el objeto men m_main, y las propiedades del item Opciones lo vamos a activar en la propiedad del ToolbarItemVisible de acuerdo a lo que se muestra a continuacin :

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 23 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 5-1: Creacin de SubClases Window:


Objetivo: Poder realizar herencia y reutilizar sus propiedades En esta parte vamos a crear todos los objetos window base para nuestra aplicacin, por eso vamos a heredar del objeto ancestro como se indica a continuacin, los objetos a crear son los siguientes: w_mantenimiento (main) w_cabecera_detalle (main) w_mdi (mdihelp!), se le debe agregar el objeto menu m_ancestro por ser requerido una asignacin de objeto menu a los window mdi. w_login (response) w_buscar (response) w_preview (main) w_sheet (main)

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 24 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora empezamos a heredar desde el System Tree como se muestra en la figura, este proceso ser realizado para los dems objetos.

NOTA: Se recomienda primero crear todas las ventanas de la parte de diseo a fin de poder invocarlos cuando se generen las dems clases

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 25 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Objeto window MDI para las aplicaciones principales


En esta parte vamos a crear el objeto Window MDI y le asignaremos el nombre de w_mdi y ser guardado en la librera base_win.pbl, esta subclase nos servir para crear un modelo para todas las aplicaciones futuras, aqu le vamos a agregar y asignar las opciones necesarias, como el objeto men m_ancestro y activar la propiedad WindowState a maximized!.

Objeto window mantenimiento


Esta subclase nos va a permitir crear un modelo para todos los mantenimientos de la aplicacin aqu vamos a programar los eventos y funciones que se indican a continuacin: El primer paso a seguir es asignarle un control DataWindow, para que se le asigne posteriormente el objeto DataWindow asociado a las datos respectivos, el nombre por defecto de este control es dw_1.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 26 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Asociando un men al objeto w_mantenimiento Por ahora le agregaremos el objeto men ancestro m_ancestro, luego ser cambiado por el men m_sheet de la aplicacin final.

Programacin de los eventos del objeto w_mantenimiento Evento Open :

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 27 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Evento ue_nuevo : //***Permite limpiar al control DataWindow y agregarle una nueva fila dw_1.Reset() dw_1.InsertRow(0)

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 28 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Evento ue_eliminar : //***Elimina una fila del DataWindow as como de la base de datos IF dw_1.Deleterow(0) = 1 THEN COMMIT; MESSAGEBOX('OK',"SE ELIMINO LA FILA") triggerevent('ue_nuevo') ELSE ROLLBACK; MESSAGEBOX('ERROR',"NO SE ELIMINO LA FILA") END IF Evento ue_grabar : //***Actualiza la base de datos triggerEvent('ue_validar') IF dw_1.update() = 1 THEN COMMIT; messagebox("OK","SE ACTUALIZO LA BASE DE DATOS") ELSE ROLLBACK; messagebox("ERROR","PROBLEMAS AL MOMENTO DE GRABAR") END IF triggerEvent('ue_post_validar') Evento ue_buscar Antes de programar este evento, primero debemos de crear la funcin f_buscar(as_DataWindow), donde le enviaremos como argumento por valor el nombre del objeto DataWindow que queremos que se muestre en pantalla para buscar los datos requeridos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 29 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio En el Tab PB Object, hacemos doble click en el icono Function para crear nuestra funcin f_buscar().

Luego de escoger la opcin de creacin de funcin, procedemos a ingresar el cdigo como se muestra en la siguiente figura, que ejecuta una funcin para abrir el objeto window w_buscar envindole un argumento.

NOTA: Al momento de realizar la compilacin, debe de salir un mensaje de que Objeto w_buscar no existe, lo que se tendr que realizar es heredar y crear temporalmente el objeto w_buscar, ahora vuelva a compilar

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 30 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora procedemos a programar el evento ue_buscar. Evento ue_buscar : //*** busca los valores en la lista de la tabla seleccionada string ls_valor f_buscar(is_DataWindow) ls_valor = message.Stringparm IF ls_valor <> '*' THEN dw_1.Retrieve(ls_valor) END IF Nota: te dice que la variable de instancia is_datawindow no existe, entonces lo que tienes que hacer es comentar esa linea de cdigo y como se va a usar en todos los objetos hay que crearla en el objeto ancestro w_ancestro. Evento ue_imprimir : //***Manda a imprimir los datos del control DataWindow dw_1.Print() Evento ue_preliminar Para programar este evento debemos de crear algunos objetos complementarios, uno de ellos es crear un objeto Structure para poder manipular un grupo de variables. Creacin del objeto Structure str_valores Para poder trabajar con un grupo de datos que pasaremos como argumentos al objeto w_preview vamos a crear un objeto Structure como se indica a continuacin :

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 31 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Luego de escoger la opcin Structure, procedemos a ingresar los valores al objeto a fin de que reciba los valores y puedan ser almacenados.

Le vamos a asignar el nombre de str_valores, y sern utilizados por las clases principales.

Ahora debemos de crear la funcin f_preliminar(as_DataWindow, as_codigo) y guardarlo en las libreras base en base_fun.pbl.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 32 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora procedemos a escoger el icono function para crear la funcin

A la funcin f_preliminar le agregaremos dos argumentos de tipo string e ingresaremos el cdigo que se muestra en la figura, as como utilizar el objeto structure str_valores previamente creado.

Nota: verificar que la funcin active la ventana w_mdi Evento ue_preliminar : //***Muestra en un formato de impresin preliminar los datos a Imprimir f_preliminar(is_dw_print,is_argumento) Nota: tienes problemas con las variables is_dw_print e is_argumento, debes de declararlas en el objeto ancestro w_ancestro porque van a ser utilizadas por todos los dems objetos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 33 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Evento ue_siguiente : //*** Avanza de registro en registro IF dw_1.Rowcount() <= 1 THEN dw_1.Retrieve() END IF dw_1.ScrollNextRow() Evento ue_anterior : //*** Retrocede de registro en registro IF dw_1.Rowcount() <= 1 THEN dw_1.Retrieve() END IF dw_1.ScrollPriorRow() Evento ue_inicio : //***Avanza hasta la primera fila del control DataWindow dw_1.ScrolltoRow(1) Evento ue_fin : //***Avanza hasta la ltima fila del control DataWindow dw_1.ScrolltoRow(dw_1.Rowcount())

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 34 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Objeto window para bsqueda de datos


Ahora vamos a trabajar el objeto w_buscar, que debe ser heredado del objeto w_ancestro, le vamos a asignar los siguientes controles, un control DataWindow para contener los datos donde vamos a realizar la bsqueda, dos botones para las opciones de aceptar y cancelar como se muestra en la figura de abajo :

Ahora tenemos que activar las propiedades HscrollBar y el VscrollBar para que el usuario pueda desplazarse por la lista de datos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 35 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Evento Open del objeto w_buscar Este evento recibir un valor a travs del objeto Message y ser asignado al control DataWindow para que muestre los datos.

Evento Clicked del control CommandButton cb_1 //***Obtiene el valor de la fila actual y lo devuelve a la variable ls_codigo string ls_codigo ls_codigo = dw_1.GetItemstring(dw_1.GetRow(),1) closewithReturn(parent,ls_codigo) Evento Clicked del control CommandButton cb_2 //***Retorna el valor '*' para indicarle que no seleccion nada closewithreturn(parent,'*') Evento RowFocusChanged del control DataWindow dw_1 //*** Marca la fila actual y desmarca la anterior SelectRow(0, FALSE) SelectRow(currentrow, TRUE) Evento Doubleclicked del control DataWindow dw_1 //***llama al evento Clicked del control cb_1 cb_1.triggerevent("clicked") Una vez finalizado la codificacin del objeto w_buscar, este objeto ser invocado por todas las opciones que requieran buscar datos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 36 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Objeto window para la vista previa


Ahora vamos a implementar el objeto w_preview para que nos pueda permitir realizar una vista preliminar a los datos que vamos a imprimir, lo primero que tenemos que hacer es darle la apariencia de una hoja en blanco, as como agregarle un control DataWindow para que pueda contener a los objetos DataWindows como se muestra en la figura, los nombres que se asignarn ser los que son generados por defecto.

Asociacin del objeto men al objeto w_preliminar Para poder manipular las opciones del objeto w_preliminar debemos de asociarle un men, para nuestro caso le vamos a asociar el menu m_ancestro, luego ser cambiado por el m_impresin de la aplicacin final.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 37 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Evento Open del objeto w_preliminar //***Permite abrir el objeto w_preliminar y presentarlo como un preliminar string ls_DataWindow str_valores str_destino str_destino = message.PowerObjectParm dw_1.dataobject = str_destino.as_DataWindow dw_1.SetTransObject(SQLCA) IF NOT IsNull(str_destino.as_codigo) OR Len(trim(str_destino.as_codigo)) > 0 THEN dw_1.Retrieve(str_destino.as_codigo) ELSE dw_1.Retrieve() END IF //*** Permite mostrar al dw en formato preliminar dw_1.modify('DataWindow.print.preview = yes') //*** Permite mostrar al dw una regla de divisin dw_1.modify('DataWindow.print.preview.zoom = 50') Evento ue_zoom del objeto w_preliminar //*** Permite mostrar al dw una regla de divisin dw_1.modify('DataWindow.print.preview.zoom = 80') NOTA: Este Evento puede ser modificado para que el cambio de tamao sea dinmico. Evento ue_regla del objeto w_preliminar //***Muestra la regla en el control DataWindow IF is_ruler = 'YES' THEN dw_1.modify('DataWindow.print.preview.rulers = yes') is_ruler = 'NO' ELSE dw_1.modify('DataWindow.print.preview.rulers = no') is_ruler = 'YES' END IF Evento ue_guardarcomo del objeto w_preliminar //***Permite guardar los datos en el formato que se le indique dw_1.SaveAs()

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 38 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Evento ue_pag_siguiente del objeto w_preliminar //***Permite avanzar de pgina en Pgina dw_1.scrollnextpage() Evento ue_pag_anterior del objeto w_preliminar //***Retroce de pgina en pgina dw_1.scrollpriorpage() Evento ue_pag_inicio del objeto w_preliminar //*** Se posiciona en la primera pgina dw_1.ScrollToRow(1) Evento ue_pag_fin del objeto w_preliminar //***Se posiciona en la ltima pgina dw_1.scrolltoRow(dw_1.Rowcount())

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 39 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Objeto window cabecera/detalle


Para trabajar con procesos que tengan dos tablas vamos a crear un objeto con una cabecera y detalle, para esto vamos a trabajar con el objeto w_cabecera_detalle y le vamos a agregar dos controles DataWindows como se muestra en la figura.

Ahora debemos de asociar el men m_ancestro al objeto w_cabecera_detalle para que podamos acceder a las opciones para manipular al objeto, esto ser cambiado por el men m_sheet en la aplicacin final.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 40 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Una vez definido la interfaz del objeto w_cabecera_detalle, procedemos a programar los eventos necesarios para poder trabajar con los dos controles DataWindows, asimismo para este efecto vamos a reutilizar algunas funciones que hemos creado previamente. Tambin se tienen que agregar nuevos eventos a fin de poder trabajar con el DataWindow del detalle, estos son : ue_nuevo_det ue_eliminar_det ue_buscar_det ue_validar_print Y declarar una variable de instancia : STRING is_dw_det_buscar Evento Open del objeto w_cabecera_detalle //***Permite conectar a los dos controles DataWindows con la base de datos dw_1.SetTransObject(SQLCA) dw_1.InsertRow(0) dw_2.SetTransObject(SQLCA) dw_2.InsertRow(0) Evento ue_nuevo del objeto w_cabecera_detalle //***Permite borrar los dos DataWindows y asignarle una fila nueva dw_1.Reset() dw_1.InsertRow(0) dw_2.Reset() dw_2.InsertRow(0) Evento ue_nuevo_det del objeto w_cabecera_detalle //*** Permite insertar un nuevo registro en el detalle dw_2.insertrow(0) Evento ue_grabar del objeto w_cabecera_detalle //***VALIDA CONSISTENCIA DE DATOS triggerEvent('ue_validar') //***Graba los datos de la cabecera y el detalle IF dw_1.Update() = 1 AND dw_2.Update() = 1 THEN COMMIT; messagebox('OK','SE ACTUALIZO LA BASE DE DATOS') ELSE ROLLBACK; messagebox('ERROR','NO SE ACTUALIZO LA BASE DE DATOS') END IF TriggerEvent('ue_postvalidar')
___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 41 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Evento ue_eliminar del objeto w_cabecera_detalle //***Permite eliminar los datos actuales tanto de la //***cabecera como el detalle IF messagebox('PREGUNTA','DESEA ELIMINAR LOS DATOS',Question!, OKCancel!, 2) = 1 dw_1.Deleterow(0) dw_2.Deleterow(0) COMMIT; ELSE ROLLBACK; END IF triggerEvent('ue_nuevo') Evento ue_eliminar_det del objeto w_cabecera_detalle //***Elimina el registro actual del detalle dw_2.deleterow(0) Evento ue_buscar del objeto w_cabecera_detalle string ls_valor THEN

//*** Utiliza la funcin que fue creada para el proceso de bsqueda f_buscar(is_dw_buscar) ls_valor = message.Stringparm IF ls_valor <> '*' THEN dw_1.Retrieve(ls_valor) dw_2.Retrieve(ls_valor) END IF Evento ue_buscar_det del objeto w_cabecera_detalle //***permite realizar una bsqueda que ser asignada al detalle f_buscar(is_dw_det_buscar) Evento ue_preliminar del objeto w_cabecera_detalle //***Permite hacer un previo a lo que se va a imprimir triggerEvent('ue_validar_print') f_preliminar(is_dw_print,is_argumento) Evento ue_imprimir del objeto w_cabecera_detalle //***Permite hacer una impresin dw_1.print()

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 42 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego de haber ingresado el cdigo necesario para el objeto w_cabecera_detalle, necesitamos que los controles DataWindow manipulen los datos para tal efecto agregaremos el siguiente cdigo y crearemos el objeto men popup. Crearemos un objeto men popup para poder manipular el control DataWindow dw_2 que es el detalle, para realizar esto presionaremos el icono New del PowerBar y escogeremos la opcin PB Object y haremos doble click en Men, como se muestra en la figura.

Una vez escogido el icono men procedemos a disear el men popup como se muestra a continuacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 43 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El men popup debe tener los items que se muestra en la figura.

A cada opcin de los items creados se le debe de agregar el cdigo que se muestra en la figura, a fin de que puedan activar los eventos del objeto window w_cabecera_detalle.

Para la opcin Eliminar le vamos agregar el siguiente cdigo: Parentwindow.triggerevent(ue_eliminar_det) Para la opcin de Bsqueda en el detalle le vamos a agregar el siguiente cdigo: Parentwindow.triggerevent(ue_buscar_det)

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 44 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego de ingresado el cdigo necesario procedemos a grabar el objeto con el nombre m_popup en las libreras base base_mn.pbl

Ahora debemos de codificar el evento rbuttondown Evento rbuttondown del control DataWindow dw_2 //***Crea una variable del popup para que se muestre en el control DataWindow especificado m_popup lmn_popup lmn_popup = create m_popup lmn_popup.m_detalle.PopMenu(w_mdi.PointerX(),w_mdi.PointerY()) Nota: el argumento w_mdi, luego debe ser cambiado por el objeto MDI de la aplicacin final, para nuestro caso ser w_mdi_ventas. Evento RowFocuschaged del control DataWindow dw_2 //***Marca y desmarca los registros del control DataWindow SelectRow(0, FALSE) SelectRow(currentrow, TRUE)

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 45 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Objeto Window para ingreso de usuario y clave


Vamos a disear el objeto w_login el cual ser una clase que nos permita tener un objeto que proporcione seguridad a la aplicacin, para efectos de la clase solo disearemos el objeto w_login, la codificacin ser asignada en objetos heredados de este, porque se tienen que personalizar. A continuacin mostramos como debe de quedar el objeto, los controles a agregar son los siguientes : Dos controles Single Line Edit Dos controles Static Text Dos constroles CommandButton Un control Picture

Y ser guardado en las libreras base, en base_win.pbl con el nombre w_login.

Objeto window para cualquier funcionalidad


Ahora vamos a crear un objeto window genrico, para cualquier funcionalidad en la aplicacin, esto tambin lo heredamos de w_ancestro y lo guardaremos con el nombre de w_sheet en la librera base_win.pbl.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 46 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El objeto men m_ancestro debe ser asociado, a fin de que este objeto cuente con un men, luego ser cambiado por el men de la aplicacin final.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 47 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 6-1: Creacin de los Objetos User Object para la Aplicacin


Objetivos: Poder Crear clases de los controles para poder reutilizarlos Una de las reglas de oro de PowerBuilder es que se creen objetos User Object para crear objetos personalizados y poder reutilizarlos en toda la aplicacin, ahora vamos a empezar a crear objetos simples para los botones aceptar y cancelar y veremos como reflejamos la reutilizacin. Presionamos el icono New del PowerBar y escogemos el tab PB Object y hacemos doble clic en el icono Stantard Visual, como se muestra en la figura.

Ahora escogemos el tipo Visual CommandButton para crear los botones necesarios para la aplicacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 48 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Vamos a crear un objeto ancestro para todos los botones, desde este objeto heredaremos los dems.

Una vez creado el objeto ancestro uo_commandbutton, lo que tenemos que hacer es heredar desde esta clase desde el System Tree y vamos a crear el botn Aceptar y activar la propiedad Default como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 49 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lo siguiente es crear el botn cancelar, que va a ser heredado desde la clase uo_commandbutton y le activamos la propiedad Cancel, como se muestra en la figura.

Ahora vamos a crear un User Object no visual Standard Class de tipo DataStore, para trabajar con los objetos DataWindow no visuales.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 50 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Una vez escogido la opcin, lo siguiente es seleccionar el tipo DataStore para generar el objeto uo_datastore.

Luego procedemos a grabarlo con el nombre uo_datastore, por ahora solo se aceptarn los valores por defecto.

La forma como se utilizan estas clases sern mostradas por el instructor de forma prctica.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 51 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 7-1: Creacin de la Aplicacin MDI


Creacin de la aplicacin principal de PowerBuilder
Luego de haber creado nuestras clases principales para todos los procesos necesarios en una aplicacin, procedemos a crear la aplicacin, ahora vamos a trabajar con el primer objeto que es el application.

Crear un objeto application


Este objeto fue creado al momento de crear el target de ventas, el objeto se llama ventas, vamos a realizar las primeras pruebas y programaremos los siguientes eventos:

Evento open del objeto Application Ventas //***Mensaje de prueba para ejecutar la aplicacin messagebox ("Bienvenidos","Bienvenidos al mundo de PowerBuilder") Cuando se ejecute el cdigo en el objeto application ventas se debe ejecutar la aplicacin y mostrar el siguiente mensaje.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 52 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Heredar del Objeto window MDI Ahora vamos a construir la aplicacin MDI, primero tenemos que heredar del w_mdi que hemos creado y construir el objeto w_mdi_ventas que estar asociado al menu m_main que previamente se ha creado y debe estar guardado en la librera ventas_mn.

Luego debemos de asociar el objeto w_mdi_ventas con el men m_main, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 53 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora procedemos a ejecutar el objeto application ventas, pero cambiaremos la codificacin del evento Open, para poder invocar al objeto w_mdi_ventas que ser el entorno de toda nuestra aplicacin, el cdigo se especifica a continuacin : Evento Open del objeto application Ventas //***Cdigo para poder abrir el objeto w_mdi_ventas Open(w_mdi_ventas) Luego de haber asignado este cdigo procedemos a ejecutar la aplicacin y mostrar la aplicacin como se ilustra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 54 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Creacin del objeto Login para la Aplicacin


Heredar una subclase del objeto w_login, como se muestra a continuacin.

Luego nos mostrar la ventaja hija lista para ser trabajada y orientada a la seguridad para la Aplicacin de Ventas, y lo grabaremos con el nombre de w_login_ventas en la librera ventas_win.pbl.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 55 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Programar los eventos y funciones necesarios


Ahora vamos a programar el objeto window w_login_ventas, en esta primera parte vamos aplicar cdigo en duro por no tener todava conexin a la base de datos. Evento clicked del botn Aceptar (cb_1) //***Obtiene los valores ingresados por el usuario //***y los valida contra los datos en el script STRING ls_usuario STRING ls_clave ls_usuario = UPPER(sle_1.text) ls_clave = UPPER(sle_2.text) IF ls_usuario = 'USUARIO' AND ls_clave = 'CLAVE' THEN open(w_mdi_ventas) close(parent) ELSE Messagebox("ERROR","USUARIO O CLAVE NO EXISTE, INTENTE DE NUEVO") RETURN END IF Evento clicked del botn Cancelar (cb_2) //***Cierra la ventana w_login_ventas close(parent) Antes de ejecutar la aplicacin debemos de hacer el cambio en el evento Open del objeto Application ventas y poner el siguiente cdigo: Evento open del objeto Application ventas //***cdigo para poder abrir el objeto w_login_ventas open(w_login_ventas) //open(w_mdi_ventas) Cuando ejecutemos la aplicacin deber de mostrarnos la figura que aparece, y luego ingresaremos el usuario y clave, que para este caso es USUARIO y CLAVE y podremos acceder a la aplicacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 56 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

En caso de que existiera algn error en el ingreso de los datos el mensaje sera el siguiente como se muestra en la figura de abajo

Si los datos ingresados son los correctos podremos acceder a la aplicacin y se nos mostrar la figura que aparece abajo

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 57 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 10-1: Creacin de la Base de datos


Objetivo : Crear una Base de datos desde PowerBuilder

Definicin de la Base de datos


La base de datos a crearse ser para el Sistema de ventas y tendr el nombre de ventas, ser creado sobre el manejador de Base de datos Adaptive Server Anywhere, que es el motor de base de datos que viene con el instalador de PowerBuilder. Para hacerlo de una manera fcil utilizaremos el wizard que viene con el PowerBuilder para crear la Base de datos de Ventas como se muestra a continuacin : Del Toolbar escogemos la opcin DB Profile y accedemos al profile de la Base de datos

Ahora accedemos a la opcin del Database Profile y comenzamos a utilizar el wizard que se encuentra en Utilities y escogemos la opcin de Create ASA Database como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 58 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora nos muestra una ventana de dilogo del Create Adaptive Server Anywhere Database, es ah donde utilizamos los datos por defecto y en la opcin de Database Name presionamos el botn y escogemos la ruta donde queremos guardar la base de datos.

Escogemos el directorio especificado en este caso el de c:\Cursos TechEra\Base de datos\ e ingresamos el nombre, para nuestra aplicacin es ventas y presionamos Save

Luego de ingresados los valores ahora nos muestra la ventana de dilogo con los datos ingresados en la opcin User ID el valor asignado es DBA y en Password es SQL, estos valores son por defecto y se recomienda usarlos para efectos de desarrollo, en la opcin Database Name se ingres la ruta y el nombre de
___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 59 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio base de datos, ahora presionamos el botn OK. y el wizard nos crear la base de datos, esto tomar unos minutos.

Luego de creado la base de datos el wizard nos crea automticamente la base de datos, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 60 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora revisemos la opcin ODBC Administrator y veamos como nos cre el DSN automticamente, esto tambin se puede hacer manualmente si el desarrollador usa otros mecanismos de creacin de la base de datos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 61 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 10-2: Creacin de las tablas


Objetivo : Crear Tablas desde PowerBuilder
Una vez creada la base de datos y el profile en PowerBuilder ahora nos toca crear las tablas de la base de datos, tambin se puede crear el modelo de la base de datos desde cualquier herramienta case como el PowerDesigner, pero para nuestro caso lo haremos directamente desde PowerBuilder como se detalla a continuacin : Primero para acceder a este ambiente escogemos el icono DataBase, como se muestra en la figura

Una vez ingresado al ambiente del Database procedemos a escoger el profile de ventas y lo expandemos y nos ubicamos en el flder de Tables y presionamos el botn derecho del mouse para crear nuevas tablas grficamente como se muestra en la figura .

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 62 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ingresamos los campos necesarios para la tabla de usuarios como se muestra en la figura, esto se hace grficamente, luego vamos a grabar la tabla presionando el botn grabar del toolbar.

Grabando datos desde el Toolbar.

Presionado el botn grabar nos muestra una ventana de dilogo y ah ingresamos el nombre de la tabla, para nuestro caso ser usuario.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 63 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Una vez grabado el nombre, la tabla ser mostrada grficamente en el editor de PowerBuilder, ahora tenemos que crearle el Primary Key para esta tabla, esto tambin se hace grficamente como se muestra en la figura, se presiona el botn derecho en la cabecera de la tabla y se escoge la opcin Primary Key.

Para nuestro caso escogeremos el campo usuario, se tiene que tener en cuenta que para crear llaves primarias los campos deben ser not null, luego de escoger estos valores presionamos el botn grabar del toolbar y se crear el Primary Key para esta tabla. Luego de haber grabado el Primary Key la tabla tendr indicada que campos son Primary Key, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 64 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Creacin de las dems tablas del Sistema de Ventas


Luego se proceder a crear las dems tablas de la misma forma, como esto es un trabajo manual el desarrollador lo podr realizar uno por uno, asimismo todas las tablas necesarias para el sistema de ventas se encuentran en el directorio c:\Cursos TechEra\Database\finaldb, lo que tendr que hacer es realizar una copia al directorio c:\Cursos TechEra\Database\, para reemplazar la base de datos que se cre.

Creacin de una llave Fornea


Las llaves forneas son necesarias para mantener la integridad de los datos, para esto debemos tener dos tablas que tengan en comn un campo, como se mostrar a continuacin.

Utilizaremos las tablas clientes y pas, que tienen en comn el campo cdigo de pas, se los relacionar por ese campo, como se muestra en la figura, primero debemos de seleccionar la tabla clientes donde se referencia al campo de la tabla pas.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 65 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego procedemos a escoger e indicar un nombre.

El siguiente paso es seleccionar el campo de la tabla padre.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 66 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Luego el Foreing Key ser creada.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 67 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 11-1: Conexin a la base de datos desde la aplicacin


Objetivo: Conectarse desde una aplicacin cliente
Hemos logrado conectarnos a la base datos desde el ambiente de desarrollo mediante el profile database, ahora necesitamos conectarnos a la base de datos desde el ambiente de ejecucin y para tal accin vamos a trabajar con el objeto Transaction SQLCA que es creado por defecto cuando creamos el objeto Application, los pasos a seguir son los siguientes : Traer la asignacin de los datos del objeto Transaction que se encuentran declarados en el profile database en el tab preview tal como se muestra en la figura, para esto se tiene que seleccionar el profile de ventas y presionar el botn Edit.

Luego nos vamos hacia el tab Preview y todos los datos los copiaremos y los llevaremos al evento Open del objeto Application ventas.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 68 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El cdigo copiado desde el profile database lo ubicaremos antes de abrir el window w_mdi_ventas, asimismo tenemos que agregar la sentencia CONNECT y validar la conexin para asegurarnos de que fue realizado correctamente como se muestra en la figura.

Luego de haber ingresado los valores para realizar la conexin a la base de datos procedemos a verificar si efectivamente se est conectando a la base de datos, para esto debemos de ver el mensaje de conformidad de la conexin.

Ahora debemos de cambiar la ventana de MDI por la ventana de Login, osea w_login_ventas y debemos modificar el evento Open para abrir el objeto w_login_ventas, y tambin tenemos que modificar el objeto w_login_ventas, porque este objeto tiene cdigo en duro para el usuario y la clave, estos se tienen que guardar en una tabla, para nuestro caso lo vamos a guardar en la tabla usuarios.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 69 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Evento clicked del botn cb_1 del objeto w_login_ventas //***Obtiene los valores ingresados por el usuario y los valida contra los datos en el script STRING ls_usuario STRING ls_clave INTEGER li_count ls_usuario = sle_1.text ls_clave = sle_2.text SELECT count(*) INTO :li_count FROM usuario WHERE usuario = :ls_usuario AND clave = :ls_clave USING SQLCA; IF NOT IsNull(li_count) or li_count > 0 THEN open(w_mdi_ventas) close(parent) ELSE Messagebox("ERROR","USUARIO O CLAVE NO EXISTE, INTENTE DE NUEVO") RETURN END IF Esto nos permitir validar los datos ingresados de forma dinmica y segura, pero recuerde que todava no tiene ingresados valores en la tabla, as es que procederemos a ingresar dos registros para realizar las pruebas respectivas, para esto accederemos al ambiente del database, presionando el icono database del toolbar, y nos ubicaremos en el profile de ventas y extenderemos el flder de tablas y buscaremos la tabla usuario y presionaremos el botn derecho y escogeremos la opcin edit data / grid, es ah donde ingresamos los valores como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 70 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego presionamos el botn derecho para escoger la opcin Insert Row, para poder ingresar el dato

Luego de ingresado los datos presionamos el botn Save Changes como se muestra en la figura para guardar los datos ingresados.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 71 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora que ya se tienen valores en la tabla usuario, procedemos a realizar la validacin desde la aplicacin en tiempo de ejecucin. Figura 2.38 Ingreso de Usuario y clave

Con esto se ha logrado poderse conectar a la base de datos desde la aplicacin en tiempo de ejecucin, ahora vamos a interactuar con el ingreso de datos a las tablas en la siguiente seccin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 72 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 12-1: Programacin del objeto mantenimiento


Objetivo: Crear clases con acceso y manipulacin de datos
En esta parte vamos a trabajar con la clase w_mantenimiento, que tiene todo el cdigo necesario para poder trabajar con los objetos DataWindows y con la base de datos, a continuacin detallamos los pasos para poder lograr esto y acceder desde la aplicacin de Ventas Heredar un mantenimiento

Una vez heredado el objeto w_mantenimiento procedemos a grabarlo, este objeto servir para guardar los datos de la tabla usuario, as es que lo denominaremos w_mto_usuario y ser guardado en ventas_win.pbl, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 73 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 12-2: Creacin de Objetos DataWindow


Objetivo: Crear un objeto DataWindow para una tabla
Luego de haber creado el objeto w_mto_usuario, se tiene que proceder a crear el objeto DataWindow que va a ser contenido por el control DataWindow dw_1, que se encuentra en w_mto_usuario, a continuacin le detallamos como crear un objeto DataWindow desde la tabla usuario. Presionamos el icono New en el toolbar para crear el nuevo objeto DataWindow.

Luego escogemos el tipo FreeForm del tab DataWindow.

Ahora escogemos el Origen de datos SQL Select

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 74 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Seleccionamos la tabla usuario.

Y luego seleccionamos todos los campos, uno por uno o con la opcion Select All del men popup.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 75 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y por ltimo presionamos el icono Return, para irnos al painter del DataWindow.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 76 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Por ahora dejamos los valores por defecto de las propiedades del objeto DataWindow.

Y por ltimo nos muestra una lista de todos los valores seleccionados y presionamos Finish para continuar con el diseo.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 77 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El objeto DataWindow ser mostrado como en la figura de abajo, ahora procedemos a darle una mejor presentacin.

Podemos escoger todos los campos y ponemos las Propiedades 3D para que tenga una mejor presentacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 78 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Podemos asignarle un color custom a los campos de datos.

Podemos darle un formato a los campos fecha.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 79 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y por ltimo guardamos el objeto DataWindow con el nombre de d_mto_usuario, para saber que es un ingreso de datos, esto ser guardado en la librera ventas_dw.pbl.

Asociar los objetos necesarios


Nos ubicamos en w_mto_usuario y nos vamos a las propiedades del control DataWindow dw_1, y en la opcin DataObject escogemos el objeto DataWindow d_mto_usuario.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 80 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Disear la ventana del mantenimiento


Una vez asociados el objeto DataWindow con el control DataWindow del window w_mto_usuario, se procede a darle una presentacin adecuada al objeto, porque el objeto DataWindow por default tiene dos filas y si el control DataWindow tiene espacio va a mostrar las dos filas.

El mantenimiento debe quedar tal y como se muestra en la figura, a fin de que tenga una adecuada presentacin para el usuario final.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 81 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Asociar el mantenimiento creado con la aplicacin principal Luego de haber realizado todas las opciones para dejar listo el mantenimiento procedemos a colocarlo en el objeto menu m_main, es ah donde pondremos el mantenimiento para invocarlo, lo asignaremos en el punto mantenimiento con el nombre de Usuario, como se muestra en la figura.

El item a ingresar ser Usuarios, tal como se muestra en la figura

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 82 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora ingresaremos cdigo en el item de usuario para poder abrir la ventana, pero debemos asegurarnos de estar en el item, suele suceder que a veces por omisin se ubica el cdigo en otro lugar y no se obtiene el resultado deseado, el cdigo es el siguiente : Evento clicked de m_1.m_usuarios OpenSheet(w_mto_usuario, w_mdi_ventas,10,original!) Donde : w_mto_usuario : es la ventana que se desea abrir. w_mdi_ventas : es el objeto mdi donde se va a abrir la aplicacin. 10 : es la posicin del window list, de la ventana que se est abriendo. original! : es la opcin para indicarle que abra a la ventana en su forma normal.

Ahora procedemos a ejecutar la aplicacin y probar el mantenimiento creado ingresando un valor en esta opcin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 83 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego de haber activado el mantenimiento, procedemos a ingresarle valores en los campos principales.

Ahora procedemos a grabarlos, presionando el icono de Grabar que se encuentra en el toolbar

Felicitaciones!! Con esto haz logrado ingresar un valor a la base de datos desde la aplicacin, a continuacin mostraremos las dems opciones para mejorar el manejo de los datos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 84 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 12-3: Habilitar la opcin de bsqueda de datos


Objetivo: Poder crear otras clases para manipular datos
El siguiente paso es poder buscar datos en toda la tabla, para esto contamos con un evento en el objeto w_mantenimiento, el cual est codificado para invocar al objeto w_buscar que mostrar los datos de la tabla actual, los pasos son los siguientes : Primero se debe de crear el objeto DataWindow que va a mostrar el listado de datos como se muestra en las siguientes figuras, lo primero es presionar el icono New del Toolbar y escoger el tipo de DataWindow, en este caso es Grid.

El origen de datos es SQL Select

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 85 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

La tabla es usuario

Seleccionamos algunos campos principales, como el usuario y el nombre.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 86 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego presionamos el icono Return para irnos al diseo del DataWindow.

Las Propiedades del objeto DataWindow se dejan tal y como estn y en la ltima ventana presionamos Finish

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 87 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Diseando el objeto DataWindow

En la Propiedad Tab Order, debemos de poner cero a todos los campos para que no sean editables.

Asignar valores 0 a todos los campos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 88 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora procedemos a guardar el objeto DataWindow con el nombre de d_grid_usuario para indicarle que son datos mostrados en formato de grid, asimismo por ser objetos de la aplicacin de ventas, lo guardamos en la librera de ventas_dw.pbl. como se muestra en la figura.

Luego de haber creado el objeto DataWindow d_grid_usuario procedemos a realizar las codificaciones necesarias en el objeto w_mto_usuario para poder invocar estos datos al momento de presionar la opcin de bsqueda de datos. Evento activate del objeto w_mto_usuario //*** Con este cdigo asignamos el valor del nombre del objeto DataWindow que ser mostrado //***cuando se active la opcin de bsqueda de datos. is_DataWindow = d_grid_usuario

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 89 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Modificacin del objeto DataWindow d_mto_usuario


Este objeto debe de ser modificado, porque va a recibir un valor del objeto de bsqueda as es que tendremos que modificarle la propiedad del Retrieval Arguments como se detalla continuacin

Una vez seleccionado la propiedad Modify DataWindow escogemos el Icono Data Source del objeto DataWindow.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 90 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Luego escogemos la opcion Retrieval Arguments desde el men Design/Retrieval Arguments.

Ahora creamos el argumento as_usuario, de tipo String.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 91 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El siguiente paso es asignar el argumento al campo.

Y lo escogemos desde la lista de argumentos como se muestra en la figura.

Y por ltimo nos muestra el argumento igualado al campo.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 92 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora probaremos el argumento asignado, presionando el icono Retrieve desde la barra de men.

E Ingresamos un valor para el argumento asignado.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 93 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y por ltimo nos muestra los datos del valor ingresado.

Guardamos los cambios y ahora procedemos a realizar las pruebas con la aplicacin en Ejecucin

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 94 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y escogemos la Opcin buscar del mantenimiento usuario.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 95 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 13-1: Asociar el objeto w_preliminar al objeto w_mantenimiento


Objetivo: Poder Disear Objetos DataWindows Ahora a la opcin preliminar la vamos a activar para poder reutilizarla en el objeto w_manteniendo, el cdigo para este objeto fue previamente colocado, y esto es invocado en el evento ue_preliminar del objeto w_mantenimiento, a continuacin se indican los pasos necesarios para trabajar con este objeto Primero se debe de crear el objeto DataWindow, para este caso de presentacin preliminar de datos a imprimirse vamos a utilizar el tipo de DataWindow tabular, como se muestra en la figura.

El Origen de datos es SQL Select.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 96 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio La tabla a seleccionar es usuario.

Luego presionamos el icono Return para irse al diseo.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 97 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y una vez escogidos todos los valores procedemos al diseo del Objeto DataWindow y le pones la propiedad Tab Order a 0 a todos los campos, para que no puedan ser editables.

Le agregamos una imagen para que pueda resaltar el reporte a disear, esto lo hacemos escogiendo desde el Toolbar el objeto Picture as tambin le podemos agregar un texto al Reporte, como se muestra a continuacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 98 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora procedemos a agregar un campo Computed al reporte.

Siempre es recomendable poner la fecha en la que se realiza la impresin y esto lo podemos hacer con la funcin today() que es agregado al campo computado.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 99 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora podemos darle un formato al campo computado.

Y le agregamos un texto para que indique que es la fecha.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 100 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y ahora lo grabamos en las libreras de ventas_dw.pbl con el nombre de d_rpt_usuario.

Luego de haber creado el objeto d_rpt_usuario para la visualizacin preliminar del objeto, procedemos a asignar el valor del nombre a la variable de instancia is_dw_print para que pueda asignar en tiempo de ejecucin el valor como se muestra a continuacin : Evento activate del objeto w_mto_usuario //***permite asignar el nombre del objeto d_rpt_usuario a la variable de instancia is_dw_print //***para que muestre la visualizacin preliminar is_DataWindow = "d_grid_usuario" is_dw_print = 'd_rpt_usuario'

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 101 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 13-2 : Creacin de los otros mantenimientos de la Aplicacin de Ventas


Objetivo: Aplicar la herencia y creacin de Objetos DataWindow
Se tienen varias tablas para ingreso de datos, lo que se tiene que hacer es lo mismo que se hizo para la tabla usuarios, heredando de la clase w_mantenimiento y asignndole los valores necesarios para que puedan mostrar los datos solicitados, el avance de esto tambin se encuentra en la aplicacin final que se encuentra en el CD que viene con el presente libro. Tablas a realizar los mantenimientos : Area Ciudad Pais Empleado Cliente Documento_identidad Productos

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 102 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 16-1 : Creacin y programacin del objeto Cabecera Detalle


Objetivo: Trabajar con opciones Avanzadas de los Objetos DataWindow
Luego de haberse realizado los procesos de mantenimientos para la aplicacin, ahora procedemos a realizar los procesos que tienen cabecera y detalle, el objeto w_cabecera_detalle fue previamente codificado, asi es que solo necesitaremos agregar el cdigo que se requiere en el proceso a desarrollarse como se indica a continuacin : Heredar una subclase del objeto Cabecera Detalle

Y lo grabamos con el nombre de w_cotizacin_ventas

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 103 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Crear un DataWindow para la cabecera y el detalle desde dos tablas


Ahora procedemos a crear los objetos DataWindows tanto para la cabecera como el detalle, estas tablas van a ser: cabecera_cotizacion y detalle_cotizacin, como se indica a continuacin. Lo primera es crear la cabecera desde el tipo FreeForm del Tab DataWindow

El Origen de datos es SQL Select.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 104 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y luego seleccionamos la tabla cabecera_cotizacin.

Y seleccionamos los campos de la tabla.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 105 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora procedemos al al diseo del DataWindow en el painter del DataWindow, los siguientes ya fueron explicados anteriormente, as es que el usuario los escoger por defecto.

Este es el objeto luego de escoger las opciones anteriores.

Ahora necesitamos disear el objeto DataWindow cabecera de una manera que tenga la apariencia requerida para ser manejada, para esto tenemos que agregar nuevos elementos a este objeto, como son los dropdown DataWindow, tenemos que crearlos tanto sean necesarios en este objeto, estos objeto dropdown DataWindow pueden ser utilizados luego por cualquier otro objeto, la finalidad de estos son mostrar la descripcin de los cdigos de las tablas a las cuales se hacen referencia como se indican en las figuras.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 106 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Lo primero es escoger el tipo Grid del tab DataWindow.

Y luego el Origen de datos SQL Select

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 107 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y escogemos la tabla clientes, y luego escogeremos el campo cod_cliente y crearemos un campo computado para concatenar los nombres del cliente.

Y nos iremos al painter del DataWindow para realizar el diseo del DropDown DataWindow.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 108 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Al final el dataWindow ser mostrado como se indica a continuacin.

Ahora procedemos a disear el drop down DataWindow para que tenga una apariencia adecuada y pueda ser utilizada por los dems objetos

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 109 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y lo grabamos con el nombre de d_dddw_clientes, para identificarlo que es un drop down DataWindow.

Ahora que se tiene el drop down DataWindow para clientes procedemos a asignarlo en el objeto de cabecera d_cabecera_cotizacin en el campo cliente como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 110 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El diseo final del objeto DataWindow d_cabecera_cotizacin debe quedar como se muestra en la figura, con todos los drop down DataWindow necesarios para los campos que necesitan mostrar la descripcin.

Y lo guardamos con el nombre de d_cabecera_cotizacion

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 111 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora procedemos a crear el detalle para la cotizacin de la tabla detalle_cotizacin, y para esto escogeremos el tipo Grid, como se muestra en la figura.

Y escogemos el tipo de Origen SQL Select.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 112 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y escogemos la tabla detalle_cotizacin.

Y procedemos a escoger los campos para el DataWindow, tanto de la tabla detalle_cotizacin como la descripcin de la tabla articulo, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 113 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y luego procedemos a tomar los valores por defecto del Wizard del DataWindow, hasta ir al Painter del DataWindow para el diseo.

Una vez obtenido los datos para el detalle de la cotizacin procedemos al diseo del objeto DataWindow para que tenga una presentacin adecuada como se muestra en la figura, agregndole campos computados para los clculos de los totales, Etc.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 114 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

As como un campo de Sumatoria para el campo Subtotal.

El objeto DataWindow d_detalle_cotizacin debe quedar como se muestra en la figura, con las caractersticas necesarias para que se puedan ingresar datos en los campos, cabe resaltar que la propiedad tab order de los campos deben de tener numeracin mayor a 0, excepto los que no se van a ser editados, como la descripcin del producto o el monto subtotal.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 115 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Una vez creado los objetos DataWindow, procedemos a trabajar con el objeto w_cotizacin_ventas, para asignar esos objetos creados y darles un diseo adecuado como se muestra en las figuras.

Y ahora procedemos a asignar el objeto d_detalle_cotizacin al control DataWindow dw_2.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 116 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

El objeto DataWindow debe de quedar como se muestra a continuacin, pero se tiene que dar las dimensiones necesarias al objeto window y a los controles DataWindows, esta modificacin solo afectara al objeto w_cotizacin_ventas y no la clase principal de donde se ha heredado.

El objeto window w_cotizacion_ventas debe de quedar como se muestra en la figura con las modificaciones necesarias.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 117 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Debemos agregar el cdigo necesario para que las opciones del objeto w_cotizacin_ventas estn completas, para ello debemos de hacer lo siguiente Codificacin del evento ue_validar //***Permite autogenerar el numero de la cotizacion, para la cabecera y el detalle string ls_codigo, ls_mask long ll_codigo ll_i, ll_total ls_mask = '0000000000' SELECT max(codigo) INTO :ls_codigo FROM cabecera_cotizacion USING SQLCA; ll_codigo = long(ls_codigo) IF ll_codigo < 1 or IsNull(ll_codigo) THEN ll_codigo = 1 ELSE ll_codigo = ll_codigo + 1 END IF ls_codigo = Right(ls_mask + string(ll_codigo), 10) //***INSERTA CODIGO A LA CABECERA DE PEDIDO dw_1.setitem(1,'codigo',ls_codigo) //***INSERTA CODIGO AL DETALLE DE PEDIDO ll_total = dw_2.Rowcount() FOR ll_i=1 TO ll_total dw_2.setitem(ll_i,'codigo',ls_codigo) NEXT Evento ue_validar_print del objeto w_cotizacin_ventas //*** asignar el valor del objeto DataWindow a la variable is_dw_print IF dw_1.RowCount() > 0 THEN is_argumento = dw_1.GetItemString(1,'codigo') END IF

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 118 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Evento ue_buscar_det del objeto w_cotizacion_ventas STRING INTEGER DECIMAL ls_codigo, ls_descripcion li_valor lde_precio

ls_codigo = message.Stringparm SELECT descripcion, imp_precio INTO :ls_descripcion, :lde_precio FROM productos WHERE codigo = :ls_codigo USING SQLCA; dw_2.setitem(dw_2.GetRow(),"cod_producto",ls_codigo) dw_2.setitem(dw_2.GetRow(),"productos_descripcion",ls_descripcion) dw_2.setitem(dw_2.GetRow(),"imp_precio",lde_precio) Ahora se proceder a poner el objeto w_cotizacin_ventas en el menu m_main para poder invocarlo y manipularlo

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 119 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y le ingresamos el cdigo de invocacin del objeto w_cotizacion_ventas en el Item cotizacin.

Luego procedemos a realizar las pruebas respectivas para verificar que efectivamente el objeto funciona bien

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 120 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ventana de Cotizaciones, lista para ser manipulada.

Y procedemos a insertarle datos en los registros del detalle.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 121 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora accedemos a la opcin de bsqueda de datos para los productos que se desean insertar, esto lo hacemos presionando el botn derecho en el DataWindow detalle y luego escogemos la opcin Buscar.

Y procedemos a escoger el producto deseado.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 122 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y finalmente agregamos los datos necesarios, como cantidad y grabamos estos datos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 123 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Proceso de Bsqueda para el objeto principal


El cdigo de la opcin de bsqueda fue asignado en la clase principal w_cabecera_detalle, osea que ha sido heredado por este objeto w_cotizacin_ventas, lo que tenemos que hacer es asignar los valores a las variables de instancias para poder visualizarlos al momento de realizar la bsqueda, pero primero debemos de crear el objeto DataWindow para poder asignarlo correctamente

Creacin del objeto DataWindow para la bsqueda de datos


Escogeremos el Tipo Grid del tab DataWindow y el origen de datos ser SQL Select y luego escogeremos las tablas cabecera_cotizacin y clientes.

Y seleccionamos los campos requeridos, como el codigo, fch_cotizacin, flg_estado de la tabla cotizacin y dsc_nombres, dsc_paterno y dsc_materno de la tabla clientes.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 124 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y luego escogemos los dems valores por defecto de las opciones del Wizard del DataWindow, hasta llegar al painter del DataWindow y realizaremos las opciones necesarias.

Vamos a crear un campo Computed para concatenar los nombres.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 125 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

En el campo Expresin realizamos la concatenacin de los campos String.

Y procedemos a realizar el Diseando el DataWindow, de tal manera que tenga una adecuada presentacin.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 126 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Podemos agregar un control de filas para saber con cuantos registros cuenta nuestro objeto DataWindow.

Y luego en el campo expresin del Modify agregamos la funcin getrow(), para que muestre las filas del objeto DataWindow.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 127 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y luego procedemos a grabar el objeto con el nombre de d_grid_cotizacin.

Luego de haber creado el objeto para la bsqueda de datos, tenemos que asignar el nombre de este objeto a la variable de instancia para que pueda mostrar cuando activemos la opcin de bsqueda, eso lo realizaremos en el evento Activate del objeto w_cotizacin_ventas como se muestra a continuacin : Evento Activate del objeto w_cotizacion_ventas //***permite asignar el nombre del objeto DataWindow que queremos visualizar en la bsqueda is_DataWindow = 'd_grid_cotizacion'

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 128 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Activacin de la opcin preliminar


Para esto debemos realizar lo siguiente, debemos de crear un DataWindow que nos mostrar como queremos imprimir nuestra cotizacin, para esto debemos de crear el objeto DataWindow, pero como son de dos tablas debemos de utilizar el tipo de DataWindow composite como se muestra a continuacin: Debemos de escoger el tipo Tabular del tab DataWindow, y el origen de datos ser SQL Select y luego seleccionaremos la tablas cabecera_cotizacin, ciudad, pais, y clientes y escogemos los campos necesarios como se muestra en la figura y luego escogeremos las dems opciones del wizard hasta llegar al painter del DataWindow.

Y procedemos al diseo del objeto DataWindow

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 129 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Este objeto DataWindow cuando va a ser invocado va a mostrar los datos de una cotizacin, por tal motivo debe de recibir un argumento el cual vamos a crear a continuacin, segn los pasos que se indican : Adicionando la opcin Retrieval Argument, al objeto DataWindow.

Y creamos el Argumento as_codigo.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 130 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y le agregamos el argumento a la clusula where.

Y luego seleccionamos el Argumento.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 131 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y volvemos al painter del DataWindow y debemos de darle un diseo adecuado con algunas opciones, como picture, campos computed para las fechas, etc.

Y ahora le asignamos una imagen al DataWindow, el logo de la Empresa TechEra e-Learning.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 132 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y debe de quedar como se muestra en la figura de abajo.

As tambin se puede agregar un campo computed de la fecha como se hizo anteriormente, y luego procedemos a grabar con el nombre de d_rpt_cabecera_cotizacin, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 133 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Ahora procedemos a construir el objeto DataWindow para el detalle de la cotizacin para la opcin preliminar, se tienen que seguir los siguientes pasos : Crear el objeto Detalle del Reporte, para esto escogemos el tipo Grid y el origen de Datos SQL Select y seleccionaremos las tablas detalle_cotizacin y productos como se muestra en la figura.

Y escogemos los campos necesarios y luego presionaremos el icono Return para irnos al diseo del DataWindow.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 134 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Las dems opciones del wizard sern aceptadas por defecto, hasta llegar al painter del DataWindow.

A este objeto DataWindow tambin debemos de agregarle un Retrieval Argument, enlazado con el cdigo de cotizacin, y debe quedar como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 135 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Ahora presionamos el icono de Return para volver a la parte de diseo

En esta parte vamos a darle un diseo adecuado al detalle del objeto DataWindow

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 136 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Para mostrar una suma de unos campos podemos agregarle la opcin summing a un campo computed, como se muestra en la figura.

Y luego procedemos a grabar el objeto objeto con el nombre de d_rpt_detalle_cotizacin.

Ahora que ya se cuenta con los objetos DataWindow tanto para la cabecera como para el detalle, debemos de unirlos, esto lo vamos a realizar mediante la construccin de un DataWindow tipo Composite el cual va a tener a los DataWindows previamente creados, cabe mencionar que se puede construir los DataWindows composite desde los objetos DataWindows, como se detalla continuacin :

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 137 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio El tipo de DataWindow es Composite

Y luego procedemos a escoger los objetos DataWindow d_rpt_cabecera_cotizacin y d_rpt_detalle_cotizacin como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 138 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y luego aceptaremos los valores por defecto del Wizard hasta llegar al painter del DataWindow y darle los tamaos necesarios a los objetos DataWindow del Composite.

Este objeto DataWindow va a recibir un argumento el cual va a permitir mostrar los datos de ese argumento que ser enviado como parmetro, como este DataWindow es composite est compuesto por dos DataWindow, e internamente PowerBuilder asignar los valores a estos objetos, y para eso tenemos que hacer lo siguiente, declarar la variable en la opcin Retrieval Arguments del Tab General de las propiedades del DataWindow como se muestra en la figura, el argumento a crear ser as_codigo.

Ahora procedemos a agregarle a los objeto DataWindows, para esto debemos de escoger cada objeto DataWindow y le asignaremos ese argumento creado previamente.
___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 139 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y le asignamos presionando la opcin Arguments de la propieda del DataWindow hijo d_rpt_cabecera_cotizacin y luego nos mostrar una ventana como la que se muestra en la figura y escogeremos el argumento.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 140 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y el siguiente paso es hacer lo mismo con el DataWindow detalle.

Y procedemos a agregar el Argumento as_codigo para el detalle.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 141 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Para probar los objetos escogeremos la opcin Preview para verificar los argumentos.

Y luego presionamos el icono Retrieve para ingresar el argumento.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 142 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y luego ingresamos el argumento para el objeto DataWindow

Y nos mostrar la opcin preliminar del objeto DataWindow.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 143 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y por ltimo procedemos a grabar lo realizado con este objeto, el nombre ser d_rpt_cotizacion

Luego de haber terminado de crear el objeto DataWindow para el reporte de la cotizacin procedemos a agregar el cdigo necesario para visualizarlo en tiempo de ejecucin como se muestra en la figura Evento Activate del objeto w_cotizacin_ventas //***permite asignar el nombre del dw object que queremos visualizar en el preliminar is_DataWindow = 'd_grid_cotizacion' is_dw_print = 'd_rpt_pedidos' Ahora realizaremos la prueba de la opcin asignada y procedemos a buscar una cotizacin y activaremos la opcin preliminar para la Cotizacin. De la misma forma como se hizo la Cotizacin, ahora Ud. Deber de realizar una orden de compra el cual tendr las mismas caractersticas que la cotizacin, con la excepcin de que sern diferentes tablas.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 144 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Lab 18-1 : Creacin de Ejecutable


Objetivos: Poder desplegar una Aplicacin PowerBuilder
Luego de haber creado la aplicacin de Ventas, ahora tenemos que crear nuestro ejecutable para poder ponerlo en produccin, antes de crear el ejecutable se tiene que realizar los siguientes pasos. Recomendaciones antes de realizar el ejecutable : Crear un backup de las libreras de desarrollo Crear un directorio aparte de donde se guardan las libreras para poner una copia y realizar el ejecutable desde ah Verificar el archivo .pbr que est configurado adecuadamente Realizar un Full Review a todo el target de la aplicacin Ahora procedemos a realizar un Full Build a todo el target ventas, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 145 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y luego nos mostrar el resultado final de la opcin Full Build.

Creacin de un objeto project


El primer paso para crear un ejecutables es crear un objeto project, donde configuraremos todo lo necesario para crear ese archivo, para esto presionaremos el icono New del Toolbar y escogeremos el tab Project de la Ventana New, como se muestra en la figura.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 146 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y luego aceptaremos los valores por defecto del Wizard del Application Project.

As como nos indicar las libreras que participaran de la generacin de este ejecutable.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 147 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Le ingresaremos el nombre de p_ventas.

Y luego le asignaremos el nombre de ventas en el ejecutable y ventas.pbr para el archivo de recursos.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 148 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Las dems opciones sern aceptadas por defecto como la opcin Specify Build.

Las Opciones de las libreras Dinmicas la dejaremos tal y como estn.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 149 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Y luego especificamos la informacin de la versin del ejecutable.

Y por ltimo nos muestra el Listado de Propiedades asignadas.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 150 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Al final nos crear el objeto project con todas las opciones configuradas en el Wizard tal como nos muestra en la figura de abajo.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 151 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio Para crear el ejecutable debemos de presionar el icono Deploy para generarlo.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 152 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Y luego empezar la creacin de este archivo con las configuraciones agregadas.

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 153 Este producto solo puede ser usado para uso personal y no para otros fines.

PowerBuilder Developer v10.0 PBDV10- Laboratorio

Puesta en produccin de una aplicacin y librerias de PowerBuilder


Ahora que se ha creado los archivos ejecutables y los PBDs debemos de copiarlos en un directorio para poder invocarlos desde ah. Los Archivos generados son: Ventas.exe, Ventas_win.pbd Luego se tiene que hacer lo siguiente: Crear un directorio para la aplicacin c:\ventas Copiar todos los archivos en el directorio ventas Copiar las dlls del directorio //Shared/PowerBuilder al de la aplicacin Crear un Acceso directo al archivo ejecutable ventas.exe Aplicacin Ventas Terminada

___________________________________________________________________________________________________ Derechos Reservados de TechEra e-Learning - PowerBuilder Developer v10.0 PBDV10 Lab- 154 Este producto solo puede ser usado para uso personal y no para otros fines.

Anda mungkin juga menyukai