FoxPro/Visual FoxPro - Ayuda con busqueda de registros

   
Vista:

Ayuda con busqueda de registros

Publicado por Néstor nestorlsilva@gmail.com (23 intervenciones) el 18/04/2016 19:11:28
Saludos programadores,necesito una gran ayuda por favor.
Es posible que la consulta ya esté hasta respondida pero tengo un largo rato buscando en la web algo como lo que necesito.....
Tengo 2 tablas libres caja y mcaja ambas tienen los mismos campos. La tabla CAJA es donde se guardan registros diarios y luego se borran, claro antes se guarda esa data en la tabla MCAJA. Ahora bien mi gran problema es que esa aplicacion la hice en que solo se ejecutara antes de hacer cierre, pero cuando no estoy lo hacen en cualquier momento y se guandan en MCAJA registros que se repiten nuevamente hasta llegar al cierre .
Quiero hacer una condicion que busque por el campo NRO y continue copiando en caso de que no exista.
Algo como:
SI MCAJA.NRO=CAJA.NRO ENTONCES
NO AGREGAR REGISTROS
SINO
COPIAR REGISTROS DE CAJA A MCAJA
FIN SI
La verdad creo que esta logica no s si funciones para fox
Asi lo estoy haciendo en la actualidad...

****************************************************************************************************************
eMessageTitle = '****** ALERTA ********'
eMessageText = '¿YA ES LA HORA DE CIERRE?'
nDialogType = 4+64+0
nAnswer=MESSAGEBOX(eMessageText,nDialogType,eMessageTitle)
DO CASE
CASE nAnswer = 6

*********************************************************************
* CARGA DE REGISTROS DE VENTAS DIARIAS DE C2 *******
*********************************************************************
USE 'c:\Sis_G\Base de datos\CAJA.dbf'
DELETE ALL
PACK

APPEND FROM \\Caja02\c\System\Data\CAJA02.dbf && esta tabla viene de otros sistema y de alli tome las tablas y solo le cambie los nombres
CLOSE TABLES

***************************************************************************
* CARGA DE DATOS DE TABLAS DE VENTAS MENSUALES DE C2 *
***************************************************************************
USE 'c:\Sis_G\Base de datos\MCAJA.dbf'
APPEND FROM \\Caja02\c\System\Data\CAJA02.dbf && esta tabla viene de otro sistema y de alli tome las tablas y solo le cambie los nombres
CLOSE TABLES
*************************************************************************
* APERTURA DE TABLA CAJA.DBF PARA GENERAR REPORTE *
*************************************************************************
USE "c:\sis_g\base de datos\caja.dbf" order tag codigo
SET REPORTBEHAVIOR 90
REPORT FORM "\reports\ventah.frx" NOCONSOLE PREVIEW
************************************************************************************************************************
CASE nAnswer = 7

********************************************************************
* CARGA DE REGISTROS DE VENTAS DIARIAS DE C2 *******
********************************************************************
USE 'c:\Sis_G\Base de datos\CAJA.dbf'
DELETE ALL
PACK

APPEND FROM \\Caja02\c\System\Data\CAJA02.dbf && esta tabla viene de otro sistema y de alli tome las tablas y solo le cambie los nombres
CLOSE TABLES

*****************************************************
* APERTURA DE TABLA CAJA.DBF PARA GENERAR REPORTE *
*****************************************************
USE "c:\sis_g\base de datos\caja.dbf" order tag codigo
SET REPORTBEHAVIOR 90
REPORT FORM "\reports\ventah.frx" NOCONSOLE PREVIEW

ENDCASE

Si me pueden ayudar se los voy a gradecer Muchisimoooooooo
Adjunto las tablas ,,,,, Graaaacias de antemano.....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Eduardo

Ayuda con busqueda de registros

Publicado por Eduardo (78 intervenciones) el 19/04/2016 00:09:58
Si el problema es que te la actualizan antes de hacer el cierre, en la tabla CAJA puedes crear un campo con valor booleano llamado por ejemplo "listo".

Y cuando se lleva a cabo una actualización, no borre los registros de CAJA sino que marca el campo "LISTO" con .T.

Así, cada vez que actualicen, el programa puede saber qué registros ya fueron actualizados y cuáles no, por lo que actualizaría sólos los registros cuyo campo LISTO sea falso.

Es una idea, para no complicarse demasiado la vida.

Saludos

Eduado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio Antonio

Ayuda con busqueda de registros

Publicado por Mauricio Antonio (1368 intervenciones) el 19/04/2016 18:16:38
para no modificar el proceso que tienes hecho, podrias crear una bandera que tenga .t. si esta en proceso de cierre, caso contrario que tenga .f.
*
* es que esa aplicacion la hice en que solo se ejecutara antes de hacer cierre, pero cuando no estoy lo hacen en cualquier momento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar