Page 1 of 2

Error BASE/1004 No existe el método: EVAL

Posted: Wed May 14, 2014 8:53 pm
by edufloriv
Saludos amigos,

Tal vez a alguien le ha pasado tener que solucionar este error, el cual me sale esporádicamente (tal vez por alguna acción específica que realiza el usuario):

Date:14/05/14 Time: 15:06:44
Error BASE/1004 No existe el método: EVAL

Called from (b)EVAL(0)
Called from _PROCESSINITPROCEDURE(5090)
Called from _ACTIVATEWINDOW(4923)
Called from REGISTRODEVENTAS(626)


La línea 626 es:

ACTIVATE WINDOW Win_Ventas

No coloco todo el código de la ventana por que es extenso, así que lo adjunto como archivo zip.

Gracias de antemano y saludos cordiales,


Nota: Compilo con HMG 3.0.46

Error BASE/1004 No existe el método: EVAL

Posted: Wed May 14, 2014 9:06 pm
by Pablo César
Hola Eduardo,

Creo que estoy pasando por algo semejante.

Este error es porque apesar de la ventana Win_Ventas estar DEFINED, talvez ella no esté totalmente disponible. Porque ese error que emite viene de este código del HMG:
Screen.PNG
Screen.PNG (18.55 KiB) Viewed 4524 times
Porque hé visto en tu haces un RELEASE WINDOW Win_Ventas en la funcion PROC VentaSalir, solo que no encontré el llamado de esta funcion en el código que postaste.

Podrias explicar en que situacion buscas encerrar tu aplicacion de esta forma ?

Re: Error BASE/1004 No existe el método: EVAL

Posted: Wed May 14, 2014 10:31 pm
by Javier Tovar
Hola Pablo César,

En la linea 217 esta la llamada a esta función.

Code: Select all

      BUTTON BotSalir     ;
         CAPTION '&Salir'   ;
         PICTURE 'imagen\salir.bmp' ;
         ACTION VentaSalir()
Hola edufloriv,

Es difícil saber donde esta el fallo con esta información.

Saludos.

Re: Error BASE/1004 No existe el método: EVAL

Posted: Wed May 14, 2014 10:57 pm
by Pablo César
Javier Tovar wrote:Hola Pablo César,

En la linea 217 esta la llamada a esta función.
Uyy si ! No lo habia visto... gracias Javier.

Eduardo, por el tipo de mensaje, es proveniente del _ProcessInitProcedure, es decir, verifique mejor tu tutina de VentasIniciar. Vea tambien que alli llama otras: VentasFixear (que aqui no lo disponibilizaste) y VentasLimpiar.

Yo empezaria aislando esos llamados.

Re: Error BASE/1004 No existe el método: EVAL

Posted: Thu May 15, 2014 10:26 am
by pctoledo
Friends, see the line 70:

Code: Select all

   ON INIT VentasIniciar()
Replace with:

Code: Select all

   ON INIT {|| VentasIniciar() }

Re: Error BASE/1004 No existe el método: EVAL

Posted: Thu May 15, 2014 1:03 pm
by EduardoLuis
Hola PCToledo:

Te consulto: en que cambia utilizar ON INIT VentasIniciar() ó ON INIT {|| VentasIniciar() }

La pregunta es porque me funciona igual con ambos métodos.-
Gracias por tu aclaración.-
Un abrazo. Eduardo

Error BASE/1004 No existe el método: EVAL

Posted: Thu May 15, 2014 2:34 pm
by Pablo César
EduardoLuis wrote:Hola PCToledo:

Te consulto: en que cambia utilizar ON INIT VentasIniciar() ó ON INIT {|| VentasIniciar() }

La pregunta es porque me funciona igual con ambos métodos.
Pois é amigo Toledo, eu ia te dizer isso. Acho que essa questão fica igual quando o comando é interpretado pelo i_window.ch na hora de executar o _DefineWindow(). É ai que ele coloca como vetor e depois transformado em codeblock. Mas talvez você tenha passado por alguma experiência que você tenha a nos contar :?:

---

Eso mismo, amigo Toledo. Yo le iba a decir eso. Creo que esta forma es la misma cuando el comando es interpretado por el i_window.ch al ejecutar el _DefineWindow(). E alli donde se transforma en vector y luego transformado en codeblock. Pero tal vez usted ha pasado por alguna experiencia que nos quiera contar :?:

Re: Error BASE/1004 No existe el método: EVAL

Posted: Thu May 15, 2014 3:04 pm
by edufloriv
Saludos amigos,

Gracias por sus respuestas. Voy a probar la solución que plantea PCToledo, lo pruebo y les informo.

Saludos cordiales y gracias por su valioso tiempo.



Att.

Re: Error BASE/1004 No existe el método: EVAL

Posted: Thu May 15, 2014 4:55 pm
by Javier Tovar
Hola Eduardo Luis,
EduardoLuis wrote:Hola PCToledo:

Te consulto: en que cambia utilizar ON INIT VentasIniciar() ó ON INIT {|| VentasIniciar() }

La pregunta es porque me funciona igual con ambos métodos.-
Gracias por tu aclaración.-
Un abrazo. Eduardo
Lo que cambia, según yo entiendo, es que al poner el Codeblock el sistema como que "precarga" lo de la función al iniciar la Form en Window Defined y por eso es más rápida la respuesta, y sin el Codeblock lo que hace es llamarla hasta después que se cargue la Form e inicia con ON INIT.

Nota: Si estoy equivocado por favor aclárenme.

Saludos

Error BASE/1004 No existe el método: EVAL

Posted: Thu May 15, 2014 5:18 pm
by Pablo César
Javier Tovar wrote:Lo que cambia, según yo entiendo, es que al poner el Codeblock el sistema como que "precarga" lo de la función al iniciar la Form en Window Defined y por eso es más rápida la respuesta, y sin el Codeblock lo que hace es llamarla hasta después que se cargue la Form e inicia con ON INIT.
En mi opinion, esto no incideria en cualquier error... si es más rápida las respuesta ? No creo. Algo hay en otras funciones, que estaria de alguna forma abortando la salida de ese form.