Progress - Preprocesador

 
Vista:

Preprocesador

Publicado por Gerardo (5 intervenciones) el 27/06/2003 03:45:45
Hola a todos!!!

Tengo dudas con el manejo de los preprocesadores (&SCOPED-DEFINE, &GLOBAL-DEFINE)....la cuestion es la siguiente:

Quiero sustituír el nombre de un objeto dentro de una sentencia, por ejemplo, si tengo un FILL-IN llamado "fln-07" y quiero hacerle un APPLY al evento "SELECTION" del mismo, yo escribí lo siguiente:

Primero determino el nombre del objeto mediante un procedimiento, el cual me regresa un entero en una variable v-idObjeto y entonces...

&SCOPED-DEFINE v-NomObj "fln-" + STRING(v-idObjeto,"99")

....si muestro el valor con un message

MESSAGE "Nombre Objeto : " {&v-NomObj} VIEW-AS ALERT-BOX.

......me muestra como resultado:
"Nombre Objeto : fln-07 "

....con lo cual el nombre es correcto, pero si intento hacer esto:

APPLY "SELECTION":U TO {&v-NomObj}.

entonces la sentencia falla.

He aquí mi pregunta, como puedo hacer referencias a objetos de esta manera ? está mal la sintaxis en la sentencia ? o que estoy haciendo mal?

Saludos y muchas gracias de antemano.



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

Preprocesador

Publicado por Jorge (1 intervención) el 05/10/2017 01:47:38
El problema que se te está presentando, es que las sentencias de preprocesador, se evaluan en tiempo de compilacion, no en tiempo de ejecución, por lo tanto tu elemento que al final pudieras identificar de esa manera "dinamica" no corresponderá con lo que tu tienes en mente al momento de programar.
De hecho este código te está corriendo desde una sesion diámica, verdad? (utilizando F2 en el editor de codigo) o de un lugar donde tienes copmilación en runtime, lo cual no es una buena programación...

Lo que debes hacer es trabajar con el HANDLE del elemento en cuestion....

Igual puedes discutir el tema en este mismo post...

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
Imágen de perfil de Alejandro Rodeiguez
Val: 145
Oro
Ha mantenido su posición en Progress (en relación al último mes)
Gráfica de Progress

Preprocesador

Publicado por Alejandro Rodeiguez (125 intervenciones) el 05/10/2017 03:22:28
Utiliza el apuntador o handle SELF, direccionando primero al objeto y después ejecuta tu evento y en vez de poner el nombre de preprocesador pon la palabra SELF.
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