viernes, 5 de agosto de 2011

Insertar un Control ComboBox en Grid - VFP

Saludos estimados. Me han consultado en reiteradas ocasiones como insertar un control ComboBox a un Grid. Aqui presentare como hacerlo. Para insertar un control combo en una columna especifica de un control Grid en nuestros formularios, seguiremos los siguientes pasos. Primeramente, vamos a suponer que tenemos un grid (Grid1) y queremos insertar en la columna1 (Column1) un control ComboBox (Combo1). Va asi: 

1. Click derecho sobre el grid y escogemos la opcion "Editar".
2. Seleccionamos la columna donde insertaremos el combo haciendo click izq. sobre la misma. 
3. Una vez seleccionada, vamos a la barra de controles estandar, seleccionamos el control combo y hacemos click sobre la columna seleccionada donde keremos insertar el control . El ComboBox se debe insertar en la columna y  debera aparecer introducido.
4. Los controles grids traen por defecto el control Text insertado en sus columnas. Por tanto, para que  aparezca el combo como control unico, debemos eliminar el Text. Para ilustrar mejor la situacion, seleccionamos la columna donde insertamos el ComboBox, en la ventana de propiedades, desplegamos el combo contenedor de objetos y ahi te debe aparecer esto:

Column1
   Header1
   Text1
   Combo1

Si aparece de esta manera, significa que hemos procedido correctamente.  Eso indica que tenemos los dos controles en la columna (ComboBox y Text). Ahora quitaremos el Text para dejar solo el combo.

5. Seleccionamos el text de la columna en cuestion. Una vez seleccionado, apretamos la tecla "Suprimir". Y listo. Eso debe eliminar el text. Revisamos en el combo contenedor de objetos de la ventana de propiedades  y en la columna te debe aparecer asi:

Column1
   Header1
  Combo1

Si aparece asi, Eureka! :)


Ahora... nos dirigimos a las propiedades de la columna donde insertamos el combo, en la pestana DATA, buscamos la propiedad CurrentControl y su valor debe ser Combo1. Ahi mismo, seleccionamos la propiedad Sparse = .T. (para mostrar el control en todas las lineas del grid) y listo! Para cargar de datos el combo segun nuestras necesidades, solamente lo seleccionamos y procedemos a darle el tratamiento a sus propiedades de manera normal como a cualquier  otro Combo!

Saludos! Comentarios y sugerencias para mejorar el contendio son siempre bienvenidos. :)
Un abrazo, desde Managua, Nicaragua. 
Ravenn! 

10 comentarios:

  1. Hola realice todo el proedimiento, todo funciono exepto el borrar el text1 de la columna , ya use el supr y cualquier tecla pero no me lo quita de la coluna , existe otra forma de eliminar el text1

    ResponderEliminar
    Respuestas
    1. Saludos! Recuerda que debes seleccionar el text1 de la columna y luego darle suprimir. El enfoque debe estar sobre el form. Si lo seleccionas en el combo de la ventana de propiedades y luego das suprimir, el text no se elimina porque el enfoque esta sobre la ventana de propiedades. Seleccionalo en el combo y luego da un click al form. Luego suprimelo!

      Prueba!

      Eliminar
    2. En verdad Ravenn...no funciona....lo hice yo tambien en el enfoque en form...y en column y nada....que habra pasado...???

      Eliminar
    3. Este comentario ha sido eliminado por el autor.

      Eliminar
    4. Que tonto soy...ya resolvi el problema....todo el proceso esta bien....lo unico que hay que hacer despues de selecctinar el text es dar un click en el marco de tu formulario y luego suprimir y listo .....GRACIAS...

      Eliminar
  2. Perfecto Ravenn,

    Funciono tal y como lo dijiste, ya pude borrar un control de una columna, muchas gracias!!!

    Buen día!

    Carlos Trinidad

    ResponderEliminar
  3. hola Saludos, Quisiera saber como poner la propiedad enabled=.F. sólo a algunos de los combobox del grid. por ejemplo: quiero que los combo con value ='03' estén deshabilitados y los que tenga un valor diferente sean seleccionables, intente con thisform.migrid.column1.SetAll('Enabled',IIF(estado!='03',.F.,.T.),'Combobox'), pero si tan sólo uno de los valores es igual a '03' todos quedan deshabilitados.
    gracias!

    ResponderEliminar
  4. realice todo me funciona ahora si me dices que este combobox funcionaria como cualquier quiero mostrar en ese combobox una consulta coloque en el rowsource select nombre,codigofrom prducto into cursor pro rowsourcetype 3 no me muestra nada me podrias ayudar

    ResponderEliminar
  5. Debes poner en bound to column el valor 2 y el código debe ser de tipo texto

    ResponderEliminar