FoxPro/Visual FoxPro - combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

   
Vista:

combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

Publicado por Sam (18 intervenciones) el 11/12/2015 17:05:00
Amigos gracias de antemano por su ayuda,

tengo un grid asociado a un cursor de lectura escritura, y dentro del grid tengo un combobox con una pequeña lista de valores (ejemplo color: claro, turbio, colurico) pero cuando ingreso manualmente un valor diferente a esa lista, el combobox lo limpia y lo deja en blanco. osea desaparece el valor ingresado manualmente.
Parece que el combobox tuviera desactivada la propiedad "value"

Saludos,
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

combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

Publicado por Fidel José (321 intervenciones) el 11/12/2015 23:09:39
Un combobox en una columna de grid está afectado por controlSource de la columna. El valor que refleje depende de la fuente de datos del combobox y el valor de BoundColumn del combobox.
Si ingresas un valor, el combobox se comporta como un cuadro de texto, y escribe en tu cursor modificable, pero eso no hace que actualice la lista del combobox. Por eso no refleja ningún valor.
La pregunta sería: cómo haces la lista del combobox?

Al margen, el combobox debería ser una clase combobox que pueda resolver los temas de su fuente de datos al agregar nuevos valores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

Publicado por sam (18 intervenciones) el 12/12/2015 01:32:38
Hola la lista del combobox proviene de una tabla, pero no quiero actualizar la lista del combobox si no que el valor que ingreso manualmente actualice el cursor que se muestra en la grilla.
Es decir que cuando no selecciono un valor del combo, que se comporte como un textbox y me permita ingresar un valor manualmente y actualice el cursor que ya es reescribible.

¿cual seria la solución en este caso ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

Publicado por Fidel José (321 intervenciones) el 12/12/2015 16:19:42
Si no quieres actualizar la lista del combobox seguirás con tu problema.
En general los combobox en los controles grid se utilizan con Dropdown = 2, o sea, no se pueden agregar ítems.
Los items seleccionables se agregan en este caso con una rutina independiente con su propia validación, porque de lo contrario te expones a que un usuario ingrese cualquier pavada.
Si el campo es libre, no necesitas un combobox. Si está restringido a una selección, puedes utilizar un combobox. Pero te servirá solamente si el valor ControlSource de la columna está contenido en la columna Boundcolum del combobox. De otra forma, te aparecerá en blanco creando, no solo un efecto desagradable, sino confuso, porque parece que no se ingresó nada ahí cuando en realidad hay un valor.
En resumen,
Para usar combobox combinado: o actualizas la lista del combobox o mejor quita ese combobox.
Mejor: Usar el combobox como dropdown=2 y que se agreguen items seleccionables desde una rutina apropiada. Le puedes poner el acceso a la rutina con un botón en el formulario. Tienes que recrear la lista del combobox y luego el usuario podrá seleccionar el valor nuevo ingresado, quedando reflejado en el control Grid.
Si los datos provienen de una tabla, tienes que actualizar la tabla y luego con un .Requery al combobox estará disponible.
Si los datos provienen de una tabla o cursor pero se agregan por AddListitem, tendrás que regenerar la lista con requery, refresh.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

Publicado por sam (18 intervenciones) el 13/12/2015 00:06:35
Muchas gracias estimado, lo que pasa es que algunas filas del grid requerian combobox y algunas no, pero al poner un combo se inserta en toda la columna entonces habia la necesitad de ingresar valor libre en aquellas que no dependen de una valor de lista.
En fin para no complicarme lo estoy quitando el combo y dejando como textbox y solo aquellos que requieren seleccionar un valor de lista muestro un pequeño form que se llama con click derecho.

Des todas maneras estoy agradecido por tomarse el tiempo de responderme.

Dios lo bendice.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox dentro de un grid, no acepta valores ingresados manualmente, solo lo deja en blanco.

Publicado por Fidel José (321 intervenciones) el 13/12/2015 16:55:14
REcuerda que en las Column de un grid tienes la propiedad DynamicCurrentControl.
Con esto puedes mostrar el combobox o un textbox según lo necesites, dependiendo de algún valor del cursor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar