UTILIZANDO LISTA DE VALORES PARA CIUDADES.

Ya se ha revisado, como utilizar una Lista de Valores Sencilla en la Tabla de Estados, sin embargo, es de uso común que utilizar varias Listas de Valores en un mismo Formulario. Tal es el caso, de la actualización de Ciudades, ya que allí es necesario utilizar una Lista para los Estados y otra para las Ciudades.

Obedeciendo a este planteamiento, acto seguido, se encuentran los pasos necesarios para implementar varias Listas de Valores y lograr una presentación mas dinámica, lo cual es permitido por cualquier herramienta Visual.

Es importante recordar, que se ha estado trabajando con un programa pequeño de actualización de Archivos Maestros, cuyo Menú principal en el Formulario MDI es el siguiente:

Aquí en la opción de Maestros, se pueden actualizar: Clientes, Estados y Ciudades.

Ahora bien, si se selecciona la Opción de Ciudades, se irá al Formulario de actualización de Ciudades.

En este Formulario se actualiza el Código del Estado (Cod_Estado), el Código de la Ciudad (Cod_Ciudad) y el Nombre de cada Ciudad (Nombre_Ciudad). La mencionada actualización, se realiza sobre una Tabla llamada Ciudades con la siguiente Estructura y con Cod_Estado+Cod_Ciudad como Clave Compuesta:

Nombre de Columna

Tipo de Columna

Longitud Columna.

*Cod_Estado

Texto

2

*Cod_Ciudad

Texto

2

Nombre_Ciudad

Texto

20

Estatus

Texto

1

La idea de la Actualización consiste en que cuando el usuario seleccione la Opción de Ciudades en el Menú Principal, aparezca el Formulario de Ciudades con la Opción de LISTAR y SALIR encendidas y las de INCLUIR, MODIFICAR y ELIMINAR apagadas. En este caso, el TEXTBOX donde se coloca el Código del Estado se encuentra apagado y el usuario debe seleccionar obligatoriamente un Estado de la Lista de Valores.

Seguidamente, el Programa activará el TEXTBOX y el DATACOMBO que existe para las Ciudades (Estarán inicialmente apagados).

En ese DATACOMBO solo aparecerán las Ciudades pertenecientes al Estado Seleccionado. Si la Ciudad es nueva, el usuario escribirá un Código y ENTER, para que se encienda el Botón de Incluir.

Una Vez seleccionada la Ciudad (Si ya existe), se encenderán los Botones de Modificar y Eliminar. También se encenderá el TEXTBOX del Nombre de la Ciudad y se mostrará dicho Nombre para que el usuario pueda Modificarlo o Eliminarlo:

Para lograr esta actualización, se deben cumplir los siguientes pasos:

  1. Las rutinas KEYPRESS se mantienen similares a las presentadas en la Sección No. 8. Solo hay que cambiar los COMMAND por IMAGE.

  1. En el Formulario de Actualización de Ciudades FORMCIUDADES, colocar dos DATACOMBO. El Primero para los Estados y el Segundo para las Ciudades. El primero para los Estados, es similar al de la Sección 9.

  1. Colocar un nuevo ADODC3 para las Ciudades en el Formulario y crearle su cadena de conexión a la Base de Datos. El ADODC2 es para el COMBO de Estados, tal como se hizo en la sección en la sección 9.

  1. Una vez que se ha creado la conexión a la Base de Datos en el ADODC3, es necesario seleccionar la pestaña Origen de Registros.

  1. Dentro de la Pestaña Origen de Registros, colocar

    1. Tipo de Comando: AdCmdText

    2. Texto de Comando SQL: Select * from ciudades where estatus=’A’

Order By nombre_Ciudad

  1. Ahora se debe seleccionar el DATACOMBO2 y cambiar las siguientes propiedades:

La propiedad BoundColumn = Cod_Ciudad

La propiedad ListField = Nombre_Ciudad

La propiedad RowSource = Adodc3.

  1. Crear las siguientes rutinas en el Formulario:

OJO PELAO: Se hizo necesario realizar algunos cambios en la rutina DATACOMBO1_CHANGE, obedeciendo a la siguiente situación:

Cuando el usuario seleccione un Estado, se coloca el Código de ese Estado en TXTCODESTADO.TEXT, para ello se usa la instrucción:

txtcodestado.Text = DataCombo1.BoundText. ’Ya se sabe el Código del Estado.

Ahora bien, cuando el usuario vaya a seleccionar del DATACOMBO2 (Ciudades) solo le deben salir las ciudades que pertenecen al Estado seleccionado, pero la instrucción SQL que se encuentra en el ADODC3 permite mostrar los nombres de todas las ciudades sin importar el Estado seleccionado:

Puede notarse, que el SELECT va a traer todas las ciudades sin importar el Estado a la cual pertenezcan.. Este SELECT se encuentra en la propiedad RECORDSOURCE del ADODC3:

En consecuencia, hay que agregar un SELECT al DATACOMBO1_CHANGE:

Luego se le dice al ADODC3 que hay un cambio en su propiedad RECORDSOURCE:

Luego, para que se actualice la Propiedad y se haga el cambio del RECORDSOURCE se coloca la instrucción:

  1. También hay que agregar un DATACOMBO2_CHANGE:

  1. Colocar las rutinas de actualización:

También realizar las de Modificar, Eliminar.

10. Con respecto al Listado de Ciudades, se hace necesario realizar un ajuste para que la salida sea mas amigable y de mas información al usuario. En este orden de ideas, se procede de la forma que sigue:

10.1 Colocar 4 Columnas al MSFlexGrid para que se vea como sigue:

Para ello, debe ir por las propiedades del MSFlexGrid e indicar que ahora hay 4 columnas.

  1. 2 Escribir la rutina para llenar el GRID utilizando un JOIN de las Tablas Estados y Ciudades.

Es necesario resaltar, que en la instrucción SQL, se está utilizando un JOIN de las mencionadas Tablas. Si el estudiante tiene dudas al respecto, debe revisar el “Tema 1 Sección No. 3 Join” en donde se explica ampliamente este punto.

10.3 Ejecutar la salida:

Autor: Ing. Msc. Leonardo Ponte Cordero U.C.L.A - Venezuela