Pasar datos de un list a una tabla dbf en vfp 9 sp1

Estoy desarrollando una aplicación en VFP 9 SP1 la cual trabaja con una bd en mysql... Todo esta funcionando bien, pero al momento en que quiero generar un reporte estoy utilizando el gestor de bd nativo de vfp... En otros formularios con etiquetas utilizo el sencillo insert into tabla C:\sistema\tabla1.dbf (campos) value (valores)... Pero en este formulario especifico en el que me encuentro debo llenar la tabla con múltiples valores que se encuentran en una lista del formulario + algunos text. Para dar una mejor idea les diré que la lista la estoy llenando de esta manera con mysql:
=sqLEXEC(CONEXIÓN,"Select descripción,cantidad from inventario Where deposito=?tdeposito order by cantidad","orcan")
thisform.list1.rowsource = "orcan.descripción,cantidad"
thisform.list1.rowsourcetype = 6
Allí como verán hago una búsqueda en la tabla inventario donde deposito sea igual al código de deposito que esta en la variable tdeposito, que a la vez esta alimentada por un text. Este resultado mysql se carga en una lista donde me va a mostrar la descripción y la cantidad (2 columnas). Todo bien hasta allí... Ahora necesito es pasar los datos de esa lista (list1), a una tabla dbf que tengo llamada repinv donde los campos son: supervisor, fecha, usuario, descripción, cantidad
Donde el campo supervisor se debe alimentar de un text1, fecha con otro variable que posee la fecha, usuario con una variable publica precargada y descripción junto con cantidad se deben alimentar de la lista (list1).
Espero que entiendan mi pregunta, cualquier cosa puedo explicarme mejor. Gracias expertos

PD: Probando por mi cuenta lobre hacer esto:

LOCAL contador
LOCAL pdescri
IF thisform.list1.ListCount>0
FOR contador=1 TO thisform.list1.ListCount
pdescri=thisform.list1.ListItem(contador)
INSERT INTO C:\sistema\tabla1.dbf (descr) VALUES (pdescri)
Endfor
Endif

Funciona pero solo con el valor de la primera columna, no puedo hacer que me copie el valor de la segunda columna (cantidad)... Espero me puedan ayudar. Salu2

1 respuesta

Respuesta
1

Utiliza la propiedad "boundcolumn" del listbox, algo así:

LOCAL contador
LOCAL pdescri
LOCAL pcanti
IF thisform.list1.ListCount>0
FOR contador=1 TO thisform.list1.ListCount
thisform.list1.boundcolumn=1&&Columna 1 del ListBox
pdescri=thisform.list1.Value&&Hala el valor de la columna seleccionada
thisform.list1.boundcolumn=2&&Columna 2 del ListBox
pcanti=thisform.list1.Value&&Hala el valor de la columna seleccionada
INSERT INTO C:\sistema\tabla1.dbf (descr) VALUES (pdescri)
Endfor
Endif

Muchas gracias experto... Pero ahora se queda es en la primera fila, me muestra los datos de las columnas mas no comienza a leer las filas... Espero me puedas ayudar experto

Disculpa se me paso algo por alto

LOCAL contador
LOCAL pdescri
LOCAL pcanti
IF thisform.list1.ListCount>0
FOR contador=1 TO thisform.list1.ListCount

Thisform.List1.ListIndex=contador
thisform.list1.boundcolumn=1&&Columna 1 del ListBox
pdescri=thisform.list1.Value&&Hala el valor de la columna seleccionada
thisform.list1.boundcolumn=2&&Columna 2 del ListBox
pcanti=thisform.list1.Value&&Hala el valor de la columna seleccionada
INSERT INTO C:\sistema\tabla1.dbf (descr) VALUES (pdescri)
Endfor
Endif

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas