Subido por Steban Quito

PowerBuilderDeveloper

Anuncio
PowerBuilder Developer v10.0 PBDV10- Laboratorio
Laboratorio
PowerBuilder
Developer
V10.0
PBDV10
[email protected]
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
extensión .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 : Creación de los Targets de la Aplicación
Objetivo: Crear el PowerScript Target para la Aplicación 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 Aplicación automáticamente te crea una librería con este mismo nombre y
un target, tal como se muestra a continuación.
Luego de ingresado los valores PowerBuilder nos muestra, el target ventas.pbt, la librería ventas.pbl y el
objeto application ventas. Ahora puedes crear tus demás 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 :Creación de las Librerías de Desarrollo
Objetivo: Crear las librerías para almacenar los objetos de la Aplicación Ventas
Para trabajar en PowerBuilder se necesitan crear Librerías, en estos archivos es donde se almacenan los
objetos de PowerBuilder, para tal efecto vamos a crear librerías donde vamos a almacenar los objetos, se
recomienda crear librerías por cada tipo de objeto, asimismo es recomendable que las librerías no tengan un
tamaño mayor al de 1 MB, ni tampoco la creación de demasiadas librerías.
Como PowerBuilder es una herramienta orientada a Objetos se recomienda crear librerías donde se van a
guardar todas las clases principales de donde se van a heredar, como se indica a continuación :
Acceder al painter del Library para crear librerías, esto lo realizamos presionando el icono Library del
PowerBar, como se ilustra.
Una vez en el painter del Library, procedemos a crear las librerías 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 librerías deben ser ingresadas y serán guardadas en el directorio indicada, las librerías a crear se indican
a continuación:
•
•
•
•
•
base_win.pbl
base_dw.pbl
base_uo.pbl
base_fun.pbl
base_mn_pbl
Luego para trabajar con los objetos de estas librerías base se recomienda crear librerías para la aplicación a
desarrollar en este caso vamos a crear un sistema de ventas y para esto crearemos las librerías 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 creación de las librerías necesarias para el desarrollo del Sistema de Ventas se
necesita poder compartir estas librerías a fin de intercambiar objetos entre las diferentes librerías como se
muestra a continuación :
___________________________________________________________________________________________________
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: Creación de las clase Window de la Aplicación
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 aplicación, asimismo se deberá de guardar con el nombre de w_ancestro
y será guardado en la librería base_win.pbl, por ser una clase de objeto, a continuación 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 opción nos muestra el objeto window, y lo grabamos con el nombre de w_ancestro, para
efectos de poder grabar debemos de realizar alguna modificación para que se active la opción de grabar.
Asignación 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 opción (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
Creación 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: Creación de la Ventana de Operación
Objetivo:
Poder crear una objeto Window y realizar la programación con el Lenguaje PowerScript sobre
los controles
Ahora crearemos una ventana y lo guardaremos en la librería 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 opción 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 continuación:
Para poder realizar el proceso de Operación 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
operación 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
codificación del Script, esto lo realizamos con el lenguaje PowerScript, un lenguaje similar a las demás
herramientas, PowerBuilder se caracteriza por tener un orden, y para esto debemos de codificar teniendo en
cuenta los estándares para cada variable y tipo de dato, el siguiente código es para realizar el proceso de
cálculo.
Ahora procedemos a grabar este objeto window con el nombre de w_operaciones en la librería
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 código se muestra a continuación:
Ahora ingresamos y escogemos valores de los controles para verificar que la codificación realizada fue
correcta.
Felicitaciones!, haz creado tu primera aplicación en PowerBuilder, esto realmente es lo básico, pero ya
viene lo más interesante, el proceso de creación de clases, herencia, la interacción con la base de datos,
trabajar con los DataWindows.
Ahora pon en práctica lo aprendido y crea una ventana de Ingreso de tu Nombre y muestra un mensaje, tienes
libertad para el diseño y la programación.
___________________________________________________________________________________________________
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: Creación del Objeto Menú Base de la Aplicación
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 aplicación, este objeto deberá ser guardado con el
nombre de m_ancestro y deberá ser ubicado en la librería base_mn.pbl, crearemos el objeto menú como se
indica a continuación :
Primero escogemos la opción New del Toolbar como se muestra en la figura.
En la ventana de diálogo 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 estándar del GUI el cual está
basado en una norma para desarrollar aplicaciones de entorno gráfico como se muestra en la figura y en la
tabla.
Luego de agregar los items, estos son mostrados de forma automática para poder verificar el diseño 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
Editar
Deshacer
Repetir
Cortar
Copiar
Pegar
Ver
Configuración
(items
configuración de
aplicación)
Reporte
(se agrega
las opciones
de reportes)
Ventana
Vertical
Horizontal
Cascada
...
1
2
3
4
(Opcionales (Opcionales (Opcionales (Opcionales
para
los para
los para
los para
los
procesos)
procesos)
procesos)
procesos)
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: Creación 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 crearán los siguientes objetos que se indican :
ƒ
ƒ
ƒ
m_main
m_sheet
m_impresion
Objeto menú para la aplicación general
Ahora vamos a heredar de la clase m_ancestro y vamos a crear el objeto m_main, este objeto estará
relacionado con la aplicación que se va a desarrollar, en tal sentido lo vamos a guardar en las librerías de la
aplicación 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 Aplicación que vamos a realizar, el objeto debe de quedar tal
como se muestra a continuación.
NOTA :
Las opciones que no van a ser utilizados deben de tener la propiedad de visible desactivada a fin de poder
tener un diseño adecuado en la aplicación, 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 aplicación
En esta parte se creará el objeto menú que irá asociado a las ventanas de la aplicación 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 opción
ToolbarItemVisible activar el check, también 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 continuación :
___________________________________________________________________________________________________
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: Creación de SubClases Window:
Objetivo: Poder realizar herencia y reutilizar sus propiedades
En esta parte vamos a crear todos los objetos window base para nuestra aplicación, por eso vamos a heredar
del objeto ancestro como se indica a continuación, 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 asignación
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 demás objetos.
NOTA: Se recomienda primero crear todas las ventanas de la parte de diseño a fin de poder invocarlos
cuando se generen las demás 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 librería 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 aplicación aquí vamos a
programar los eventos y funciones que se indican a continuación:
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 aplicación final.
Programación 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 función 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 función f_buscar().
Luego de escoger la opción de creación de función, procedemos a ingresar el código como se muestra en la
siguiente figura, que ejecuta una función para abrir el objeto window w_buscar enviándole un argumento.
NOTA: Al momento de realizar la compilación, 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 código 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.
Creación 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 continuación :
___________________________________________________________________________________________________
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 opción 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 serán utilizados por las clases principales.
Ahora debemos de crear la función f_preliminar(as_DataWindow, as_codigo) y guardarlo en las librerías 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 función
A la función f_preliminar le agregaremos dos argumentos de tipo string e ingresaremos el código que se
muestra en la figura, así como utilizar el objeto structure str_valores previamente creado.
Nota: verificar que la función active la ventana w_mdi
Evento ue_preliminar :
//***Muestra en un formato de impresión 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 demás 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 búsqueda 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 búsqueda,
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 través 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 codificación 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 asignarán será los que son generados por defecto.
Asociación 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_impresión de la aplicación 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 división
dw_1.modify('DataWindow.print.preview.zoom = 50')
Evento ue_zoom del objeto w_preliminar
//*** Permite mostrar al dw una regla de división
dw_1.modify('DataWindow.print.preview.zoom = 80')
NOTA: Este Evento puede ser modificado para que el cambio de tamaño sea dinámico.
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 página en Página
dw_1.scrollnextpage()
Evento ue_pag_anterior del objeto w_preliminar
//***Retroce de página en página
dw_1.scrollpriorpage()
Evento ue_pag_inicio del objeto w_preliminar
//*** Se posiciona en la primera página
dw_1.ScrollToRow(1)
Evento ue_pag_fin del objeto w_preliminar
//***Se posiciona en la última página
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 aplicación 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.
También 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')
THEN
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
//*** Utiliza la función que fue creada para el proceso de búsqueda
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 búsqueda 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 impresión
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 código necesario para el objeto w_cabecera_detalle, necesitamos que los
controles DataWindow manipulen los datos para tal efecto agregaremos el siguiente código 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 opción PB Object y haremos doble
click en Menú, como se muestra en la figura.
Una vez escogido el icono menú procedemos a diseñar el menú popup como se muestra a continuación.
___________________________________________________________________________________________________
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 opción de los items creados se le debe de agregar el código que se muestra en la figura, a fin de que
puedan activar los eventos del objeto window w_cabecera_detalle.
Para la opción Eliminar le vamos agregar el siguiente código:
Parentwindow.triggerevent(“ue_eliminar_det”)
Para la opción de Búsqueda en el detalle le vamos a agregar el siguiente código:
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 código necesario procedemos a grabar el objeto con el nombre m_popup en las
librerías 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 aplicación 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 diseñar el objeto w_login el cual será una clase que nos permita tener un objeto que proporcione
seguridad a la aplicación, para efectos de la clase solo diseñaremos el objeto w_login, la codificación será
asignada en objetos heredados de este, porque se tienen que personalizar. A continuación 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 librerías base, en base_win.pbl con el nombre w_login.
Objeto window para cualquier funcionalidad
Ahora vamos a crear un objeto window genérico, para cualquier funcionalidad en la aplicación, esto también lo
heredamos de w_ancestro y lo guardaremos con el nombre de w_sheet en la librería 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 aplicación 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: Creación de los Objetos User Object para la Aplicación
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 aplicación, ahora vamos a empezar a crear objetos simples
para los botones aceptar y cancelar y veremos como reflejamos la reutilización.
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 aplicación.
___________________________________________________________________________________________________
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 demás.
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 botón 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 botón 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 opción, 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 aceptarán los valores por
defecto.
La forma como se utilizan estas clases serán mostradas por el instructor de forma práctica.
___________________________________________________________________________________________________
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: Creación de la Aplicación MDI
Creación de la aplicación principal de PowerBuilder
Luego de haber creado nuestras clases principales para todos los procesos necesarios en una aplicación,
procedemos a crear la aplicación, 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 aplicación
messagebox ("Bienvenidos","Bienvenidos al mundo de PowerBuilder")
Cuando se ejecute el código en el objeto application ventas se debe ejecutar la aplicación 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 aplicación 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 librería 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 codificación del evento Open,
para poder invocar al objeto w_mdi_ventas que será el entorno de toda nuestra aplicación, el código se
especifica a continuación :
Evento Open del objeto application Ventas
//***Código para poder abrir el objeto w_mdi_ventas
Open(w_mdi_ventas)
Luego de haber asignado este código procedemos a ejecutar la aplicación y mostrará la aplicación 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
Creación del objeto Login para la Aplicación
Heredar una subclase del objeto w_login, como se muestra a continuación.
Luego nos mostrará la ventaja hija lista para ser trabajada y orientada a la seguridad para la Aplicación de
Ventas, y lo grabaremos con el nombre de w_login_ventas en la librería 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 código en
duro por no tener todavía conexión a la base de datos.
Evento clicked del botón 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 botón Cancelar (cb_2)
//***Cierra la ventana w_login_ventas
close(parent)
Antes de ejecutar la aplicación debemos de hacer el cambio en el evento Open del objeto Application ventas y
poner el siguiente código:
Evento open del objeto Application ventas
//***código para poder abrir el objeto w_login_ventas
open(w_login_ventas)
//open(w_mdi_ventas)
Cuando ejecutemos la aplicación 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 aplicación.
___________________________________________________________________________________________________
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 algún error en el ingreso de los datos el mensaje sería el siguiente como se muestra
en la figura de abajo
Si los datos ingresados son los correctos podremos acceder a la aplicación 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: Creación de la Base de datos
Objetivo : Crear una Base de datos desde PowerBuilder
Definición 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 fácil utilizaremos el wizard que viene con el PowerBuilder para crear la Base de
datos de Ventas como se muestra a continuación :
Del Toolbar escogemos la opción DB Profile y accedemos al profile de la Base de datos
Ahora accedemos a la opción del Database Profile y comenzamos a utilizar el wizard que se encuentra en
Utilities y escogemos la opción 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 diálogo del Create Adaptive Server Anywhere Database, es ahí donde
utilizamos los datos por defecto y en la opción de Database Name presionamos el botón 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 aplicación es ventas y presionamos Save
Luego de ingresados los valores ahora nos muestra la ventana de diálogo con los datos ingresados en la
opción 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 opción 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 botón 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 automáticamente 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 opción ODBC Administrator y veamos como nos creó el DSN automáticamente, esto
también se puede hacer manualmente si el desarrollador usa otros mecanismos de creación 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: Creación 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, también 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
continuación :
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 fólder de Tables y presionamos el botón derecho del mouse para crear nuevas tablas
gráficamente 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
gráficamente, luego vamos a grabar la tabla presionando el botón grabar del toolbar.
Grabando datos desde el Toolbar.
Presionado el botón grabar nos muestra una ventana de diálogo 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 gráficamente en el editor de PowerBuilder, ahora tenemos
que crearle el Primary Key para esta tabla, esto también se hace gráficamente como se muestra en la figura,
se presiona el botón derecho en la cabecera de la tabla y se escoge la opción 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 botón 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
Creación de las demás tablas del Sistema de Ventas
Luego se procederá a crear las demás 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ó.
Creación de una llave Foránea
Las llaves foráneas son necesarias para mantener la integridad de los datos, para esto debemos tener dos
tablas que tengan en común un campo, como se mostrará a continuación.
Utilizaremos las tablas clientes y país, que tienen en común el campo código de país, 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 país.
___________________________________________________________________________________________________
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: Conexión a la base de datos desde la aplicación
Objetivo: Conectarse desde una aplicación 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 ejecución y para tal acción 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 asignación 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 botón 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 código 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 conexión para asegurarnos de que fue realizado
correctamente como se muestra en la figura.
Luego de haber ingresado los valores para realizar la conexión 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 conexión.
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 también tenemos que modificar el objeto
w_login_ventas, porque este objeto tiene código 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 botón 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 dinámica y segura, pero recuerde que todavía 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 fólder de tablas y buscaremos la tabla
usuario y presionaremos el botón derecho y escogeremos la opción “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 botón derecho para escoger la opción Insert Row, para poder ingresar el dato
Luego de ingresado los datos presionamos el botón 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 validación desde la aplicación en
tiempo de ejecución.
Figura 2.38 Ingreso de Usuario y clave
Con esto se ha logrado poderse conectar a la base de datos desde la aplicación en tiempo de ejecución,
ahora vamos a interactuar con el ingreso de datos a las tablas en la siguiente sección.
___________________________________________________________________________________________________
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: Programación del objeto mantenimiento
Objetivo: Crear clases con acceso y manipulación de datos
En esta parte vamos a trabajar con la clase w_mantenimiento, que tiene todo el código necesario para poder
trabajar con los objetos DataWindows y con la base de datos, a continuación detallamos los pasos para poder
lograr esto y acceder desde la aplicación 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: Creación 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 continuación 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 diseño.
___________________________________________________________________________________________________
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
presentación.
Podemos escoger todos los campos y ponemos las Propiedades 3D para que tenga una mejor presentación.
___________________________________________________________________________________________________
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 librería 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
opción 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
Diseñar la ventana del mantenimiento
Una vez asociados el objeto DataWindow con el control DataWindow del window w_mto_usuario, se procede
a darle una presentación 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
presentación 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 aplicación 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 código en el item de usuario para poder abrir la ventana, pero debemos asegurarnos de
estar en el item, suele suceder que a veces por omisión se ubica el código en otro lugar y no se obtiene el
resultado deseado, el código 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 aplicación.
10 : es la posición del window list, de la ventana que se está abriendo.
original! : es la opción para indicarle que abra a la ventana en su forma normal.
Ahora procedemos a ejecutar la aplicación y probar el mantenimiento creado ingresando un valor en esta
opción.
___________________________________________________________________________________________________
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 aplicación, a continuación
mostraremos las demás 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 opción de búsqueda 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 diseño del DataWindow.
Las Propiedades del objeto DataWindow se dejan tal y como están 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
Diseñando 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 aplicación de ventas, lo guardamos en la
librería 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 opción de
búsqueda de datos.
Evento activate del objeto w_mto_usuario
//*** Con este código asignamos el valor del nombre del objeto DataWindow que será mostrado
//***cuando se active la opción de búsqueda 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
Modificación del objeto DataWindow d_mto_usuario
Este objeto debe de ser modificado, porque va a recibir un valor del objeto de búsqueda así es que tendremos
que modificarle la propiedad del Retrieval Arguments como se detalla continuación
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 aplicación en Ejecución
___________________________________________________________________________________________________
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 Opción 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 Diseñar Objetos DataWindows
Ahora a la opción preliminar la vamos a activar para poder reutilizarla en el objeto w_manteniendo, el código
para este objeto fue previamente colocado, y esto es invocado en el evento ue_preliminar del objeto
w_mantenimiento, a continuación se indican los pasos necesarios para trabajar con este objeto
Primero se debe de crear el objeto DataWindow, para este caso de presentación 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 diseño.
___________________________________________________________________________________________________
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 diseño 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 diseñar, esto lo hacemos escogiendo desde el
Toolbar el objeto Picture así también le podemos agregar un texto al Reporte, como se muestra a
continuación.
___________________________________________________________________________________________________
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 impresión y esto lo podemos hacer con la
función 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 librerías de ventas_dw.pbl con el nombre de d_rpt_usuario.
Luego de haber creado el objeto d_rpt_usuario para la visualización 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
ejecución el valor como se muestra a continuación :
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 visualización 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 : Creación de los otros mantenimientos de la Aplicación de Ventas
Objetivo: Aplicar la herencia y creación 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 asignándole los valores necesarios para que puedan
mostrar los datos solicitados, el avance de esto también se encuentra en la aplicación 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 : Creación y programación del objeto Cabecera Detalle
Objetivo: Trabajar con opciones Avanzadas de los Objetos DataWindow
Luego de haberse realizado los procesos de mantenimientos para la aplicación, 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 código que se requiere en el proceso a desarrollarse como se indica a
continuación :
Heredar una subclase del objeto Cabecera Detalle
Y lo grabamos con el nombre de w_cotización_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_cotización, como se indica a continuación.
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_cotización.
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 diseño 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 diseñar 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
descripción de los códigos 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 diseño 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 continuación.
Ahora procedemos a diseñar el drop down DataWindow para que tenga una apariencia adecuada y pueda ser
utilizada por los demás 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_cotización 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 diseño final del objeto DataWindow d_cabecera_cotización debe quedar como se muestra en la figura, con
todos los drop down DataWindow necesarios para los campos que necesitan mostrar la descripción.
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 cotización de la tabla detalle_cotización, 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_cotización.
Y procedemos a escoger los campos para el DataWindow, tanto de la tabla detalle_cotización como la
descripción 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 diseño.
Una vez obtenido los datos para el detalle de la cotización procedemos al diseño del objeto DataWindow para
que tenga una presentación adecuada como se muestra en la figura, agregándole campos computados para
los cálculos 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_cotización debe quedar como se muestra en la figura, con las características
necesarias para que se puedan ingresar datos en los campos, cabe resaltar que la propiedad tab order de los
campos deben de tener numeración mayor a 0, excepto los que no se van a ser editados, como la descripción
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_cotización_ventas, para
asignar esos objetos creados y darles un diseño adecuado como se muestra en las figuras.
Y ahora procedemos a asignar el objeto d_detalle_cotización 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 continuación, pero se tiene que dar las
dimensiones necesarias al objeto window y a los controles DataWindows, esta modificación solo afectaría al
objeto w_cotización_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 código necesario para que las opciones del objeto w_cotización_ventas estén completas,
para ello debemos de hacer lo siguiente
Codificación 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_cotización_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_cotización_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 código de invocación del objeto w_cotizacion_ventas en el Item cotización.
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 opción de búsqueda de datos para los productos que se desean insertar, esto lo
hacemos presionando el botón derecho en el DataWindow detalle y luego escogemos la opción 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 Búsqueda para el objeto principal
El código de la opción de búsqueda fue asignado en la clase principal w_cabecera_detalle, osea que ha sido
heredado por este objeto w_cotización_ventas, lo que tenemos que hacer es asignar los valores a las
variables de instancias para poder visualizarlos al momento de realizar la búsqueda, pero primero debemos
de crear el objeto DataWindow para poder asignarlo correctamente
Creación del objeto DataWindow para la búsqueda de datos
Escogeremos el Tipo Grid del tab DataWindow y el origen de datos será SQL Select y luego escogeremos las
tablas cabecera_cotización y clientes.
Y seleccionamos los campos requeridos, como el codigo, fch_cotización, flg_estado de la tabla cotización 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 demás 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 Expresión realizamos la concatenación de los campos String.
Y procedemos a realizar el Diseñando el DataWindow, de tal manera que tenga una adecuada presentación.
___________________________________________________________________________________________________
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 expresión del Modify agregamos la función 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_cotización.
Luego de haber creado el objeto para la búsqueda de datos, tenemos que asignar el nombre de este objeto a
la variable de instancia para que pueda mostrar cuando activemos la opción de búsqueda, eso lo realizaremos
en el evento Activate del objeto w_cotización_ventas como se muestra a continuación :
Evento Activate del objeto w_cotizacion_ventas
//***permite asignar el nombre del objeto DataWindow que queremos visualizar en la búsqueda
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
Activación de la opción preliminar
Para esto debemos realizar lo siguiente, debemos de crear un DataWindow que nos mostrará como queremos
imprimir nuestra cotización, 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 continuación:
Debemos de escoger el tipo Tabular del tab DataWindow, y el origen de datos será SQL Select y luego
seleccionaremos la tablas cabecera_cotización, ciudad, pais, y clientes y escogemos los campos necesarios
como se muestra en la figura y luego escogeremos las demás opciones del wizard hasta llegar al painter del
DataWindow.
Y procedemos al diseño 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 cotización, por tal motivo
debe de recibir un argumento el cual vamos a crear a continuación, según los pasos que se indican :
Adicionando la opción 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 cláusula 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 diseño 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í también 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_cotización, 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 cotización para la opción 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_cotización y productos como se muestra en la figura.
Y escogemos los campos necesarios y luego presionaremos el icono Return para irnos al diseño 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 demás opciones del wizard serán aceptadas por defecto, hasta llegar al painter del DataWindow.
A este objeto DataWindow también debemos de agregarle un Retrieval Argument, enlazado con el código de
cotización, 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 diseño
En esta parte vamos a darle un diseño 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 opción 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_cotización.
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 construcción 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 continuación :
___________________________________________________________________________________________________
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_cotización y d_rpt_detalle_cotización
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
tamaños 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 parámetro, 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 opción 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 opción Arguments de la propieda del DataWindow hijo
d_rpt_cabecera_cotización 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 opción 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 opción 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 cotización procedemos a
agregar el código necesario para visualizarlo en tiempo de ejecución como se muestra en la figura
Evento Activate del objeto w_cotización_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 opción asignada y procedemos a buscar una cotización y activaremos la
opción preliminar para la Cotización.
De la misma forma como se hizo la Cotización, ahora Ud. Deberá de realizar una orden de compra el cual
tendrá las mismas características que la cotización, con la excepción de que serán 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 : Creación de Ejecutable
Objetivos: Poder desplegar una Aplicación PowerBuilder
Luego de haber creado la aplicación de Ventas, ahora tenemos que crear nuestro ejecutable para poder
ponerlo en producción, antes de crear el ejecutable se tiene que realizar los siguientes pasos.
Recomendaciones antes de realizar el ejecutable :
ƒ
ƒ
ƒ
ƒ
Crear un backup de las librerías de desarrollo
Crear un directorio aparte de donde se guardan las librerías 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 aplicación
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 opción Full Build.
Creación 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 librerías que participaran de la generación 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 demás opciones serán aceptadas por defecto como la opción Specify Build.
Las Opciones de las librerías Dinámicas la dejaremos tal y como están.
___________________________________________________________________________________________________
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 información de la versión 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 creación 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 producción de una aplicación 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 aplicación c:\ventas
Copiar todos los archivos en el directorio ventas
Copiar las dlls del directorio //Shared/PowerBuilder al de la aplicación
Crear un Acceso directo al archivo ejecutable ventas.exe
Aplicación 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.
Descargar