Página 1 de 1

erro ERROR TERM/0 Print error

Enviado: 13 Fev 2005 23:28
por janio
Olá a todos,

Este está acontecendo quando mando imprimir e a impressora não está pronta... o que eu queria saber é como faço para que quando a impressora não esteja pronta, NÃO APAREÇA ESTE ERRO (ele aborta o programa) e sim qualquer outra mensagem que eu possar configurar.

Um abraço,

Janio

Enviado: 14 Fev 2005 00:46
por ANDRIL
Ola Janio,

Vc ja tentou utilizar a funcao ISPRINTER() para verificar a porta de impressao antes do envio do relatorio? Veja:

IF ISPRINTER()
... seu relatorio
ELSE
Wait"Erro com a impressora! Verifique-a"
ENDIF

Nota: A funcao ISPRINTER() so consegue testar a porta padrão de impressao LPT1 não consegue testar LPT2,LTP3...

Abracos,

Enviado: 14 Fev 2005 17:02
por janio
Olá Andril,

Obrigado por responder...

Estou utilizando a função ISPRINTER() e mesmo assim continua dando o mesmo erro. Veja como estou fazendo:

Código: Selecionar todos

      SET PRINTER ON 
      SET PRINTER TO LPT1
      SET DEVICE TO PRINTER
      SET CONSOLE OFF

      IF .NOT. ISPRINTER()
         MSG({"** A T E N C A O ! **",;
              "A IMPRESSORA NAO ESTA PRONTA"}, , vCOR_MSG, vCOR_MS1)
         RstEnv( aEnv )
         RETURN .F.
      ENDIF

      xCODCLI = FATURA->CODCLI
 
      SELECT EMPRESA
      GOTO TOP

      @ PROW() + 02, 30 SAY EMPRESA->NOMRDZ 
      @ PROW() + 01, 00 SAY PADC(EMPRESA->NOMEMP,79)
      @ PROW() + 01, 10 SAY PADC(EMPRESA->ENDERE)
      @ PROW() + 01, 00 SAY REPLICATE("-",79) 
       ...
       ...
       ...
Não sei o que está acontecendo!
Aguardo ajuda...

Janio

PS: Estou utilizando a impressora PANASONIC KX-P1150

Enviado: 14 Fev 2005 19:07
por Junior
Tua impressora é uma LOCAL ( lpt1 ) ou está na rede ???

O ISPRINTER() em modo básico apenas consulta a LPT1 como o amigo ANDRIL já citou.

Já no seu código, vc faz assim :

Código: Selecionar todos

SET PRINTER ON 
SET PRINTER TO LPT1 
SET DEVICE TO PRINTER 
SET CONSOLE OFF 

tente assim :

Código: Selecionar todos

SET PRINTER ON  ---> liga a impressora
SET DEVICE TO PRINTER  ----> direciona saida pra impressao
SET PRINTER TO LPT1  ----> direciona a impressao
SET CONSOLE OFF   ---> fecha a saida do console
Faça um teste desse jeito ok !?

Enviado: 14 Fev 2005 21:08
por janio
Olá Junior,

Tentei como vc falou e continuou SEM FUNCIONAR...

Estou percebendo o seguinte: A função ISPRINTER() tem testado CORRETAMENTE se a impressora está ligada ou não. Pra testar, coloquei uma mensagem (alert) quando a impressora está desligada... ele testa e diz corretamente que a impressora está desligada... a partir do ALERT perco o controle do "barco"... rs... ele não obedece mais a um RETURN, LOOP, EXIT ou seja seja lá o que for... rs... e aborta o programa, veja:

Código: Selecionar todos

      SET PRINTER ON 
      SET DEVICE TO PRINTER 
      SET PRINTER TO LPT1 
      SET CONSOLE OFF 

      IF .NOT. ISPRINTER() 
         ALERT("A IMPRESSORA NAO ESTA PRONTA") // mostra a mensagem
         LOOP // aki não obedece e aparece aquela mensagem chata
      ENDIF 

      xCODCLI = FATURA->CODCLI 
  
      SELECT EMPRESA 
      GOTO TOP 

      @ PROW() + 02, 30 SAY EMPRESA->NOMRDZ 
      @ PROW() + 01, 00 SAY PADC(EMPRESA->NOMEMP,79) 
      @ PROW() + 01, 10 SAY PADC(EMPRESA->ENDERE) 
      @ PROW() + 01, 00 SAY REPLICATE("-",79) 
       ... 
       ... 
       ... 
 
Continuo esperando ajuda...

Janio

PS: Utilizo impressora local (LPT1), Win98, Clipper5.2e e Blinker7

Enviado: 14 Fev 2005 23:47
por Dudu_XBase

Código: Selecionar todos


      IF .NOT. ISPRINTER()
         ALERT("A IMPRESSORA NAO ESTA PRONTA") 
         LOOP 
      ENDIF
        
      SET PRINTER ON
      SET DEVICE TO PRINTER
      SET PRINTER TO LPT1
      SET CONSOLE OFF

      

      xCODCLI = FATURA->CODCLI
 
      SELECT EMPRESA
      GOTO TOP

      @ PROW() + 02, 30 SAY EMPRESA->NOMRDZ
      @ PROW() + 01, 00 SAY PADC(EMPRESA->NOMEMP,79)
      @ PROW() + 01, 10 SAY PADC(EMPRESA->ENDERE)
      @ PROW() + 01, 00 SAY REPLICATE("-",79)
       ...
       ...
       ... 
      

Enviado: 15 Fev 2005 00:16
por janio
Valeu Dudu! FUNCIONOU! ;) :lol: :D :smile: :razz:

Passei alguns minutos sem entender o seu código... olhava pro meu... olhava pro seu... olhava pro meu... olhava pro seu... e não via diferença nenhuma.... rs.... até que então... tchan tchan tchan tchaaaaaan... percebi:

O teste da impressora (ISPRINTER()) é antes do SET PRINTER ON... SET... SET...

Um Abraço e BRIGADÃO!

Janio

Enviado: 15 Fev 2005 08:03
por Junior
Putz, mas óbvio.....

ISPRINTER() antes da chamada da impressão....

juro q vou ficar me martirizando aqui o dia todo por esse vacilo... hehehe...

isso ai Dudu, grande garoto !

Até mais...