Saltar la navegación

16.- Ejercicios con ventanas

DAM_AD_03_R_050

Mantenimiento de una base de datos.

Se trata de realizar la gestión de los datos de una base de datos MySQL. La base de datos se llama PROVEEDORES y las tablas y las relaciones de las tablas se muestran en la siguiente figura:

Las tablas son las siguientes:

  • Tabla PROVEEDORES: contiene la información de los proveedores que suministran piezas a proyectos de una organización. CODIGO es la clave.

  • Tabla PIEZAS: contiene la información de los piezas que son suministradas por los proveedores a los proyectos, la clave es CODIGO.

  • Tabla PROYECTOS: contiene la información de los proyectos a los que se le suministran piezas para su desarrollo. La clave es CODIGO.

  • Tabla GESTION: contiene el detalle de las piezas que suministran los proveedores a los proyectos. Un proveedor puede suministrar varias piezas a varios proyectos. Una pieza puede ser suministrada por varios proveedores a varios proyectos. La clave es CODPROVEEDOR, CODPIEZA, CODPROYECTO. En cantidad se indica la cantidad de piezas suministradas.

  • Tabla ZONAS: contiene la información de las zonas donde se realizan los proyectos. La clave es CODIGO. En una zona se pueden realizar muchos proyectos.

La aplicación estará formada por un JFrame que será la ventana inicial de la aplicación que mostrará un menú para movernos a las distintas partes de la aplicación.

Desde este menú se abrirán los distintos JPanel que se utilizarán en la aplicación para la gestión de las tablas y los informes. La ventana principal se muestra en la siguiente figura ( la imagen del JPanel inicial es una etiqueta a la que se la asocia un icono):

.

Los menús son los siguientes:

Menú Gestión de Tablas: desde este menú podremos hacer el mantenimiento de las tablas Proyectos, Piezas y Proveedores. Al hacer clic en los elementos de menú se abrirán los JPanel correspondiente para las operaciones sobre las tablas.

  • Gestión de Proveedores. En la ventana que se muestra se podrá consultar un proveedor cuyo código se ha tecleado. Nos podremos mover de proveedor en proveedor, a partir de uno tecleado (botones Ver Siguiente y Ver anterior).

Podremos insertar, borrar y modificar registros. Y también visualizar lo que hay en la tabla dentro del textArea al pulsar el botón Visualizar todos. Con el botón limpiar se limpiarán los datos tecleados en ese momento.

Aparece una línea de mensaje en rojo, para visualizar todos los posibles errores que surjan, por ejemplo no se puede insertar por ser clave duplicada, o los tipos de datos o la longitud no son correctos. O no se puede borrar si tiene registros relacionados.

  • Para la gestión de Piezas y la gestión de Proyectos contaremos con ventanas similares. Los proyectos contará además con una lista desplegable (JComboBox) para seleccionar la zona del proyecto.

     

Menú Gestión de Suministros: desde este menú podremos hacer altas, bajas y modificaciones sobre la tabla Gestión.

La ventana se muestra en la figura, aparecen tres JComboBox con los códigos de proveedores, proyectos y piezas, al elegir uno de ellos se deben visualizar: para el proveedor su nombre y apellido; para el proyecto su nombre; para la pieza su nombre y precio. Al teclear el botón Calcular importe se debe visualizar el importe, que será el precio por la cantidad.

Si se pulsa el botón Consultar Registro debe salir la información de la cantidad para ese proveedor, proyecto y pieza si existe ya en la BD. Si no existe se puede indicar que no existe en la BD en la línea roja de mensajes.

Si se pulsa el botón Consultar piezas debe salir la información de las piezas que hay, en esta información se debe mostrar una columna que indique si la pieza se ha de reponer al tener el stock<=10. 

A la hora de insertar un registro, primero hay que comprobar si hay stock suficiente, es decir debe quedar 10 o más de 10 al restar la cantidad tecleada al stock. Si no hay stock suficiente indicarlo en la línea de mensaje, y no hay que insertar.

En todas las operaciones hay que actualizar la tabla PIEZAS, si se borra un reg la cantidad se suma al stock; si se modifica, se suma la cantidad antigua y se resta la nueva; y si se inserta se debe restar la cantidad.

Hay que comprobar que la cantidad tecleada debe ser positiva entre 0 y 99999. Hay que visualizar mensaje de error cuando se quiera borrar o modificar un suministro que no exista en la tabla suministros. También se visualiza un mensaje si el suministro ya existe, en ese caso no se podrá insertar. 

Los mensajes se visualizan en la línea de texto roja.

Al pulsar el botón Visualizar Todos se debe mostrar en el  textarea, los datos actuales de la tabla Suministros. Se deben visualizar el código de proveedor, su nombre, el código de pieza, su nombre, el código de proyecto, su nombre, la cantidad suministrada, el precio de la pieza y el importe.

----------------------------------------- DATOS DE GESTION SUMINISTROS-----------------------------------------------------------
CODPROV  NOMBRE            COD PIEZ  NOMBRE              COD PROY  NOMBRE                      CANTIDAD  PRECIO          IMPORTE   
---------------------------------------------------------------------------------------------------------------------------------
PR0001 JUAN                  L0002   HORMIGONERA           ED0001 EDIFICIO VIVIENDAS                10 	  600,75 	  6007,50
PR0001 JUAN                  L0003   BACA-PORTABICIS       ED0001 EDIFICIO VIVIENDAS                 5 	  230,00 	  1150,00
PR0001 JUAN                  L0004   RETROVISOR            ED0001 EDIFICIO VIVIENDAS                10 	   50,00 	   500,00
PR0001 JUAN                  P0001   CAUDALIMETRO          VH0011 VEHICULO PROTOTIPO                24 	  400,32 	  9607,68
PR0001 JUAN                  P0002   CORREA DENTADA        VH0011 VEHICULO PROTOTIPO                25 	   40,00 	  1000,00
PR0001 JUAN                  P0007   ENGANCHE              ED0001 EDIFICIO VIVIENDAS                10 	   50,00 	   500,00
PR0001 JUAN                  P0007   ENGANCHE              VH0011 VEHICULO PROTOTIPO                10 	   50,00 	   500,00
PR0002 GREGORIA              L0001   LONA PARA PISCINA     CR0001 CASA RURAL EL ALTOZANO            15 	  178,00 	  2670,00
R0002 GREGORIA L0002 HORMIGONERA VH0011 VEHICULO PROTOTIPO 12 600,75 7209,00 PR0002 GREGORIA P0004 RODILLO TENSOR CR0001 CASA RURAL EL ALTOZANO 15 31,00 465,00 PR0002 GREGORIA P0005 FRENOS DE DISCO CR0001 CASA RURAL EL ALTOZANO 3 470,32 1410,96 PR0002 GREGORIA P0005 FRENOS DE DISCO ED0001 EDIFICIO VIVIENDAS 3 470,32 1410,96 PR0002 GREGORIA P0006 FRENOS DE TAMBOR CR0001 CASA RURAL EL ALTOZANO 10 500,00 5000,00 PR0002 GREGORIA P0006 FRENOS DE TAMBOR ED0001 EDIFICIO VIVIENDAS 2 500,00 1000,00 . . . . . . . .. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .. ..

Menú Informes: desde este menú podremos hacer consultas sobre cada una de las tablas para obtener informes detallados. Estos elementos de menú abrirán las ventanas para realizar los informes.

Las ventanas serán similares a la que se muestra.

Debe aparecer un JComboBox para seleccionar la pieza (o el proveedor o el proyecto, dependiendo del informe).

Al seleccionar el elemento se mostrará su nombre. La ventana cuenta con tres botones, cada uno de ellos mostrará un informe diferente.

Botón Ver detalles de la Pieza, mostrará un informe de los datos de la pieza, y los proveedores que la suministran, con el importe por suministro y los totales. El informe es el siguiente:

		                  DETALLES DE LA PIEZA 
		--------------------------------------------------------------------------
		 Nombre: LONA PARA PISCINA, Descripcion : DE COLOR VERDE PARA TODO TIPO DE PISCINAS
		 Precio: 178.00, Stock : 8
		--------------------------------------------------------------------------

	COD PROV NOMBRE PROV              COD PROY NOMBRE PROYEC                 CANTIDAD     IMPORTE
	----------------------------------------------------------------------------------------------

	PR0002   GREGORIAJIMENEZ          CR0001   CASA RURAL EL ALTOZANO              15      2670.0
	PR0004   ALICIAGARCÍA             CR0001   CASA RURAL EL ALTOZANO              15      2670.0
	----------------------------------------------------------------------------------------------

	TOTALES POR PIEZA >>>>>>                                                       30      5340.0

Botón Ver estadísticas Globales: se mostrarán resultados estadísticos, la pieza o piezas más cara. La pieza/as que se ha suministrado a más proveedores, la pieza/as que se ha suministrado a más proyectos, la pieza más suministrada, con más cantidad acumulada.La pieza con más importe y las que no se han suministrado nunca. La salida será similar a esta:

--------------------------------------------------------------------------
--------------------------- ESTADÍSTICAS DE PIEZAS -----------------------

 Pieza o piezas más caras: 
	 Código: L0002, nombre: HORMIGONERA, precio: 600.75

 Pieza o piezas que se han suministrado a más proveedores (max = 4):
	 Código: P0007, nombre: ENGANCHE, máximo num de proveedores: 4

 Pieza o piezas que se han suministrado a más proyectos (max = 3):
	 Código: L0003, nombre: BACA-PORTABICIS, máximo num de proyectos: 3
	 Código: L0004, nombre: RETROVISOR, máximo num de proyectos: 3
	 Código: P0005, nombre: FRENOS DE DISCO, máximo num de proyectos: 3
	 Código: P0006, nombre: FRENOS DE TAMBOR, máximo num de proyectos: 3
	 Código: P0007, nombre: ENGANCHE, máximo num de proyectos: 3

 Pieza o piezas más suministrada (max = 82):
	 Código: P0007, nombre: ENGANCHE, suma: 82

 Pieza o piezas con mayor suma de importe acumulado (max = 17020.0):
	 Código: L0003, nombre: BACA-PORTABICIS, suma: 17020.00

 Pieza o piezas que no se han suministrado nunca: 
	 Código: L0005, nombre: EMBRAGUE
	 Código: L0008, nombre: ASIENTOS ABATIBLES

Botón Ver Totales: se muestran los datos de todas las piezas, el número de proveedores que las suministra, el número de proyectos donde se suministra, la suma de la cantidad suministrada y el importe de toda esa cantidad, por ejemplo: 

------------------------------- DATOS DE PIEZAS ----------------------------------------------------------------------------------------
CODIGO  NOMBRE                   PRECIO    STOCK     DESCRIPCION                           NUM PROVE  NUM PROYEC  SUMA CANTIDAD  IMPORTE
----------------------------------------------------------------------------------------------------------------------------------------
L0001   LONA PARA PISCINA        178.00    8         E COLOR VERDE PARA TODO TIPO DE PISCINA     2          1           30      5340.00
L0002   HORMIGONERA              600.75    10        PARA REMOVER TODO TIPO DE CEMENTO           2          2           22     13216.50
L0003   BACA-PORTABICIS          230.00    -41       SUJECIÓN CON PUNTOS DE ANCLAJE              2          3           74     17020.00
L0004   RETROVISOR               50.00     10        ADAPTABLE A VARIAS MARCAS                   2          3           20      1000.00
L0005   EMBRAGUE                 450.00    15        ADAPTABLE AL MODELO                         0          0            0         0.00
L0006   ELEVALUNAS               350.00    21        ADAPTABLE A VARIAS MARCAS                   1          1            5      1750.00
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

En el proyecto se resuelve sólo los informes de las piezas.

Se propone como actividad que el alumno resuelva los informes de Proveedores y de Proyectos.

Obra publicada con Licencia de Documentación Libre de GNU (GNU Free Documentation License) (Versión local)