Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
PRÁCTICA IV: Aplicaciones de interfaz gráfica con acceso a base de datos utilizando
ORM del DevExpress.
OBJETIVO: Utilizar algunos eventos y propiedades que tienen asociados las ventanas
(Form) y los controles (TextBox, Button, ComboBox, MenuStrip, DatagridView, etc.) para
acceder a datos almacenados en una base de datos MySQL Server.
En esta práctica, estaremos desarrollando nuestro gestor de facturas que nos
permita interactuar con él.
Desarrollo de la Práctica
La apariencia de la aplicación será la siguiente:
¿Qué elementos integran la aplicación?
La interfaz de la ventana principal se puede ver separada en tres partes:
©Realizado por: Ing. David Maradiaga 1
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
1. El formulario de la ventana principal es un contenedor o sea un formulario MDI, cuyo
título tiene asignado la cadena “GESTION DE FACTURA”.
2. Posee una barra de menús compuesta por 4 menús: Archivo, Operaciones, Ventana
y Ayuda.
3. Y por último una barra de estado con dos etiquetas, la primera muestra un saludo
de bienvenida y la segunda muestra la hora del sistema, la cual es actualizada cada
segundo de tiempo.
¿Cómo funciona la aplicación?
La aplicación funciona de la siguiente manera:
1. El menú Archivo (name: menuArchivo) posee la orden Salir (name: ordenSalir), la
cual finaliza la ejecución de la aplicación. Esto provocará guardar los cambios
realizados en las facturas y los productos en sus archivos XML correspondientes.
2. El menú Operaciones (name: menuOperaciones) posee dos órdenes: Facturas
(name: ordenFactura) y Productos (name: ordenProducto). Ambas órdenes
muestran una nueva ventana para manipular la información de las facturas y los
productos. Cuando el usuario accione cualquiera de ellas éstas se deshabilitarán
hasta que la ventana mostrada sea cerrada, habilitándose nuevamente.
3. El menú Ventana (name: menuVentana) posee tres órdenes: Cascada (name:
ordenCascada), Horizontal (name: ordenHorizontal) y Vertical (name:
ordenVertical). Todas ellas permitirán organizar las ventanas de nuestro contenedor.
Además, en éste menú Ventana se irán visualizando la lista de las ventanas abiertas
(MdiWindowListItem).
©Realizado por: Ing. David Maradiaga 2
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
4. El menú Ayuda (name: menuAyuda) posee la orden Acerca de (name:
ordenAcercade), ésta visualiza una ventana de la plantilla AcercaDe con información
de la aplicación.
5. La barra de estado presenta la etiqueta saludo (name: slbSaludo) con un mensaje
de bienvenida para el usuario al lado izquierdo y la etiqueta hora (name: slbHora)
con la hora del sistema al lado derecho de la barra.
6. Al dar clic en la orden Facturas, se mostrará el siguiente dialogo al centro de la
pantalla:
©Realizado por: Ing. David Maradiaga 3
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
Figura Factura
Este visualizará la información almacenada en la base de datos asociado a las
facturas.
Constará de:
Una etiqueta para la fecha (name: lbFecha), cuyo valor al momento de
registrar una nueva factura será tomado de la fecha del sistema.
Cajas de texto para albergar información de número de factura (name:
txtNum) y nombre del cliente (name: txtCliente). Inicialmente establecidas
como solo lectura (ReadOnly).
Un grid (name: gridProductos) para mostrar los productos de la factura,
usando la propiedad DataSource.
Botones de desplazamientos para ir recorriendo todos los registros de
facturas; primero, anterior, siguiente y último registro (name: btnPrimero,
btnAnterior, btnSiguiente, btnUltimo respectivamente).
Una etiqueta total (name: lbTotal) para reflejar el total a pagar por el cliente,
según los productos registrados en la factura.
Un grupo de botones para las operaciones de nueva factura (name:
btnNuevaFactura), guardar (name: btnGuardar), cancelar (name:
©Realizado por: Ing. David Maradiaga 4
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
btnCancelar), agregar productos (name: btnNuevoProd) y eliminar producto
(name: btnEliminar); el primero habilitado y el resto no.
o Nueva factura:
Carga la fecha del sistema.
Genera el número de factura automáticamente continuando el
conteo después del último.
Habilita la escritura para el nombre del cliente.
Habilita los demás botones de operación y se deshabilita el
mismo.
Deshabilita los botones de desplazamiento.
o Guardar:
Guarda los datos de la nueva factura en la base datos,
mostrando un mensaje indicando tal acción.
Y restablece los controles como aparecen en la Figura
Factura.
o Cancelar:
Restablece los controles como aparecen en la Figura Factura.
Y visualiza el primer o último registro de la tabla
correspondiente si hay.
o Agregar productos:
Muestra el siguiente dialogo modal (ShowDialog) donde el
usuario deberá elegir en una lista desplegable el producto a
agregar a la factura y escribir la cantidad del mismo. Los
demás datos deberán ser tomados de la información del
producto elegido.
Dando clic en Aceptar el producto deberá ser agregado al
grid. Y con un clic en Cancelar dicha operación no se llevará
a cabo. Se deberá comprobar que el campo cantidad no
exceda las existencias del producto.
©Realizado por: Ing. David Maradiaga 5
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
Si se agrega el nuevo producto automáticamente se deberá ir
calculando el total y reflejar en la etiqueta correspondiente.
o Eliminar:
Borra un producto del grid, o sea de la lista de productos de
la factura actual. Habiéndose seleccionado el dato
previamente.
Se mostrará un dialogo donde se pregunte si está seguro de
borrar el dato:
Al borrarse se deberá ver afectado el cálculo del total a pagar.
7. Al dar clic en la orden Productos, se mostrará el siguiente dialogo al centro de la
pantalla:
©Realizado por: Ing. David Maradiaga 6
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
Figura Producto
Este visualizará la información almacenada en la base de datos asociado a los
productos.
Constará de:
Cajas de texto para albergar información de código de producto (name:
txtCodigo), nombre del producto (name: txtNombre), precio (name: txtPrecio)
y cantidad (name: txtCantidad). Inicialmente establecidas como solo lectura
(ReadOnly).
Botones de desplazamientos para ir recorriendo todos los registros de
productos; primero, anterior, siguiente y último registro (name: btnPrimero,
btnAnterior, btnSiguiente, btnUltimo respectivamente).
Un grupo de botones para las operaciones de nuevo producto (name:
btnNuevoProd), guardar (name: btnGuardar) y cancelar (name:
btnCancelar); el primero habilitado y el resto no.
o Nuevo producto:
Genera el número de producto automáticamente continuando
el conteo después del último.
Habilita la escritura para las cajas de texto.
Habilita los demás botones de operación y se deshabilita el
mismo.
Deshabilita los botones de desplazamiento.
o Guardar:
Guarda los datos del nuevo producto en la base de datos,
mostrando un mensaje indicando tal acción.
Y restablece los controles como aparecen en la Figura
Producto.
o Cancelar:
Restablece los controles como aparecen en la Figura
Producto.
Y visualiza el primer o último registro de la tabla
correspondiente si hay.
8. Al dar clic en la orden Acerca de, se mostrará el siguiente dialogo modal
(ShowDialog) al centro de la pantalla:
©Realizado por: Ing. David Maradiaga 7
Universidad Nacional Autónoma de Nicaragua – León
Departamento de Computación
Ingeniería en Sistemas de Información
Programación Visual II
©Realizado por: Ing. David Maradiaga 8