Seleccionar elemento de un combo

Hola, como hago para seleccionar un elemento en un combo por código.
En el inicio del formulario cargo un combo con ciudades.
Luego hago una consulta de clientes y quiero que se seleccione la ciudad correspondiente en el combo dependiendo del cod_ciudad del cliente
gracias

1 Respuesta

Respuesta
1
Bueno mira depende mucho de como hayas llenado el combo de ciudades, por ejemplo si llenas el combo con los datos de un cursor, dicho cursor debe contener a más del nombre de la ciudad el código, obviamente solo estas mostrando el nombre de la ciudad, ahora al momento de escoger un cliente así mismo dentro del cursor con el que llenaste dicho combo debe estar el código de ciudad de dicho cliente, ahora en el evento clic del combo de clientes, debes hacer un locate al cursor de ciudades buscando el código de ciudad del cursor clientes, con eso automáticamente el puntero dentro del combo ciudades se te va a ubicar en el registro correspondiente.
El cursor lo cargo de esta forma:
&&creo el cursor
ocont.ciu.crearcursor()
thisform.cbociudad.RowSourceType= 2 
thisform.cbociudad.RowSource = "curCiudades.nombre,cod_ciudad"
thisform.cbociudad.BoundColumn=2
---------------
Lo que no se como se hace es lo del locate que me decís. ¿Cómo seria?
Cuando consulto un cliente traigo entre los datos el cod_ciudad.
No entiendo como hacer esa relación que m decís
Gracias
Ok en el evento clic de tu combo de clientes deberías poner lo siguiente :
codigociudad = curclientes.cod_ciudad
select curciudades
locate for cod_ciudad = codigociudad
Y con eso automáticamente se te debería cambiar dentro del combo a la ciudad que debería, con todo haz la prueba y si no resulta me avisas.
No me funciona.
Yo necesito que en el combo este seleccionada la ciudad del cliente en el momento de iniciar el formulario.
Yo entro a este formulario desde otro... digamos que entro sabiendo quien es el cliente y necesito que ya aparezca la ciudad... no hacer clic para seleccionarla (va a estar deshabilitado el combo, para que justamente no lo modifiquen). Y vos me decís que ponga el código en el evento clic del combo...
Para hacerla más fácil... y no hacerte lio de que t tengas que imaginar mi formulario... t cambio la pregunta
Una vez que tengo cargado el combo con el código que t pase antes, como hago para que se m seleccione uno que yo le digo por CÓDIGO
Haber hasta donde te puedo entender al ingresar al formulario ya sabes el código de la ciudad que viene dado en el cursor clientes, si es así entonces debes poner el código que te dije en el evento init del formulario y debería funcionar
No m funciona
El código que tengo en el init del form es:
------------------------------------------------------------------------------------
&&creo el cursor con las ciudades
ocont.ciu.crearcursor()
&&esto es lo q no anda :(
cciu=ocont.cliente.codciudad
select curCiudades 
locate for cod_ciudad = cciu
&&cargo el combo con las ciudades
thisform.cbociudades.RowSourceType= 2   
thisform.cbociudades.RowSource = "curCiudades.nombre,cod_ciudad"
thisform.cbociudades.BoundColumn=2
&&fin
---------------------------------------------------------------
probe poniendo locate for cod_ciudad = 15, lo corro paso a paso al programa y el cursor se posiciona en el registro 15, pero el combo me queda en blanco. si hago clic tengo todas las ciudades...pero cuando inicia el form el combo esta en blanco y yo necesito q aparezca la ciudad.
Gracias
El select curciudades, y el locate deben ir después de asignar el cursor al combo osea debe ir al final del código del evento init, haz la prueba con eso
Tampoco. Tengo una bronca que exploto. Hace 2 días que estoy peleando con eso.
gracias = por la ayuda
Jaja me imagino así toca mi amigo pero si te calmas y ordenas tus ideas veras que lo resuelves, ahora si tu deseas me puedes enviar los formularios junto con las tablas para revisar en que estas fallando, mi mail es [email protected], saludos
Gracias. Ya lo pude solucionar.
Simplemente agregue esta linea
thisform.cbociudades.value = curCiudades.cod_ciudad
thisform.cbociudades.refresh

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas