Página 2 de 3
Enviado: 09 Ago 2007 22:52
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.
Enviado: 09 Ago 2007 23:09
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.
Enviado: 09 Ago 2007 23:21
por ERCS123
EU COLOQUEI O -M EM TODOS, NAO DEU CERTO. SE COLOCAR TAMBEM -N, AI OCORRE ERRO E NAO COMPILA ERRO- C2006
Enviado: 09 Ago 2007 23:26
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?
Enviado: 09 Ago 2007 23:28
por ERCS123
Sim, coloquei em todos o -m -q nao deu certo.
Enviado: 09 Ago 2007 23:30
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.

Enviado: 09 Ago 2007 23:35
por ERCS123
mas eu teria que enviar todos os prg, senao eu acho que nao roda, ou nao precisa ?
Enviado: 09 Ago 2007 23:36
por Maligno
Todos, claro.
Enviado: 09 Ago 2007 23:38
por ERCS123
Apesar das mensagens do compilador, o arquivo exe é gerado. O problema é quando vou imprimir, e o erro acontece.
Enviado: 09 Ago 2007 23:41
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.

Enviado: 09 Ago 2007 23:45
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
Enviado: 09 Ago 2007 23:46
por Maligno
Tem jeito sim. Através do comando RUN.
Enviado: 09 Ago 2007 23:51
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.
Enviado: 09 Ago 2007 23:54
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
Enviado: 09 Ago 2007 23:55
por ERCS123
Valeu pela dica......vou revisar as Procedures e alterar....ok