FoxPro/Visual FoxPro - busqueda en una tabla a partir de una tempora

   
Vista:

busqueda en una tabla a partir de una tempora

Publicado por Diego Villavicncio (15 intervenciones) el 31/07/2008 18:53:14
Hola mi problema es el siguiente:

Tengos dos tablas el la primera con informacion del total de una compra (ingresos) y en la segunda los pagos que se ha relizado (Invpag), estoy haciendo una consulta de las compras que se encuentran impagas y los almaceno en una tabla temporal luego mi intención es buscar a partir de la tabla temporal en la tabla invpag,
dejo el codigo para que me puedan decir donde tengo el error o como debería realizarlo?

mc_Temporal00=SYS(3)+".tmp"

SELECT CODIGO_VENDEDOR AS CODVEN, N_PUNT as NUMPUN, NUMERO_INGRESO AS NUMING, VALOR_TOTAL AS VALTOT , FECHA_HORA AS FECHOR;
, estado as ACTIVOS , NUMERO_CAJA AS NUMCAJ, NPAGOS AS PAGOS, TIPOCOMP AS TIPING, codexp AS CODIGO, nombre AS NOMVEN FROM &MC_DATAPATH.&MC_SOURCEFILE. into dbf &MC_TEMPORALPATH.&MC_TEMPORAL00.;
WHERE (TTOD(FECHA_HORA)=MD_DATETODAY)AND(NUMERO_CAJA=MC_CAJA)AND ESTADO#'C' AND ESTADO#'A' ORDER BY CODIGO_VENDEDOR , NUMERO_INGRESO ASC
GO TOP

USE &MC_DATAPATH.&mc_SourceFile2. IN 0

DO WHILE.NOT.EOF()
suma=0
scan for alltrim(Invpag.numero_ingreso) = alltrim(numing)
suma= suma+invpag.valor
endscan
IF .NOT. EOF()
SKIP
ENDIF
ENDDO
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

RE:busqueda en una tabla a partir de una tempora

Publicado por kong (681 intervenciones) el 31/07/2008 19:42:07
. porque usas tabla temporal (dbf)?
. no se puede usar cursores?, que es lo mismo que una tabla temporal.
. de que te sirve mandar a un determinado directorio si es una tabla temporal
. ....Poner el INTO... al final
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

RE:busqueda en una tabla a partir de una tempora

Publicado por Diego (15 intervenciones) el 31/07/2008 20:13:12
si se puede utilizar cursores de hecho ya lo estoy haciendo asi mi problema es en el bucle al querer hacer la busqueda si los que estan en mi cursor estan en la tabla invpag y hacer la suma de los pagos para cada uno.

DO WHILE.NOT.EOF()
suma=0
scan for alltrim(Invpag.numero_ingreso) = alltrim(temp.numing)
suma= suma+invpag.valor
endscan
IF .NOT. EOF()
SKIP
ENDIF
ENDDO

ingresa una sola vez y sale del do while.
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

RE:busqueda en una tabla a partir de una tempora

Publicado por enrique (1041 intervenciones) el 31/07/2008 22:42:47
Si mal no recuerdo el SCAN..ENDSCAN busca hasta el ultimo registro para comprobar si se cumple la condicion y cuando preguntas:
IF .NOT. EOF()
te da verdadero, por lo que sale del do while
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

RE:busqueda en una tabla a partir de una tempora

Publicado por Diego (15 intervenciones) el 01/08/2008 17:46:53
ok entiendo, y como puedo hacer para recorrer ambas tablas a la vez?
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

RE:busqueda en una tabla a partir de una tempora

Publicado por Romeo Durini (2 intervenciones) el 25/08/2008 22:51:16
Trabajando con Win XP Professional, cuando busco un texto dentro de una tabla de FoxPro (archivos *.dbf), el XP no tarda pero ni un segundo en responder que no lo encuentra, aún siendo un archivo enorme (varios MB), como si en realidad no lo buscara. Sin embargo, este mismo archivo .dbf lo convierto a formato de Excel, el XP se tarda varios segundos (digamos 20) pero sí lo encuentra. Alguien sabe si existe alguna restricción en XP para búsquedas en archivos de FoxPro (.dbf) ??.
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

Busqueda en una tabla a partir de una tempora

Publicado por Mauricio (1368 intervenciones) el 01/08/2008 21:47:06
Espero que esto te sirva de algo:
*
USE invpag IN 0 ORDER numero_ingreso
*
SELECT Codigo_Vendedor AS CodVen, N_Punt AS NumPun, Numero_Ingreso ; AS Numing, Valor_Total AS Valtot , Fecha_Hora AS Fechor, Estado AS Activos, ;
Numero_Caja AS Numcaj, Npagos AS Pagos, Tipocomp AS Tiping, Codexp AS ; CODIGO, nombre AS Nomven FROM Compra ;
WHERE FECHA_HORA = MD_DATETODAY AND NUMERO_CAJA = MC_CAJA ; AND ESTADO # 'C' AND ESTADO # 'A' ORDER BY ; CODIGO_VENDEDOR, ;NUMERO_INGRESO ASC INTO CURSOR Tempo
*
suma = 0
USE Tempo
GO TOP
Wnuming = numing && almacenar clave de temporal
*
SCAN && barrido en temporal
Wnuming = numing && almacenar clave de temporal
IF SEEK(wnuming, invpag)
SELE invpag
SCAN WHILE wnuming = numero_ingreso && barrido en compras
suma = suma + valor
SKIP
ENDSCAN
ENDIF
SELE Tempo
SKIP
ENDSCAN
*
Lo que no se es que hacer con suma???????????????
Saludos!!!!!!!
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

RE:Busqueda en una tabla a partir de una tempora

Publicado por Diego (15 intervenciones) el 02/08/2008 22:16:17
Hola gracias por tu respuesta me sirvio de mucho, bueno con suma me quedan algunas cositas por hacer, pero ya con tu ayuda lo resuelvo
GRACIAS.
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