Uso de macro-sustitucion

Post Reply
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Uso de macro-sustitucion

Post by FranciscoA »

Eso, amigos.
Estoy tratando de ejecutar codeblocks definidos como caracteres.
Puede alguien decirme que me falta en el siguiente codigo?
Me tira el error que no existe la variable dDate:

Code: Select all

Function MyCodBlock()
local dDate, cAction 

  dDate := Date()
  cAction := "{|| MsgInfo(CDow(dDate)) }"
  Eval( &cAction )

return nil
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Uso de macro-sustitucion

Post by cnavarro »

La variable dDate ha de ser PRIVATE
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Uso de macro-sustitucion

Post by FranciscoA »

Cristobal.
Gracias por contestar. Ya lo he intentado como dices, pero "está difícil la caraja".
Voy a revisar que es lo que estaba haciendo mal.

De todos modos, por el momento lo resolví creando una función que devuelve la fecha:

Code: Select all

Function Fec()
Return dFhist      //dFhist es static
 
y lo ejecuto asi:

Code: Select all

 "{|| ImpBlnza(dFec(), .t.) }"    //esto está en una columna del xbrowse.

 cAction := oBrw:aCols[3]:Value, GenAction(cAction)

Function GenAction(cAction)
Eval( &cAction)
 
Gracias nuevamente.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Uso de macro-sustitucion

Post by cnavarro »

Prueba esto

Code: Select all

#include "FiveWin.ch"

MEMVAR dDate

function Main()

    MyCodBlock()

Return nil

Function MyCodBlock()

   local cAction
   
   PRIVATE dDate  := Date()

   //dDate := Date()
   cAction := "{|| MsgInfo(CDow(dDate)) }"
   Eval( &cAction )

return nil

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Uso de macro-sustitucion

Post by FranciscoA »

Cristóbal.
Funciona. Anteriormente lo tenía sin MEMVAR.
Gracias.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Post Reply