FoxPro/Visual FoxPro - Informe Divisas

 
Vista:
sin imagen de perfil

Informe Divisas

Publicado por Amado Garcia (68 intervenciones) el 05/09/2008 17:25:31
Hola.. a todos... buenos dias... saben trato de realizar un informe de compra-venta de divisas, en el form, en un Boton "Iniciar" tengo el sig. codigo...

local nCant
nCant=0
Thisform.VarMemo() && Metodo las variables..usadas en el Bucle DoWhile
SELECT divisas && Tabla de Divisas
tpcambio=compra
SELECT virtual && Tabla Compra-Venta Ejercicio Diario
SET FILTER TO && Libera lo filtrado
GO top
COUNT TO nCant
IF nCant = 0 && Comprueba si la tabla esta vacia...
titulo='INEXISTENCIA'
Mensaje='La Tabla de Datos se encuentra vacia..'
boton=0+64
MESSAGEBOX(mensaje,boton,titulo)
Thisform.Release
ENDIF
SET FILTER TO tipo="P" && Filtrar la Povision Inicial
GO Top
prvdolar=edolar && Asigna a variables Provision Dolares
prvpeso=epesos && Asigna a variables Provision Pesos
SET FILTER TO
SET FILTER TO tipo<>"P" && Filtra lo que no sea Provision..
GO top
DO WHILE ! EOF() &Inicia El bucle
ingpeso=epesos+ep && Las Variables ingpeso,egrpeso,ingdolar,egrdolar
egrpeso=spesos+sp && ep,sp,ed,sd ya estan definidas en un Method "VarMemo"
ingdolar=edolar+ed
egrdolar=sdolar+sd
skip && AQUI ES EL PROBLEMA CUANDO ESTA VACIA SE SALE EL SISTEMA
IF EOF()
EXIT
ELSE
ep=ingpeso
sp=egrpeso
ed=ingdolar
sd=egrdolar
ENDIF
tdolar=egrdolar
PromComp=EgrPeso/ingDolar
PromVta=IngPeso/EgrDolar
PromProv=Prvpeso/prvdolar
ndiferencia=promvta-Promcomp
nutilidad=ndiferencia*tdolar
Thisform.Refresh
ENDDO
Thisform.Refresh & Refresa el Form ara ver los datos... al mismo tiempo;
Thisform.Command3.Click(). && Llama a este Boton para imprimir e Incorporar
&& Movimientos a Tabla maestra y borrar Cont Virtual

Lo que pasa es que esto realiza bien cuando existe el SKIP en el Bucle pero se lo quito y al usar esto cuando la tabla "virtual" esta vacia... se sale el sistema...

Espero me ayuden muchas gracias...
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:Informe Divisas

Publicado por Plinio (7841 intervenciones) el 05/09/2008 18:07:32
Pon un SET STEP ON para que vea por donde marcha tu programa. Pero la logica dice que si esta vacio el cursor que recorres el DO WHILE no se ejecuta, porque encuentra el EOF de una 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