FoxPro/Visual FoxPro - varios combo

 
Vista:

varios combo

Publicado por laura (1 intervención) el 30/03/2018 03:01:47
Hola, como le puedo hacer si tengo combobox (estado) en donde a la hora de seleccionar un estado; Ejemplo "México" en el siguiente combobox (municipios) me únicamente los municipios del estado de México, y asi sucesivamente las (combobox) colonias, codigo postal... obviamente existe las bases de estado, municipios, colonias, codigop .... Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

varios combo

Publicado por Abel (286 intervenciones) el 31/03/2018 18:46:49
Una mejor respuesta sería dar una respuesta..

Laura, respecto a tu consulta, en tu combo inicial de Estados conectado a una tabla en donde debe existir un campo relacional que de acuerdo a la selección hecha del estado debe mostrarte los Municipio; y para darte un ejemplo me inventaré los nombres de los campos y los nombres de las tablas...

Nombre de Tabla: TablaEstados
Nombre de Campos: CodigoEstado, NombreEstado, CodigoMunicipio

Nombre de Tabla: TablaMunicipios
Nombre de Campos: CodigoMunicipio, NombreMunicipio, CodigoColonia

Donde NombreEstado y NombreMunicipio contiene el nombre en formato caracter; mientras que CodigoEstado, CodigoMunicipio y CodigoColonia son valores relacionales numericos. (Todo esto inventándomelo ya que no conozco la estructura de tus campos).

Entonces en el Combo1 = Estados tienes visible la lista de estados; en los restantes combos la Propiedad "RowSource" debe quedar vacía y la Propiedad "RowSourceType"=6.

Ahora, en el combo1 de Estados, en el método "InteractiveChange" escribes lo siguiente y considerando que el combo2 es el de Municipios.

* ------------------------------------
Select Select(1)
Select NombreMunicipio, CodigoColonia From TablaMunicipios ;
Where TablaEstados.CodigoMunicipio=TablaMunicipios.CodigoMunicipio ;
Into Cursor csrMunicipio
Thisform.Combo2.RowSource = [csrMunicipio]
Thisform.Refresh()
* -----------------------------------

Los comandos anteriores te crean una nueva tabla cursor que contiene el nombre del municipio y el codigo de colonia para que puedas seguir con la misma secuencia en los siguientes combos.

Ahora, cuando cambias un valor en los combos superiores, los inferiores deberían limpiarse para que no quede visualizado un valor incorrecto; entonces podrías hacer que por ejemplo: Si cambias el Estado, que el combo1, combo2, combo3... combox el value del mismo se vacíe.

thisform.combo2 = ""
thisform.combo3 = ""
etc.

Bueno este es el concepto general del proceso, uno de ellos al menos ya que hay muchas maneras de hacer lo mismo. Puede que alguién "que sí se acuerde" pueda darte una sugerencia mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar