ERRO: UNDEFINED SYMBOL AFTER LIBRARY SEARCH

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

Código: Selecionar todos

*------------------------------------------------------------------------*
* CHEQUE PARA: BANCO DO  B R A S I L
* PROGRAMA_____: PRINTCHE()  
* FUNۂO_______: PREENCHIMENTO DE CHEQUE.
*-----------------------------------------------------------------------------*
function Printche( m_val, m_nom, m_cid, m_ven)
*-----------------------------------------------------------------------------*
**************************************
local Text := extenso(m_val) + space(2)     **ERRO  AQUI
***********************************
local Tpos := rat(" ", substr(Text, 1, 72) )     
local Aextenso := { substr( Text, 1, Tpos+1)+ repl("*",90 - Tpos),substr(Text,Tpos+1)+ repl("*",97 - (len(Text) - Tpos ))}  
local Tx
     PRT( .T. )
     setprc( 0, 0 )
     devpos( 0, 0 )
     ?? PRINTER_INIT
     if ( m_val = 10000000000 )
        devout( chr(15) )
        @ 2,107 say m_val picture "@e ******,***,***,***,***.**"
        devout( "##" )
     else
        devout( chr(18) )
        @ 2,62 say m_val picture "@e **,***,***,***.**"   
        devout ( "#"+ chr(15))
    endif
    @ 5,43 say Aextenso[1]                      
    @ 7,35 say Aextenso[2] + chr(18)            
    if (m_nom != nil)
       @ 9,20 say m_nom                                 
    endif
    @ 11,45 say substr( m_cid, 1, 11)                
    @ 11,57 say strzero(day(m_ven),2)+space(4)+ mesext2(m_ven)  
    @ 11,77 say right(str(year(m_ven),4),2)                     
    DevPos(LINES_PER_PAGE, 0)
    setprc(0, 0)
    ?? PRINTER_END
    PRT(.F.)
RETURN(NIL)
PARA IMPRIMIR O CHEQUE DO BANCO DO BRASIL, EU UTILIZO O CODIGO ACIMA, E O ERRO É O MESMO.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Estive vendo com mais calma sua forma de compilação. Reparei que em alguns fontes você usa o switch -m e em outros não. E não usa nem em CHEQUE01 nem em FUNCS. Coloque -m -n em todos (pode deixar o -q já que ele não faz diferença) e compile tudo de novo. Apague os objetos primeiro, pra ter certeza. Veja se dá certo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

EU COLOQUEI O -M EM TODOS, NAO DEU CERTO. SE COLOCAR TAMBEM -N, AI OCORRE ERRO E NAO COMPILA ERRO- C2006
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

O erro do -n (C2006) significa que nem todos os seus PRGs são funções, mas tem procedures também. E onde tem procedures há alguma definição de variável. Aí aparece esse erro mesmo. Não é uma boa mistura. Aliás, PROCEDURE é outra coisa obsoleta.
Tentou apenas colocar -m em todos os PRGs?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

Sim, coloquei em todos o -m -q nao deu certo.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Se, no máximo, em meia hora você me mandar esses PRGs eu tento compilar aqui e vejo o que está acontecendo. Quer? Depois da meia-noite tenho que trabalhar. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

mas eu teria que enviar todos os prg, senao eu acho que nao roda, ou nao precisa ?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Todos, claro.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

Apesar das mensagens do compilador, o arquivo exe é gerado. O problema é quando vou imprimir, e o erro acontece.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pois o problema parece mesmo estar na compilação. De alguma forma, não sei como você fez, o compilador está misturando os símbolos. Você usa um esquema de compilação e montagem de funções/procedures meio confuso. Tem coisas que nem se usa mais. Não estou conseguindo imaginar onde está o erro. Seu fonte parece certo. Então, ao invés de tentar adivinhar, acho que seria mais prático ver ao vivo o que ele faz. Faltam 19 min. pra meia-noite.:)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

tem como eu chamar um exe, dentro de um exe. POrque se compilar separadamente o cheque01 funciona. Ai dentro do meu sistema eu chamaria esse cheque01.exe, entendeu?

Para enviar todos os arquivos, prg, dbf, vai complicar muito......tem muita travas, senha.....ate eu te explicar tudo....já tomei muito o seu tempo por hoje.....blz
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Tem jeito sim. Através do comando RUN.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Em tempo: vou me dar a liberdade de lhe dar um conselho: esqueça qualquer coisa relacionada a PROCEDURE. Isso é considerado obsoleto há muito tempo, assim como a chamada DO <procedure>. Ao invés disso apenas use o nome da função. Ex: Imprime().
Todo PRG então, deveria ser iniciado por uma FUNCTION. Nenhuma variávei deve, portanto, ser declarada fora de uma FUNCTION. Aí, ao compilar, entra aquele switch -n.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

no caso seria:

do case
case op = 1
run cheque // chama o cheque.exe
case op = 2
prx0319()
case op = 3
prx0320()
etc

etc
ERCS123
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 28 Jul 2007 19:54
Localização: franca

Mensagem por ERCS123 »

Valeu pela dica......vou revisar as Procedures e alterar....ok
Responder