Desplegar Combo en un grid vfp9

Estimados tengo un grid al que le paso un cursor desde un método. Para ello uso el RecordSourceType=4-Sql Statement. En la grilla se muestran OK los datos de la consulta que le paso. En una columna inserte un Combo. La intención es que el combo despliegue los empleados que le paso con otro método (consulta sql). Para ello configuro, en la columna que contiene el combo, el CurrentControl=Combo y el Sparse=.F. . Al combo le paso la consulta por un método, y configuro el combo con RowSourceType=2 - Alias y desde el método le paso el cursor-->thisform. Grid1.column4.combo1.RowSource='cur_emple.Nom_Emple'..el tema es que en ejecucion no me deja desplegar el combo. Si me muestra el empleado asignado que recupera la consulta que le paso inicialmente a la grilla, pero no puedo desplegar el combo para cambiar el empleado que le paso al combo en la otra consulta. ¿Qué estoy haciendo mal?

Desde ya muy agradecido

Slds

Respuesta

Es un poco confuso en este nivel determinar el por que no te permite hacer lo que esperas que haga,

La propiedad .Controlsource, te permite definir el campo que va a ser mostrado en el momento, Mientras que la Propiedad .rowsource te permite llenar el combo con datos de otra tabla, y enlazar el Nro de campo de la tabla mediante la propiedad .boundcolumn.

Esto solo lo puedes hacer cuando el campo de la tabla es Simple (un solo campo). Cuando tienes una tabla de Usuarios que quieres desplegar, la cosa se se complica, porque deseas desplegar los nombres, pero debes enlazar el campo "Codigo".

Yo prefiero hacerlo al viejo estilo, Programando...

***********

*Limpio el combo
WITH thisform.pgfpageframe1.Page4.pgfpageframe2.page1.grdgridcustom1.column2.combo1     
    .Enabled = .T.
    . Clear()
    .Refresh
ENDWITH    

*Ciclo a traves de tabla

lbOut = .f.
GO top IN tmpUsers
DO WHILE ! EOF("tmpUsers") .and. ! lbOut
    *Combo Grid de Asistencia
    WITH thisform.pgfpageframe1.Page4.pgfpageframe2.page1.grdgridcustom1.column2.combo1   

    *Nota que puedo agregar al combo, Coodigo, Nombre, ID, Empresa, Etc....
       .AddItem( tmpUsers.sFichaID)
       .List[.NewIndex, 2] = tmpUsers.sUserName
       .List[.NewIndex, 3] = ALLTRIM(STR(tmpUsers.nUserIDn))
       .List[.NewIndex, 4] = tmpUsers.sUserID
       .List[.NewIndex, 5] = tmpUsers.sempresaID
       .List[.NewIndex, 6] = tmpUsers.sNominaID
       .List[.NewIndex, 7] = ALLTRIM(STR(tmpUsers.nDepartmentIdn) )
       .List[.NewIndex, 8] = tmpUsers.sName
    ENDWITH        

    SKIP IN tmpUsers            
ENDDO

*Fin de codigo

**************

Suerte!

2 respuestas más de otros expertos

Respuesta
1

Yo personalmente prefiero trabajar el combo por separado en el form (vinculandolo con un campo que ya este en el grid) y cuando ya funciona a la perfección, lo corto, edito el grid y lo pego ahí, es un poco trabajoso pero me ha ahorrado tiempo. Lo que me quedo duda de tu pregunta es que si ya estas seguro que el combo es alimentado, porque me suena a que no tiene datos.

Respuesta
1

Solo prueba cambiar la propiedad "Style" del combo1 por 2-Dropdown List.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas