ListBox en VFP

Marlon
18 de Junio del 2003
Deseo trabaja con dos ListBox: del listbox1 estarán los datos a partir de una Tabla, deseo a través de: seleción o arrastrarlos pasarlos a un List2.

osvaldo
18 de Junio del 2003
Espero que esto te ayude, te digo de antemano que hay muchas formas de hacer esto, creo que esta es bastante sencilla pero puedes utilizarla como base y hacer algo mejor, disculpa alguna faltas ortográficas pero amigo a veces no hay mucho tiempo para corregir ok.

1. Paso
LstFuente = lisbox de la tabla

LstFuente.ColumnCount = 4 &&cantidad de campos que seleccionas en la consulta
LstFuente.ColumnWidths = 50,60,70,80 && para darle formato a los datos, estos valores los ajustas dependiendo de la cantidad y el ancho ok.

THISFORM.LstFuente.RowSourceType = 3
THISFORM.LstFuente.RowSource="SELECT * FROM tabla WHERE conducion INTO CURSOR cdatos"

THISFORM.LstFuente.Refresh()


2. Paso
LstDestino = listbox destino
No se si los datos que pasaras al listbox destino son los mismos de la tabla o solo sera un campo.
Si fuese un campo solamente entonces:

LstDstino.ColumnCount = 1
LstDstino.ColumnWidths = ## && tienes que buscar un ancho que se ajuste ok

3. Paso:
ahora necesitas 2 botones, uno para agregar datos y otro para quitarlos.
BOTON 1. cmdagregar

En el evento INIT de este botón escribes:

FOR i = 1 TO ThisForm.lstfuente.ListCount
IF THISFORM.lstfuente.SELECTED(i)
thisform.lstdestino.additem(alltrim(cdatos.campo1))
ENDIF
ENDFOR

Si te fijas estamos asumiendo que solo pasaras un dato de la tabla al listbox fuente y para eso utilizas el cursor y el dato(cdatos.campo1)

BOTON 2. cmdquitar
En el evento INIT de este botón escribes:
FOR j = 1 TO ThisForm.lstdestino.ListCount
IF THISFORM.lstdestino.SELECTED(j)
thisform.lstdestino.RemoveItem(j)
ENDIF
ENDFOR

Esto te permite remover los datos del listboxdestino.

cualquier duda me avizas para ayudarte ok.

osvaldo
18 de Junio del 2003
Amigo me equivoque el los botones de quitar y agregar, no es en el vento init donde escrbes el codigo sino en el evento Click. ok

tttttttttttttt
18 de Junio del 2003
ghdshfgjhjfhgjj