FoxPro/Visual FoxPro - Detener ejecucion.

   
Vista:

Detener ejecucion.

Publicado por Dr. Casabe (134 intervenciones) el 08/01/2010 21:10:18
He preguntado esto otras veces y nadie ha osado contestarme.

Ok. El caso es este:

Ejemplo: ocurre un error de sintaxis de un boton aceptar de un formulario, entonces activa una rutina de control de errores que tengo en un programa.

Todo bien hasta ahora, el caso es que cuando contesto el mensaje cliqueando en su boton aceptar, entonces no me cancela la ejecucion del sistema completo, saliendo de este, y yo deseo que se quede el enfoque en el formulario del boton que origino el error.

He utillizado RETURN y EXIT sin resultados satisfactorios.

Gracias por cualquier luz.
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:Detener ejecucion.

Publicado por andy (221 intervenciones) el 09/01/2010 01:45:11
A mi me a dado buenos resultados utilizar en distintos lugares de la rutina
wait window' ' ,asociada a variables que quiero ir probando, por ejemplo:
wait window''+str(val1)
o si no:
wait window 'estoy en tal lugar'
hasta determinar donde esta el error.
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:Detener ejecucion.

Publicado por xx (378 intervenciones) el 10/01/2010 01:49:39
Bueno es dificil diagnosticar sin el segmento de codigo que genera el error, pero generalmente existen funciones para comprobar ciertos estados por ejemplo con VARTYPE() puedes comprobar si existe y que tipo de valor tiene una variable, con FERROR() puedes comprobar errores de manejo de fichero a bajo nivel entre otros, ahora en un formulario cuando se produce un error suponiendo que se llame desde un boton y este produce un error se ejecuta el metodo THISFORM.COMMAND1.ERROR() y este deberia detener la ejecución, ahora si el error se produce en un metodo u evento del formulario se lanza o ejecuta el metodo THISFORM.ERROR(), quizas tengas un bucle dentro del THISFORM.COMMAND1.CLICK() y este produzca un error y a raiz de ello es siguiendo la ejecucion del metodo CLICK luego del THISFORM.COMMAND1.ERROR() todo depende que del codigo.
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:Detener ejecucion.

Publicado por Dr. Casabe (134 intervenciones) el 10/01/2010 15:25:46
Gracias a ustedes dos por su interes de responder mi pregunta.

El caso no es determinar el error, eso lo domino muy bien y tengo una rutina infalible. El caso es, como detener la ejecucion del programa en un punto donde quiebre por un error de sintaxis, por ejemplo.

Entonces, despues de elli, que ignore todo y vuelva el enfoque al boton del formulario que contiene el codigo que genero el error, y no que me saque del sistema por completo.

Bueno si quieren mas detalles, no duden en preguntarme.

Gracias otra 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:Detener ejecucion.

Publicado por xx (378 intervenciones) el 10/01/2010 17:03:28
Bueno hasta donde yo se no se puede, pero dependiendo de la version del foxpro que uses existe un comando TRY CATCH que tambien se usa en otros lenguajes como java o C++ pero estos tambien ante un error detienen y desvian la ejecución, asi que algo generico creo que no es posible, hasta donde se la unica solucion es anticiparse e ir comprobando todos los puntos en donde podrian producirse algun error y comprobarlo mediante algun metodo de modo a tener el control del flujo del programa pero como dije todo depende del codigo, Se entiende que un error de ejecución es una situación anormal en la que el programa no esta preparado para saber que hacer exactamente, entonces nosotros debemos dotarles de inteligencia para saber que hacer ante esta situación, Espero haber ayudado!.
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:Detener ejecucion.

Publicado por xx (378 intervenciones) el 10/01/2010 23:08:49
PD luego de pensar y analizar el tema, el comando RETRY ejecuta de nuevo el comando que ha generado el error pero nunca lo he probado en formularios y tengo mis dudas que funcione, es decir creo que poniendo RETRY dentro de THISFORM.COMMAND1.ERROR() deberia devolver el control a la ultima linea que genero el error, ahora el tema esta en que el metodo THISFORM.COMMAND1.ERROR() sepa manejar y recuperar el error, ejemplo suponiendo que no existia una variable este lo cree e inicialice con el valor adecuado ahora lo que quise dar a entender es que si preparas tu metodo THISFORM.COMMAND1.ERROR() para que recupere este error especifico que pasa si ocurre otro error en otro comando? pues simple no va a poder recuperarlo salvo que programes de una forma rara recuperando el nro de linea que genero el error o algo asi que francamente seria insostenible o dificil de mantener supongo.
Bueno espero haber ayudado.
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:Detener ejecucion.

Publicado por Abel Alejandro (1 intervención) el 23/11/2010 18:49:20
intenta con SET STEP ON
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