FoxPro/Visual FoxPro - ALGO EXTRAÑO CON 'SCAN'

 
Vista:

ALGO EXTRAÑO CON 'SCAN'

Publicado por Hugo R. (107 intervenciones) el 24/02/2003 05:50:52
Pasa algo extraño resulta que tengo dos vistas en un solo formulario, en las dos hago un procedimiento con el 'SCAN' y 'ENDSCAN' y en una de ellas me da los resultados correctos , Pero lo extraño es que al pasar al segundo procedimiento resulta que el 'SCAN' me da como resultado un 'EXIT' se sale del procedimiento sin hacer el 'ENDSCAN' y por lo mismo no me da los resultados requeridos..!! ojala puedan sacarme de este problema..!! Gracias..!! NOTA :PROGRAMACION DE VFP-7
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:ALGO EXTRAÑO CON 'SCAN'

Publicado por Ahmed (129 intervenciones) el 24/02/2003 23:35:24
Amigo,
Por lo que entiendo en tu pregunta antes de hacer cada uno de los SCAN... ENDSCAN debes seleccionar las tablas respectivas

SELECT "Tabla1"
SCAN... ENDSCAN

SELECT "Tabla2"
SCAN... ENDSCAN

Si no te sirve para poder ayudarte mejor envia tu codigo

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

AHMED ESTE ES EL CODIGO

Publicado por Hugo R. (107 intervenciones) el 25/02/2003 06:05:46
Este es el codigo :

thisform.manoobra=0
SELECT v_ordencobro
SCAN
m.Orden = str (val (v_ordencobro.orden), 5, 0)
m.clv = "Servicio" + m.orden
SELECT clientes
set order to ordena
if seek (m.orden)
m.total = total
m.pagado = pagado
IF m.pagado = 1 then
thisform.manoobra = thisform.manoobra + m.total
ThisForm.txtsubtotal.Refresh
endif
endif
ENDSCAN

thisform.Refresh
thisform.refaccion=0
SELECT vistapcobro

*** hasta aqui funciona muy bien **

*** cuando llega a este 'SCAN' de abajo AQUI SE SALE COMO UN 'EXIT'

SCAN
m.Orden = str (val (vistapcobro.orden), 5, 0)
m.clv = "Servicio" + m.orden
SELECT clientes
set order to ordena
if seek (m.orden)
IF m.pagado = 1 then
thisform.refaccion = thisform.refaccion + vistapcobro.importe
ThisForm.txtsubtotal.Refresh
endif
endif
ENDSCAN

OJAL PUDIERAS AYUDARME..!! 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

RE:AHMED ESTE ES EL CODIGO

Publicado por Roman Suazo (2723 intervenciones) el 25/02/2003 15:18:16
Antes que ejecutes el scan que te da el problema, pone lo siguiente:
SELECT vistapcobro
go top

Tal vez eso solucione el problema, ademas despues de los if selecciona
otra vez la vista.


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:AHMED ESTE ES EL CODIGO

Publicado por AHMED Y ROMAN (107 intervenciones) el 25/02/2003 18:03:35
Amigos, puse las instrucciones que me indican pero aun asi se sale de esa rutina, checando las ayudas de fox checo el comando 'SCAN' y en seguida me pone la palabra 'SALIR' yo pienso que falta una instruccion que tome el 'SCAN' como debe ser y no como 'SALIR' ojala puedan ayudarme..!! 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

RE:AHMED ESTE ES EL CODIGO

Publicado por antonio patiño mendez (60 intervenciones) el 25/02/2003 20:10:05
revise tu codigo y en el primer scan lo unico que le falta es un select v-ordencobro antes del endscan. y para el segundo scan le falta el select vistapcobro antes del endscan. disculpame pero tal vez el primer scan te funcione mal pues en los dos casos al dar un select clientes ya cambiaste el sentido del scan. Ojala te sirva este consejo.

atte
antonio patiño mendez
hermosillo sonora mexico
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:PRUEBA ASI!!!!

Publicado por Ahmed (129 intervenciones) el 25/02/2003 23:52:16
Amigo, disculpa despues de dias entro a la web del programador

prueba con estas modificaciones

thisform.manoobra=0
SELECT "v_ordencobro"
GO TOP IN "v_ordencobro"
SCAN REST
m.Orden = str (val (v_ordencobro.orden), 5, 0)
m.clv = "Servicio" + m.orden
SELECT "clientes"
set order to ordena
if seek (m.orden)
m.total = total
m.pagado = pagado
IF m.pagado = 1 then
thisform.manoobra = thisform.manoobra + m.total
ThisForm.txtsubtotal.Refresh
endif
endif
SELECT "v_ordencobro"
ENDSCAN

thisform.Refresh
thisform.refaccion=0

SELECT "vistapcobro"
GO TOP IN "vistapcobro"
SCAN REST
m.Orden = str (val (vistapcobro.orden), 5, 0)
m.clv = "Servicio" + m.orden
SELECT "clientes"
set order to ordena
if seek (m.orden)
IF m.pagado = 1 then
thisform.refaccion = thisform.refaccion + vistapcobro.importe
ThisForm.txtsubtotal.Refresh
endif
endif
SELECT "vistapcobro"
ENDSCAN

Amigo te recomiendo que ordenes tus tablas desde el entorno de datos, tambien debes tener en cuenta que cada vez que cambias de selec el control del puntero pasa a la otra tabla por lo que debes volver a la tabla que teien el control del scan... endscan, tambien te recomiendo que los nombres de las tablas que seleccionas lo hagas entre comillas (select "tabla1")

Avisame si te funciona

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

Ahmed, Roman y Antonio

Publicado por Hugo R. (107 intervenciones) el 26/02/2003 03:30:11
Ya puse todo lo que me sugieren, y da lo mismo , es mas le doy pausa con el SET STEP ON y al llegar al Segundo Scan se Sale sin ejecutar nada de lo que esta dentro del SCAN Y ENDSCAN . pareciera que lo toma como un 'EXIT'. y lo mas raro es que el primer procedimiento que tiene lo mismo que el segundo ese si funciona y esta tal cual , no hay diferencias..!! ojala puedan ayudarme..! porque me esta comiendo..!! gracias..!! amigos..!!
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

DISCULPAS A TODOS

Publicado por Hugo R. (107 intervenciones) el 26/02/2003 05:21:03
Ya encontre el ERROR resulta que el primer procedimiento con 'SCAN' Y 'ENDSCAN' funcionaba bien porque estaba relacionado a un 'GRID' y el segundo nadamas tenia la vista creada pero no la relacionaba con ningun 'GRID' y eso era el problema , se soluciono al relacionarlo con un 'GRID' y asi el famoso 'SCAN' funciono de maravilla..!! GRACIAS Y DISCULPAS,, pense que el scan funcionaba sin necesidad de relacionarlo. hasta PRONTO..!! FIUUU..!!
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