estou tendo um erro na execução do um prg como abaixo
┌──────────────────────────────────────────┐
│ Erro BASE/1004 No exported method: EVAL │
│ Erro DOS não disponível │
│ │
│ Sair Gravar │
└──────────────────────────────────────────┘
é um fonte para gerar o arquivo padrao CNAB febrabam para os bancos
compilo o mesmo fonte em clipper e funciona, alias meu sistema esta em clipper 5.3 e estou passando para harbour
em um determinado prg tenho as seguintes linhas:
tenho um arquivo dbf chamado r_eports nele tenho 3 campos memos (R_HEADER, R_BODY e R_FOOTER)
em R_EPORTS->R_EADER tem
{ |H001,H001| "0" }
{ |H002,H002| "1" }
{ |H003,H009| "REMESSA" }
{ |H010,H011| "01" }
{ |H012,H026| PadR( "COBRANCA", 15 ) }
{ |H027,H030| STRZERO( VAL( ALLTRIM( BANCOS->NUM_AGENC ) ),4 ) }
{ |H031,H032| "00" }
{ |H033,H037| PadL( AllTrim( BANCOS->NUM_CONTA ), 5, "0" ) }
{ |H038,H038| BANCOS->DIG_CONTA }
{ |H039,H046| Space(08) }
{ |H047,H076| PadR( aSystem[19,1], 30 ) }
{ |H077,H079| "341" }
{ |H080,H094| PadR( "BANCO ITAU SA", 15 ) }
{ |H095,H100| CharRem( "/", DtoC( Date() ) ) }
{ |H101,H394| Space(294) }
{ |H395,H400| "000001" }
{ || Chr(13)+Chr(10) }
em R_EPORTS->R_BODY tem
{ |B001,B001| "1" }
{ |B002,B003| "02" }
{ |B004,B017| PadL( CharRem( "-/. ", aSystem[19,8] ), 14, "0" ) }
{ |B018,B021| PADL( ALLTRIM( BANCOS->NUM_AGENC ), 4, "0" ) }
{ |B022,B023| "00" }
{ |B024,B028| PadL( AllTrim( BANCOS->NUM_CONTA ), 5, "0" ) }
{ |B029,B029| BANCOS->DIG_CONTA }
{ |B030,B033| Space(04) }
{ |B034,B037| REPLICATE("0",04) }
{ |B038,B062| Space(25) }
{ |B063,B070| SUBSTR(CONTAS->TITULO_BCO,5,8) }
{ |B071,B083| REPLICATE("0",13) }
{ |B084,B086| BANCOS->CARTEIRA }
{ |B087,B107| SPACE(21) }
{ |B108,B108| "I" }
{ |B109,B110| "01" }
{ |B111,B120| PadR( CONTAS->NUMDUP, 10 ) }
{ |B121,B126| CharRem( "/", DtoC( CONTAS->VENCDUP ) ) }
{ |B127,B139| StrZero( CONTAS->VALDUP * 100, 13, 0 ) }
{ |B140,B142| "341" }
{ |B143,B147| "00000" }
{ |B148,B149| "01" }
{ |B150,B150| "A" }
{ |B151,B156| CharRem( "/", DtoC( CONTAS->EMISSAO ) ) }
{ |B157,B158| BANCOS->INSTRUCAO1 }
{ |B159,B160| BANCOS->INSTRUCAO2 }
{ |B161,B173| StrZero( ( CONTAS->VALDUP * BANCOS->TX_PERMAN ) /30, 13, 0 ) }
{ |B174,B179| "000000" }
{ |B180,B192| StrZero( CONTAS->DESCONTO * 100, 13, 0 ) }
{ |B193,B205| Replicate( "0", 13 ) }
{ |B206,B218| Replicate( "0", 13 ) }
{ |B219,B220| IIf( CLIENTES->PESSOA = "J", "02", "01" ) }
{ |B221,B234| PadL( CharRem( "-/. ", AllTrim( CLIENTES->CGC_CPF ) ),14,"0" ) }
{ |B235,B264| PadR( CLIENTES->NOME, 30 ) }
{ |B265,B274| SPACE(10) }
{ |B275,B314| PadR( CLIENTES->ENDERECO, 40 ) }
{ |B315,B326| PADR( CLIENTES->BAIRRO, 12 ) }
{ |B327,B334| PadL( AllTrim( CharRem( "-", CLIENTES->CEP ) ), 8, "0" ) }
{ |B335,B349| PadL( CLIENTES->CIDADE,15 ) }
{ |B350,B351| CLIENTES->ESTADO }
{ |B352,B381| PadR( aSystem[19,1], 30 ) }
{ |B382,B385| Space(04) }
{ |B386,B391| CharRem( "/", DtoC( CONTAS->VENCDUP + 1 ) ) }
{ |B392,B393| PadL( BANCOS->PRAZO_PROT, 2, "0" ) }
{ |B394,B394| Space(1) }
{ |B395,B400| GeraNumero() }
{ || Chr(13)+Chr(10) }
em R_EPORTS->FOOTER tem
{ |T001,T001| "9" }
{ |T002,T394| Space(393) }
{ |T395,T400| GeraNumero() }
{ || Chr(13)+Chr(10) }
meu prgs
FUNCTION GERA_CNAB(nRecRep)
LOCAL aHeadArray := {}
LOCAL aBodyArray := {}
LOCAL aFootArray := {}
LOCAL lRetorno := .T.
LOCAL bCodeBlock
LOCAL sBuffer
...
R_EPORTS->( DBGoTo( nRecRep ) )
...
*o R_HEADER, R_BODY E R_FOOTER sao campos MEMO
aHeadArray := BuildArray( AllTrim( R_EPORTS->R_HEADER ) )
aBodyArray := BuildArray( AllTrim( R_EPORTS->R_BODY ) )
aFootArray := BuildArray( AllTrim( R_EPORTS->R_FOOTER ) )
...
FOR nCont := 1 TO len(aHeadArray)
bCodeBlock := aHeadArray[ nCont ]
*nesta linha é que da o erro em harbour no clipper funciona
sBuffer += Eval( bCodeBlock )
NEXT nCont
....
return lRetorno
*************************************************************
FUNCTION BuildArray( strMemo )
LOCAL aArrayRet, nLinhas, nContador, uBloco
aArrayRet := {}
nLinhas := MLCount( strMemo, 250 )
FOR nContador := 1 TO nLinhas
uBloco := AllTrim( MemoLine( strMemo, 250, nContador ) )
IF Empty( uBloco ) .OR. uBloco = "//"
LOOP
ENDIF
ALTD()
AAdd( aArrayRet, uBloco )
NEXT nContador
RETURN aArrayRet
ja tentei varias formas e nao consegui resultado satisfatorio, tentei colocar MACRO e da erro, sera que alguem tem alguma ideia de como resolver o problema,
abraços