• Domingo 22 de Diciembre de 2024, 07:49

Autor Tema:  Listas Desplegables  (Leído 2793 veces)

silvhia

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Listas Desplegables
« en: Martes 3 de Octubre de 2006, 01:58 »
0
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

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Listas Desplegables
« Respuesta #1 en: Martes 3 de Octubre de 2006, 16:34 »
0
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.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

jvankarloz

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Listas Desplegables
« Respuesta #2 en: Martes 3 de Octubre de 2006, 16:52 »
0
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 )

silvhia

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Listas Desplegables
« Respuesta #3 en: Miércoles 4 de Octubre de 2006, 18:03 »
0
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

jvankarloz

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Listas Desplegables
« Respuesta #4 en: Jueves 5 de Octubre de 2006, 16:03 »
0
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.