El Nuevo Maestro Detalle de Visual Basic Express 2005Fecha: 04/Ene/2006 (03-Enero-2006)
|
Introducción
Como arte de magia se podría definir el nuevo Maestro-Detalle de Visual Basic 2005, pues si retrocedemos un poco en el tiempo en sus versiones anteriores ninguna de estas pudo superar todos aquellos problemas que se generaban a la hora de intentar enviar un registro en el extremo del detalle, dicho repositorio era representado por una tabla contenida en un control de tipo Grid. El único remedio era el hacer trucos de refrescamiento en el control para que este admitiera el valor del campo relacionado, y de esta forma en el momento de grabarlo en la base de datos este fuera aceptado y no generara ningún error en tiempo de ejecución. Otro problema muy frecuente en versiones anteriores era que los controles de tipo Grid no proporcionaban grandes funciones como el uso de controles de tipo Combo y otros más que de alguna forma eran necesarios. Recuerdo que en este mismo sitio ya hace muchos años se presento un truco innovador en la versión 5.0 de Visual Basic que consistía en utilizar controles de lista el cual se podían fusionar de alguna manera para que estos en tiempo de ejecución adquirieran la forma de un combo box dentro de un grid al estilo del famoso Microsoft Access.
Todo estos problemas en el diseño y construcción de los formularios de tipo Maestro-Detalle se han acabado con la salida de Visual Basic 2005, pues esta herramienta tan sofisticada permite el diseño de estos formularios sin escribir una sola línea de código, únicamente arrastrando con el Mouse los campos que se requieren en el formulario desde la ventana del Data Source, un nuevo elemento presente en la conectividad a orígenes de datos, el cual facilita las conexiones mediante un asistente y al mismo tiempo simplifica los pasos de conexión en uno solo, produciendo un nuevo elemento denominado TableAdapter.
Este artículo esta basado en el uso de los mecanismos para desarrollar formularios Maestros-Detalles tan fáciles como arrastrar y pegar archivos en el entorno de Windows Explorer de Microsoft.
Primeros pasos
En el diseñador, aparece un el menú de Data la opción agregar un nuevo Data Source. Se ejecuta esta opción y a continuación se visualiza un asistente el cual solicita el tipo de origen de datos. A continuación muestro el menú para ejecutar la opción, junto con la primera pantalla del asistente :
La figura 1.0 Muestra el Menú Data
La figura 2.0 Muestra la primera pantalla del asistente de selección de datos
Una vez ejecutado el asistente, de las tres opciones mostradas en la primera pantalla, seleccionar la que se denomina Database, luego hacer clic al siguiente paso. A continuación muestro el segundo paso para proseguir la configuración :
La figura 3.0 Muestra la información de conexión que utilizara la aplicación
El mecanismo que permite crear conexiones a una base de datos en una aplicación es muy sencillo, solo basta con hacer clic en el botón con el título New Connection. A continuación muestro el formulario que permite crear o cambiar la información de conexión :
La figura 4.0 Muestra las opciones de conexión
En el formulario anterior, se encuentran algunas opciones tales como el cambiar el origen de datos, examinar el sitio del archivo de la base de datos, la forma de autenticación, prueba de conexión etc. Todos estos tienen uso intuitivo el cual no mencionare por su facilidad de uso y parecido en otros ambientes de conectividad a bases de datos.
Una vez creada la conexión a la base de datos, será necesario dos pasos finales, el primero seleccionar las tablas u otros elementos requeridos de la base de datos dentro de la aplicación y para finalizar guardar la información de conexión. A continuación muestro los dos pasos finales:
La figura 5.0 Muestra los objetos disponibles de la base de datos
La figura 6.0 Muestra el archivo de configuración para ser guardado
Una vez creada la conexión de la base de datos se realizarán algunas pequeñas modificaciones al Dataset, las cuales tienen que ver con propiedades en los campos de las tablas que serán utilizadas en el formulario. A continuación muestro el explorador de proyectos :
La figura 7.0 Muestra el contenido del proyecto
Para realizar las modificaciones al Dataset será necesario hacer doble clic sobre el archivo con extensión XSD. A continuación se muestra el siguiente diagrama con las tabla de la base de datos:
La figura 8.0 Muestra el diseño relacional de las tablas usadas en el dataset
Cada campo contenido dentro de estas tablas contienen propiedades que pueden ser modificadas, tal caso es por ejemplo los títulos de los campos, si permiten valores nulos o no y un sin número de propiedades que pueden ser de mucha utilidad, el mecanismos para hacer estas modificaciones es primeramente seleccionando el campo y luego haciendo clic en la ventana propiedades o haciendo clic con el botón derecho. A continuación muestro un ejemplo :
La figura 9.0 Muestra la propiedad Caption modificada
Como se puede apreciar la lista de propiedades permite personalizar aun más los campos dentro de las tablas, esta es una características ideal en el momento de arrastrar y pegar los campos dentro de un formulario, ya que con esta operación es posible que se cree de forma automática un control de tipo Label que permita reproducir el Caption de un campo.
Posteriormente a la modificación de la propiedad Caption en algunas de las tablas presentadas en el Dataset, viene lo mejor, arrastrar el campo al formulario e irlos ubicando de acuerdo a las necesidades del diseño. A continuación muestra una figura visualizando los campos de cada una de las tablas que pueden ser utilizadas en el proyecto :
La figura 10.0 Muestra el Data Source con las tablas y campos respectivos
Como se puede observar el nombre del Dataset northwndDaset expone las tablas y a su vez estas los campos que pueden ser utilizados en el proyecto, como se puede observar también el campo Picture muestra un icono el cual indica que no puede ser usado, pero es resuelto haciendo clic sobre el mismo y luego haciendo clic con el botón derecho del Mouse y seleccionar el tipo de objeto que es. A continuación muestro una figura con el ejemplo :
La figura 11.0 Muestra los tipos de objetos disponibles
Cuando se arrastra un campo al formulario se crea un objeto que permite la navegación entre registros, el cual se define como un nuevo control para Visual Basic 2005, dicho control tiene el nombre de BindingNavegator, el cual puede ser personalizado, insertándole más botones y otros elementos de mucha utilidad según sean las necesidades. A continuación muestro BindingNavegator editándolo al momento de insertar una opción para cerrar el formulario, simplemente haciendo clic con el botón derecho del Mouse se presentara el siguiente menú contextual y en el cual se puede seleccionar el objeto requerido:
La figura 12.0 Muestra la barra de opciones personalizada
El siguiente formulario es producido luego de todos los pasos que se han ido explicando a lo largo del artículo. Pero hay algo que se requiere mencionar que en todo este proceso de diseño no fue necesidad escribir código a excepción de programar el botón cerrar del formulario. Toda la codificación que el asistente inteligente generó se encuentra en archivos que no están a la vista pero que con hacer un clic en el botón (Mostrar todo), opción del explorador de proyectos, se podrán visualizar dichos archivos.
Finalmente posterior a todo lo antes expuesto y explicado el producto resultante es un formulario elegante, intuitivo de utilizar, fácil de mantener y ligero de ejecutar. A continuación muestro el producto final:
La figura 13.0 Muestra el producto final
Para finalizar, el nuevo y mejorado control Grid, posee elementos sofisticados en la utilización de objetos dentro del mismo, como se puede observar en la figura anterior el campo de Proveedor contiene un tipo ComboBox que permite mostrar la descripción del proveedor en vez del código, para que el Grid pueda utilizar dichos elementos será necesario en tiempo de diseño seleccionarlo y haciendo clic en el botón derecho del Mouse y luego seleccionado la opción editar columnas se dispondrá posteriormente de un asistente que permite configurar y a la vez personalizar las columnas del Grid, por ejemplo el ancho, el tipo de letra, color, tipo de objeto utilizado dentro de la cuadricula etc.
Para conseguir el efecto Maestro-Detalle será necesario arrastrar la tabla Products al formulario al momento de arrastrarla, este efecto producirá de forma automática la sincronización entre la tabla principal y la tabla secundaria, permitiendo de esta manera la relación Maestro-Detalle. Una vez realizado esto, automáticamente se generará el control Grid. Se recuerda que todos los elementos presente en el formulario fueron arrastrado en dirección al formulario.
Para cambiar la información de conexión de la base de datos en la aplicación solo basta hacer doble clic en el archivo app.config, el cual se encuentra en el explorador de proyectos. Dicho archivo es un script XML, el cual almacena entre otras cosas la información de conexión de la base de datos, esta es una implementación nueva en Visual Basic.
En el caso de este ejemplo fue necesario editar la columna que contiene el campo de proveedor, cambiando el tipo de objeto a visualizar (ComboBox) sobre el campo, y enlazándolo a la tabla que contiene la descripción al campo llave. A continuación muestro el formulario que permite realizar estas operaciones:
La figura 14.0 Muestra el editor de columnas de un objeto DataGrid
En la categoría Data se definen elementos como por ejemplo, el campo a utilizar para mostrar los datos, el campo principal que permitirá pasar el valor que viene del campo llave al campo secundario. En la categoría Design se puede observar el tipo de columna definida, así como el nombre de esta.
Son un sin número de elementos que pueden ser modificados dentro del asistente para editar columnas, pero que este artículo no los abarca ya que su objetivo esta centrado en el diseño de un formulario Maestro-Detalle y elementos básicos utilizados para su creación. Quizás en un futuro en algún otro artículo toquemos temas mas específicos en el uso de algunos controles de esta nueva generación de controles para Visual Basic 2005.
Quiero finalizar agradeciendo una vez más a todas y aquellas personas que me han escrito consultándome información en el uso o solución en algunas situaciones reales que se presentan en el momento de desarrollar e implementar software en sus trabajos. Espero que este primer artículo del 2006 y todo aquellos escritos en 2005 puedan seguir sirviendo de una u otra forma de ideas y soporte para dar soluciones reales.
Implementando una solución con Microsoft Visual Basic Express 2005
A continuación muestro los requerimientos necesario para crear el proyecto dentro de Visual Basic Express el cual utiliza controles comunes para su debida ejecución:
- Microsoft SQL Server 2000
- Microsoft Visual Basic Express 2005
- Microsoft Windows XP o superior
- Computador Pentium o superior
- Memoria RAM 128 o superior
- Monitor VGA de ‘’15 o superior.
Conclusiones
Microsoft Visual Studio 2005 es una autentica herramienta sofisticada que brinda soluciones a la producción de software de última generación de una manera fácil e intuitiva como el resto de herramienta de Microsoft y no tiene que envidiarle nada al resto de herramientas que dicen dar soluciones a altos costos tanto de hardware y software.
Microsoft en esta edición de Visual Studio ha puesto mucho énfasis en insertar nuevos controles comunes de uso muy cotidiano, en extender mucho mas la utilidad de Netframework 2.0, en mejorar y simplificar el uso y manejo de bases de datos remotas y locales, en mejorar en un 100% el desarrollo de aplicaciones para Web y mucho más.
Para cuando este artículo este publicado seguramente estemos usando la versión Pro 2005 de Visual Basic, versión que es totalmente completa y que muy seguro iremos descubriendo sus bondades para poder compartirlas en la comunidad de desarrolladores de habla hispana.
En cada ola de tecnología, las nuevas herramientas de desarrollo están proporcionando de manera acelerada la creación de servicios empresariales más sofisticados nunca. No hay que sorprenderse si en los próximos años estos servicios que aun tienen presencia de personal humano sean sustituidos completamente por productos que involucran inteligencia artificial.
Giovanni Cuadra.
Fichero con el código de ejemplo: gcuadraMaestroDetalleExpress.zip - 245 KB
(MD5 checksum: 4D47566FD4B09DE5BFB2ECD7CDE8B967Nota sobre el checksum MD5:
La utilidad MD5.exe para comprobar la integridad de los ficheros la puedes bajar de este sitio:
MD5- Command Line Message Digest Utility (http://www.fourmilab.ch/md5/)
El ZIP con la versión para Windows y el código fuente, en este sitio: md5.zip
(md5 checksum: B14E189E965E5ED523282D3C8EE6C945)
Para usar la utilidad MD5, simplemente escribe desde la línea de comandos:
MD5 <nombre del fichero> y te mostrará el número de "checksum" que debe coincidir con el mostrado, si no coincide... ¡NO TE FÍES DE ESE FICHERO! ya que puede estar mal o "manipulado".
Si se te da el caso de que el checksum mostrado no coincide con el que te muestre esa utilidad, por favor avísame indicando el nombre del fichero, el checksum que has obtenido y de dónde has bajado el fichero.
Gracias.