¿Cómo puedo mandar registros marcados a otra tabla?

Más especifico, que en mi grdi marque archivos con "delete" y al salir del formulario los almacene en otra tabla llamada "archivo muerto".

NOTA: en el evento "destroy" de mi formulario tengo lo siguiente

Close table all

use autos.dbf exclusive

Pack

Use

Esto me permite empaquetar la tabla al salir del formulario, pero ahora lo que quiero no es empaquetar, sino mandar esos registros a otra tabla (solo al salir del formulario)

No se si me explico, quiero modificar el código anterior para que en lugar de empaquetar, guarde los registros marcados en otra tabla

1 respuesta

Respuesta
1

Agregale lo siguiente en el mismo evento "Destroy"..

Close table all

use autos.dbf exclusive

&& ------

cBorrado = set("Deleted")

set deleted off

copy to array aBorrados for deleted()

insert into Tuotratabla from array aBorrados

set deleted &cBorrado

&& ------

Pack

Use

Te xplico ahora lo que estáshaciendo con esos comandos..

1. CBorrado = set("Deleted"): SET DELETED será OFF u ON; donde OFF indica que puedes ver a pesar de haberlos borrado a los registros como si no lo hubieses borrado aunque estaran marcados para borrarlos. Mientras que ON indica que ocultará los registros marcados para borrar para que no se vean.

1a. Entonces lo que haces aquí es copiar hacea la variable "cBorrado" la posición actual de OFF y ON.

2. set deleted off: Ahora te aseguras que el sistema pueda ver los registros marcados para borrar indicando a SET DELETED en OFF.

3. Copy to array aBorrados for deleted(): Como ya puedes ver los registros marcados haces que se copien todos ellos a una matris de nombre "aBorrados"; la traducción de éste comando es (copie hacia una matris de nombre aBorrados todos los registros marcados para borrar).

4. insert into Tuotratabla from array aBorrados: Con el comando INSERT TO indicas que quieres que los datos se copien dentro de otra tabla (ojo!, la tabla debe tener la misma estructura que la original para que no haya problemas con los nombre de campos). La traducción de éste comando sería (inserte dentro de la tabla "Tuotratabla" todos los datos que contiene la matris "aBorrados").

5. set deleted &cBorrado: Ahora debemos devolver a SET DELETED su estado anterior y como el valor OFF u ON está contenido dentro de la variable "cBorrado" usamos el comodín & para que lea el valor contenido dentro de ésta misma variable a SET DELETED.

Una vez que termina con esta parte ya puede empaquetar los datos marcados de la tabla de origen y también se copiaron a la otra tabla.

es perfecto gracias por ayudarme, porfavor dime si ya "cerre" la consulta anterior

Me alegra saber que te fue útil Rodrigo.

La consulta anterior ya no me figura entre las que les falta respuestas así que si, está cerrada. Esta consulta quedó abierta; pero es que no se decirte como se cierran.

Con todo, excelente año.

Me parece que se cierran cuando seleccionas "enviar gracias"

Por mi parte hay una opción que dice no seguir respondiendo; pero las opciones que me da ahí son las de.

1. No quiero responder más esta conversación.

2. El usuario esta haciendo preguntas no relacionadas.

3. EL usuario esta enviando spam.

4. El usuario está haciendo preguntas ofensivas.

Y hay otra que no recuerdo.

Debo elegir una al menos, elegiré la primera para cerrar las conversaciones pnedientes; cualquier duda hazla en otra consulta Rodrigo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas