Datos de un grid a Tabla

Tengo un formulario que contiene un grid donde se filtran datos de una Tabla, la pregunta es la siguiente: Como hago para grabar esos datos en una tabla que tiene diferente estructura, es decir, ¿qué no tiene los mismos campos?

2 Respuestas

Respuesta
1
Es fácil! Imagino que lo que deseas es guardar los datos en otra tabla! Para eso, podes utilizar INSERT INTO.
INSERT INTO  tutablanueva(campo1,campo2...) VALUES (THISFORM.Grid1.Column1.Text1.Value, THISFORM.Grid1.Column2.Text1.Value...)
Tableupdate (.t.)
THISFORM. Refresh
Saludos!
Desde Managua, Nicaragua!
A tus ordenes!
Ravenn! :D :D :D
Saludos Ravenn! Desde ya muchas gracias por la grandísima ayuda, ¿ahora me podrías aclarar si en que evento del grid debo colocar el código? Lo que necesito es que todos los datos filtrados pasen de una sola vez a la otra tabla para poder visualizarlos en otro grid del mismo formulario.
Puedes guardar en tu tabla nueva los registros del grid uno por uno... solo es cosa que en el evento valid del text1 de la ultima columna de grid, coloques el código y cada vez que llegues al final "de cada linea" se grabe el registro correspondiente... "uno por uno". Esa es una solución... aquí va otra:
Si estableces un filtro a la tabla de donde sacas los registros, lo correcto es, en base a ese filtro, mandar a guarda esos registros "disponibles" y visibles (en el grid) de una sola vez.
Te explico con un ejemplo. Tienes la "tabla1" con el campo código y ahí tienes 10 registros... 1,2,3,4,5,6,7,8,9,10. Tienes tutablanueva que es donde vas a mandar a guardar los registros procedentes del filtro. Ahora, le estableces el filtro a la tabla1 y mostrás el resultado en la grid...! Imaginate que estableces un filtro para mostrar los registros mayores a 5(por ejemplo)... entonces pones esto:
SET FITLER TO tabla1.codigo > 5
Entonces para guardar los datos resultantes (6,7,8,9,10) debes hacer un LOCATE FOR sobre ese campo de la tabla1 "que ya contiene el filtro" y después mandar a guardar todos los registros de una sola vez en tunuevatabla.. así:
LOCATE FOR tabla1.codigo > 0
DO WHILE FOUND( )
  INSERT INTO tunuevatabla(codigo) VALUES(tabla1.codigo)
   CONTINUE
Enddo
Ves que fácil! Así, primero estableces el filtro y pones "disponible" los registros que cumplen el filtro. Luego con LOCATE FOR mandas a buscar los registros del campo que tienes filtrado que sean mayores a 0... como ya habías establecido el filtro anteriormente (para ver los registros mayores a 5), LOCATE solo encuentra esos registros disponobles con IF FOUND() y luego guarda el primero que encuentra (6), con CONTINUÉ le decís que pase a evaluar el siguiente registro, y encuentra que 7 es mayor a 0, entonces los guarda... y luego 8, 9, y 10 hasta llegar al final. Ves que ingenioso es el asunto je je! Yo lo probé y me dio resultado! Podes ubicar el código en un botón... para que "manualmente" mandes a grabar los registros en tu nueva tabla..!
Cualquier duda o problema que tengas... avisame! Estoy a la orden! Saludos! Ravenn! :D :D :D
Que bueno es contar con personas como tú, que están dispuestas a ayudar!, probaré lo que me indicas, y te contaré los resultados. Nuevamente muchas gracias!
Ok! Proba la solución y si tienes algún problema avisame! Si gustas, podes cerrar esta consulta y puntuar. Si te surge un problema o duda, podes realizarme otra consulta para ver más detalladamente el problema! Y con mucho gusto te ayudo! :)
A tus ordenes!
Ravenn!
:D :D :D
¿Has podido solucionar tu problema? Por favor, finaliza y puntúa esta consulta de ser así! Lo que pasa es que si la dejas abierta mucho tiempo una vez que has solucionado tu inquietud, ocupa espacio en mi bandeja y otros usuarios no pueden consultar! Ves! Cualquier cosa, puedes hacerme otra consulta!
Saludos! :D :D :D
Respuesta

Soy nueva en foxpro, como puedo hacer para ingresar los datos en un grid a una tabla y que me sume los valores, lo que pasa es que al ejecutar el formulario el grid esta como inhabilitado, ya avtive AllowAddNew y ReadOnly pero sigue sin dejarme agregar datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas