UD. Taller Taller de programación p rogramación concurrente JAVA JAVA Guía N°8 Formulario de transacciones
FORMULARIO DE TRANSACCIONES TR ANSACCIONES FORMULARIO DE VENTAS
Contenidos En esta esta guía guía el estudi estudiant ante e aprend aprenderá erá a desarro desarrolla llar/c r/comp ompilar ilar una aplic aplicaci ación ón que presen presentar tará á un formul formulari ario o de transa transacc ccion iones es del proces proceso o de venta ventas, s, que que permit permitirá irá realiz realizar ar opera operacio ciones nes básica básicas s como como crear crear un nuevo nuevo regist registro ro de venta venta,, buscar buscar un cliente, buscar y agregar productos, grabar una venta, etc. Objetivos Específicos Conocer el uso las librerías Java!". Conocer los comandos !" para realizar una actualización segura. Crear varias consultas de diferente tipo. #enerar un nuevo código a partir de los datos de la $%. &tilizar variables globales para compartir información entre metodos. Crear un reporte en i'eport i 'eport y mostrarlo en la aplicación Java. Mateia!es " E#$ipo En cuanto a las (erramientas y soft)are necesario* • • • •
J%+ - 0et$eans i'eport
ara esta práctica es necesario contar con la biblioteca de mysql o me1or dic(o el %D&C Dive de Dive de M"S#!, M"S#!, asociarlo al complemento i'eport. F$nda'ento Te(ico Un fo'$!aio fo'$!aio de tansaccione tansacciones s es un formulario que permite no solo realizar tareas específicas sino que muc(as veces combina funciones de otro 2ormulario, esto (ace que tener acceso directo a los campos de la tabla de un registro especifico. -demas de permitir realizar las operaciones más delicadas como son las de actualización. Ap!icaci(n con Fo'$!aio de Tansacciones Tansacciones con acceso a datos
Pg. !
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
rimero crearemos el formulario Jframe de Ventas. "uego crearemos el formulario J2rame ve Repote, que complementa al formulario para mostrar la venta en formato previo a la impresión. )aso *+ Cea $n Fo'$!aio Maesto Deta!!e Ventas 3. Crear un J2rame 2orm con el nombre f'MaestoDeta!!eVentas. 4. %ise5e el formulario de la siguiente manera.
Co'ponente )ane! &$sca C!iente J6e7t2ield 0ombre cliente J6able $uscar cliente J$utton -gregar cliente )ane! &$sca )od$cto J6e7t2ield 0ombre roducto J6able $uscar cliente J$utton -gregar producto J6e7t2ield recio unitario J6e7t2ield Cantidad )ane! Re,isto de ventas J6e7t2ield 08 registro J'adio$utton $oleta J'adio$utton $oleta
No'be de !a Vaiab!e t7t$uscarCliente 6ablaCliente btn-gregarCliente t7t$uscarroducto 6ablaCliente btn-gregarroducto t7trecio t7tCantidad t7t$uscarroducto opt$oleta opt2actura
Pg. "
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
J6e7t2ield 08 $oleta/2actura J"abel fec(a J6e7t2ield Cliente J6e7t2ield %ocumento J6e7t2ield %irección J6e7t-rea 6el9fono J$utton 0uevo J$utton #uardar J$utton :mprimir J$utton Cancelar J6able %etalle de venta J$utton !uitar producto J6e7t2ield ub 6otal J6e7t2ield :#; J6e7t2ield 6otal a pagar J6e7t-rea :mporte J6e7t2ield ;uelto
t7t0umComprobante lbl2ec(aCompra t7tCliente t7t%ocumento t7t%ireccion t7t6elefono btn0uevo btn#uardar btn:mprimir btnCancelar 6abla%etalle btn!uitar t7tub6otal t7t:gv t7t6otal-pagar t7t:mporte t7t;uelto
)aso -+ Codificaci(n ,enea! paa $ti!i.a !os objetos/ #
;amos a proceder a programar. Comenzamos con (acer uso del paquete sql, que nos permitirá tener acceso a la base de datos, luego usaremos el paquete s)ing, específicamente a las clases Joptionane para mostrar los cuadros de dialogo y para los %efault6ableodel, %efaultCombo$o7model para los modelos de los controles J6able y JCombo$o7.
#
"uego procedemos a crear las variables de uso general para la cone7ión y para el mane1o
de
la
tabla
.
Esto
lo
(acemos
dentro
de
la
clase
f'MaestoDeta!!eVentas.
Pg. $
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
#
En el m9todo constructor programamos lo siguiente
Pg. %
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
Con este código configuramos los títulos y asociamos los modelos de las tablas sus respectivos J6ables. "uego crearemos la cone7ión a la base de datos. )aso 0+ )o,a'aci(n de !as opeaci(n b1sicas de b2s#$eda de c!ientes " pod$ctos/ #
rimero programaremos el m9todo para buscar clientes, esto lo (acemos directamente en el evento 3e"Re!eased de control t4t&$scaC!iente. Este m9todo permitirá consultar en la base de datos, los registros de clientes que coincidan con los parámetros de b>squeda y los mostrará en la tabla clientes.
Pg. &
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
#
"uego programaremos la parte en el que el usuario selecciona un elemento resultante (aciendo un clic en la tabla. Esto lo (acemos en el evento Mo$seC!ic5ed del control Tab!aC!iente.
#
or ultimo programaremos la acción de agregar el cliente al registro de ventas.
Pg. '
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
#
egundo* igual que el m9todo buscar cliente, programaremos el m9todo para buscar productos, esto lo (acemos directamente en el evento 3e"Re!eased de control t4t&$sca)od$cto.
#
"uego programaremos la parte en el que el usuario selecciona un elemento Pg. (
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
resultante (aciendo un clic en la tabla. Esto lo (acemos en el evento Mo$seC!ic5ed del control Tab!a)od$cto.
#
or ultimo programaremos la acción de agregar los productos al detalle de ventas.
#
?asta aquí la funcionalidad de agregar productos funciona correctamente, pero
Pg. 8
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
necesitamos saber cuánto vamos sumando al total cuando se agrega cada uno de los productos, por eso implementamos un m9todo que permita calcular los totales.
#
-sí mismo, necesitamos un meto para poder quitar aquellos productos que fueron ingresados por error, o que el cliente desee cancelar. ara ello utilizamos un botón llamado btn6$ita el cual programaremos dentro de su evento Action)efo'ed.
)aso 7+ )o,a'aci(n de !as opeaciones pincipa!es de! e,isto de ventas/ #
rimero* toda venta genera un nuevo registro y a la vez controla el numero secuencial de los comprobantes de pago, si es $oleta, tendrá un numero secuencial y si es factura tendrá otra numeración. %ic(as numeración se encuentran en la misma tabla, por lo que deberá (acerse un filtro previo a la inserción de una nueva venta. Esto lo (acemos a trav9s del botón btn8$ada , evento Action)efo'ed, en cual codificaremos lo siguiente*
Pg. )
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
Pg. !*
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
#
En el botón btn8$ada , evento Action)efo'ed, codificaremos las acciones de guardar el registro de venta y su detalle*
#
Este botón btn8$ada depende de un procedimiento creado en el evento fo'9indo:sActivated del %Fa'e Fo', evento que ocurre cuando el formulario se activa.
Pg. !!
UD. Taller de programación concurrente JAVA Guía N°8 Formulario de transacciones
)aso 7+ )o,a'aci(n de a!,$nas $ti!idades e$ti!i.ab!es/ #
Crearemos un m9todo para quitar las filas de los modelos de las tablas.
#
Crearemos otro m9todo para actualizar el stoc@ en la tabla producto, esto ocurrirá cada vez que se guarde un detalle de venta, es decir un producto.
)aso ;+ )$eba/ #
-(ora podemos probar la aplicacion
Pg. !"