ListBox MultiSelect

Tengo un ListBox con el Multiselect = .T., Ahora lo que quisiera saber es, si es posible filtrar un cursor Sql con los Item seleccionados en el ListBox, y si es posible como seria la instrucción Sql en este caso, porque la verdad no consigo como hacerlo.

1 Respuesta

Respuesta
1
Si es posible, un ejemplo es el siguiente:
Supongamos que tenemos un cotrol listbox que contiene los códigos de productos, y está establecida la propiedad multiselect a verdadero (.T.) Y un botón de comando para filtrar datos y el cursor lo enlazamos a un control grid.
Entonces en el evento click del botón filtrar escribiríamos un código como el siguiente:
Local lcFiltro, lcIndex, lcCursorSql
lcFiltro = ""
lcIndex = 1
For i = 1 To ThisForm.lstListBox1.ListCount
    If ThisForm.lstListBox1.Selected(i)  && ¿Está seleccionado?
       lcFiltro = lcFiltro + Iif(lcIndex = 1, " Where productos.cod_prod = " + "'" + Alltrim(ThisForm.lstListBox1.Value) + "'",  " And productos.cod_prod = " + "'" + Alltrim(ThisForm.lstListBox1.Value) + "'")
       lcIndex = lcIndex + 1
    Endif
Endfor
lcCursorSql = "Select "Productos.cod_prod, Productos.Nom_prod, Productos.val_prod From Productos" + Iif(Empty(lcFiltro), "", lcFiltro) + " Order By Productos.nom_prod Into Cursor cProductos"
&lcCursorSql
Thisform.Grid1.RecortdSource = "cProductos"
Esa es una de las formas más apropiadas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas