In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Manejo de macro sustitucion

Foro público de Xailer en español
Responder
RRamonell
Mensajes: 32
Registrado: Mar May 06, 2008 5:20 pm

Manejo de macro sustitucion

Mensaje por RRamonell »

Hola todos.
Después de pasarme un buen rato buscando la forma de que la macro
sustitución de las lí­neas siguientes me den el resultado que necesito
(ya hice varias combinaciones y todas me dan error, con y sin
codeblocks), les ruego su ayuda en orientarme sobre como puedo hacer
esto evitando tener que hacerlo a pie (generando muchas lí­neas de código).
301 LOCAL k, v
302
303 FOR k := 1 TO Len( aFields )
304 v := AllTrim( Str( k ) )
305 Eval( { ¦v¦ &( "::oLabelBuddy" + v + ":End()" ) }, v )
306 Eval( { ¦v¦ &( "::oTDBMaskEdit" + v + ":End()" ) }, v )
307 Eval( { ¦v¦ &( "::oLabel" + v + ":End()" )
}, v )
308 NEXT
Esta alternativa me arroja el siguiente error:
FORMULA:FORMINITIALIZE(305)
Error BASE/1004 Class: 'ARRAY' has no exported method: EVAL
Argumentos: ( [ 1] = Tipo: A Valor: [ 2] = Tipo: C Valor: 1)
----------------------- Información detallada del error
-----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Class: 'ARRAY' has no exported method
Operación: EVAL
Argumentos: [ 1] = Tipo: A Valor: [ 2] = Tipo: C Valor: 1
Fichero:
Código error SO: 0
Pila de llamadas:
FORMULA:FORMINITIALIZE (305)
FORMULA:ONINITIALIZE (0)
FORMULA:NEW (183)
Gracias por la ayuda que me puedan brindar.
Rene Ramon Elly
Carlos Mora
Mensajes: 88
Registrado: Vie Jul 28, 2006 9:36 am

Manejo de macro sustitucion

Mensaje por Carlos Mora »

Rene,
> 305 Eval( { ¦v¦ &( "::oLabelBuddy" + v + ":End()" ) }, v )
El problema está probablemente en los ::. Eso es traducido a Self en
tiempo de compilación si no me equivoco, no sé si la macro es capaz de
'masticarlo', y aún así­, si self no es una private o public no te va a
compilar porque dentro de Eval() no existe Self.
Saludos
RRamonell
Mensajes: 32
Registrado: Mar May 06, 2008 5:20 pm

Manejo de macro sustitucion

Mensaje por RRamonell »

Carlos Mora escribió:
> Rene,
>> 305 Eval( { ¦v¦ &( "::oLabelBuddy" + v + ":End()" ) }, v )
>
> El problema está probablemente en los ::. Eso es traducido a Self en
> tiempo de compilación si no me equivoco, no sé si la macro es capaz de
> 'masticarlo', y aún así­, si self no es una private o public no te va a
> compilar porque dentro de Eval() no existe Self.
>
> Saludos
Gracias Carlos, voy a buscar otra alternativa.
Responder