epelpad

PowerBuilder: Maestro - Detalle - Datawindow SQL Server

PowerBuilder: Maestro - Detalle - Datawindow SQL Server




Aplicación Maestro Detalle


1. Lo primero que haremos es diseñar e implementar nuestra base de datos. En este caso usaré Microsoft SQL Server 2008.


manual




2. Crearemos nuestra aplicación en PowerBuilder

Sql server


Como hemos visto en el diagrama de nuestra base de datos, contamos con tres tablas. La tabla cabecera, será la tabla maestro y la detalle será (valga la redundancia) el detalle. Con respecto a la tabla producto, los datos los llenaremos desde la misma base de datos. Nos centraremos en la implementación de la ventana maestro detalle.

3. Creación de la conexión con la base de datos.
Crearemos la conexión a través de ODBC.
Nos dirigimos al panel de control y elegimos herramientas administrativas.

powerbuilder



Luego elegimos orígenes de datos ODBC.( Si ya conoces como realizar la conexion, puedes saltarte la seccion)


tutorial



tutorial power builder



maestro detalle




conexion sql server



Al usar autenticacion integrada de windows, debemos verificar nuestra configuracion en Nuestro Gestor de Base de Datos.

tutorial powerbuilder



PowerBuilder: Maestro - Detalle - Datawindow SQL Server



manual



Sql server


powerbuilder



Al hacer clic en el botón test data source, les debe aparecer otra ventana indicando que la prueba de conexión fue exitosa. Con esto ya tenemos nuestra configuración ODBC.

Podemos crear el perfil de conexión de la base de datos a través del Database Profile o a través de Database.

tutorial


tutorial power builder



maestro detalle


conexion sql server



tutorial powerbuilder



PowerBuilder: Maestro - Detalle - Datawindow SQL Server




Clic en el botón copy para copiar el script generado para la conexión, el cual pegaremos en nuestra aplicación. Finalmente clic en ok para cerrar y guardar nuestro perfil de conexión a la base de datos.

Nos dirigimos a nuestra aplicación y en el evento open pegamos el código de conexión.

manual


4. Diseño de la ventana
Para estar sección solo usaremos datawindows para la cabecera y detalle. También podríamos usar los controles comunes, instrucciones sql y cursores.
La ventana se llamará w_maestro_detalle.

Sql server


Nota: Los nombres de los controles están separados por un guion bajo “_”.


5. Creación de los objetos datawindows
Crearemos tres objetos datawindows:
· 1 del tipo freeform para la cabecera.
· 2 del tipo grid. Uno para la búsqueda de los productos y otro para el detalle.
Antes de continuar, verificar si estamos conectados a la base de datos correcta. El perfil que hemos creado debe estar con un check verde, indicando que es la conexión activa.

powerbuilder



tutorial


Dw_cabecera

tutorial power builder


maestro detalle



conexion sql server



tutorial powerbuilder


PowerBuilder: Maestro - Detalle - Datawindow SQL Server


En la siguiente ventana tenemos los parámetros de diseño de nuestro datawindows. Lo dejaremos con los valores por defecto.

manual


Sql server



Aquí ya tenemos nuestro objeto datawindow creado. Por un lado están los nombres de las columnas (etiquetas) y por el otro los valores de las columnas. En esta parte podemos diseñar nuestro datawindow dándole una mejor presentación.

powerbuilder



En este datawindow agregaremos un argumento.

tutorial


tutorial power builder



En la siguiente ventana, en la sección column escogemos el campo idmovimiento. En el operador lo dejamos con “=” y en value realizamos clic derecho y seleccionamos arguments y seleccionamos cod, el cual es el argumento que acabamos de crear.


maestro detalle



Después de darle un poco de formato, grabaremos nuestro datawindow con el nombre de dw_cabecera.


Dw_producto

conexion sql server



tutorial powerbuilder



Guardamos nuestro datawindow con el nombre de dw_producto.

Dw_detalle

PowerBuilder: Maestro - Detalle - Datawindow SQL Server


manual


Sql server



powerbuilder



tutorial


tutorial power builder



maestro detalle



conexion sql server



Guardamos nuestro datawindow con el nombre de dw_detalle.

6. Implementando la aplicación

tutorial powerbuilder


Ahora en cada control datawindow en el evento contructor, agregamos lo siguiente.
This.settransobject(sql). Este es el objeto transacción con el cual trabajaremos.

PowerBuilder: Maestro - Detalle - Datawindow SQL Server


Si deseamos ver cómo está quedando nuestra aplicación en tiempo de ejecución, debemos agregar el siguiente código en el evento de la aplicación.
connect using sqlca;//Nos conectamos a nuestra base de datos usando el objeto de transacción por defecto llamado sqlca.
open(w_maestro_detalle)//indicamos que se abra nuestra ventana.

manual


Sql server


powerbuilder


Si ejecutamos nuevamente nuestra aplicación, se verá de la siguiente manera.
tutorial


http://1.bp.blogspot.com/-HSzJYnODrQs/Vpmr3deIhTI/AAAAAAAADtI/mV8CaVtX50c/s640/md58.jpg


La búsqueda de productos.
Dentro del sle_buscar, en el evento modified agregamos el siguiente código.

if this.text="" then//si esta vacio
dw_buscar.setfilter( ""//limpia el filtro para que se muestren todos los datos
else
dw_buscar.setfilter( " descripcion like '%"+ this.text+"%'"//de caso contrario asigna un filtro comparando el campo descripción con el texto ingresado.
end if
dw_buscar.filter( )//aplica el filtro.

tutorial power builder


Validar para que no se agregue el mismo producto más de una vez en el detalle.
maestro detalle


Generar código correlativo.
Para generar el código correlativo crearemos una función. Esta función estará implementada en la aplicación. También podríamos usar un procedimiento almacenado o colocar la columna como identidad.

conexion sql server


tutorial powerbuilder


Botones

PowerBuilder: Maestro - Detalle - Datawindow SQL Server


manual


Sql server



7. La aplicación en ejecución.

powerbuilder



Si se ingresaron los datos correctamente, aparecerá un mensaje indicando que los datos se guardaron correctamente.


tutorial


8. Agregando otras funcionalidades.
Creación la función actualizar stock

tutorial power builder


La fucion se llamará uf_actualizarstock. Tendra como argumentos o parámetros Idproducto, movimiento y cantidad. Si el movimiento es Salida “S” se restara del stock, de caso contrario se sumara la cantidad al stock existente.

maestro detalle


No se ha realizado ninguna validación si la cantidad supera al stock permitido.
Actualizamos el botón guardar.

conexion sql server



Por cada producto ingresado en el detalle, debemos llamar a la función actualizar pasándole los parámetros correspondientes obtenidos del detalle.

Dando formato al datawindow cabecera.
Seleccionamos el campo fecha.

tutorial powerbuilder


PowerBuilder: Maestro - Detalle - Datawindow SQL Server


manual





2 comentarios - PowerBuilder: Maestro - Detalle - Datawindow SQL Server

jorgeCB4ar
wow hacia años que no escuchaba del power builder...
jorgeCB4ar
nunca pude aprender a usarlo. ya es tiempo que vuelva a verlo
chences
ufff hace unos meses casi entro a trabajar en una universidad que todo su software estaba en powerbuilder, me ubiera arrepentido