SoloCodigo
Programación General => Visual FoxPro => Mensaje iniciado por: silvhia en Martes 3 de Octubre de 2006, 01:58
-
Hola Amigos..
Necesito ayuda pliss, soy nueva con fox haci que tengo problemas :( El caso es que utilizo un cuadro combinado para el despliegue de una lista, que toma valores de un campo. Pero como el campo tiene valores repetidos haci que me muestra todos, quisiera que alguien me ayude la forma de como filtrar esto, que no muestre valores repetidos.
Y ademas me gustaria saber si existe la forma, de que si empiezo a teclear en el cuadro combinado a partir de cierta cantidad de letras, se complete el texto, si el texto que estoy escribiendo lo tengo en la lista desplegable.
Agradecere muchisimo su ayuda
-
los que podrías hacer es redireccionar el combo hacia un cursor que generes utilzando la clausla groub by
con la otra pregunta intenta colocando al propiedad del combo "Style" en 2 para ver si es lo que necesitas.
-
Suponiendo que debas mostrar datos de la tabla NOMBRES y debes poner los valores del campo "nombre" sin que se repitan en el combo cboNombres
SELECT NOMBRES
IF !BOF() .AND. !EOF()
THISFORM.cboNombres.AddItem( NOMBRES.nombre )
SKIP
DO WHILE !EOF()
IF !THISFORM.BuscaNombre( NOMBRES.nombre )
THISFORM.cboNombres.AddItem( NOMBRES.nombre )
ENDIF
SKIP
ENDDO
ENDIF
La función BuscaNombre se encarga de buscar los nombres que van siendo añadidos al combo si encuentra uno que ya existe devuelve .T., en caso contrario devuelve .F. y se añade al combo con el método AddItem, el código de la función BuscaNombre puede ser este:
PARAMETERS cNombre
LOCAL lReturn, k, n
lReturn = .F.
n = THISFORM.cboNombres.ListCount
IF n > 0
FOR k = 1 TO n
IF cNombre = THISFORM.cboNombres.List( k )
lReturn = .T.
EXIT
ENDIF
NEXT
ENDIF
RETURN( lReturn )
-
muchas gracias por la ayuda a ambos :) , funciona, pero ahun tengo otra duda cuando coloco el Style en 2 ya no me permite introducir datos.
Y otra cosa todos los cambios que puedo poner a las propiedades del cuadro combinado lo introduje por codigo, para valores de ciertas tablas me funciona muy bien para valores de otras tablas no ;), y no encuentro el porque.......Me sale error de programa... No se encuentra la frase 'campo'. si el RowSourceType lo defini bien :(
Agradecere su ayuda
-
Los combobox son multifuncionales ya que no sólo sirven para mostrar datos de tablas, si te fijas en la ayuda te darás cuenta de ello.
Tendrías que ser más específica en cuanto a tu pedido.