Página 1 de 1

Problema com impressora matricial

Enviado: 18 Ago 2014 13:34
por JoséQuintas
Devido a ser um fonte convertido, está exatamente igual no Clipper.

Problema: Na primeira vez que vai imprimir, pula uma folha em branco antes do relatório.

Carrega o EXE, imprime o primeiro relatório sai folha em branco, depois pode imprimir quantas vezes quiser, qualquer relatório, e não sai mais a folha em branco.
Saiu do EXE e carregou novamente, lá está a folha em branco na primeira vez, antes de sair o relatório.

Alguma idéia?
É o tradicional SET DEVICE TO PRINT e SET DEVICE TO SCREEN
E um SET PRINTER TO no final, pro Windows descarregar o relatório.

Problema com impressora matricial

Enviado: 18 Ago 2014 13:45
por janio
Acho que ta faltando ae um SetPrc antes da primeira linha do relatorio.

Eu uso assim sem problemas:

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

SETPRC(0,0)
@ PROW() + 00, 00 SAY EMPRESA PICT "@!"
...

SET PRINTER TO
SET CONSOLE ON
SET PRINT OFF
SET DEVICE TO SCREEN

Problema com impressora matricial

Enviado: 18 Ago 2014 13:56
por JoséQuintas
Se for isso é um bug no Harbour, porque ao iniciar o EXE deveria considerar linha/coluna 0.
Ainda não testei, por falta de impressora, mas acrescentei no início do EXE SetPrc(0,0).

Quanto ao SET PRINT ON/OFF e SET CONSOLE ON/OFF, nunca foi necessário pra relatórios comuns.
Exemplos de onde usuaria isso, seriam estes:

Código: Selecionar todos

// exemplo 1 - impressora
SET PRINT ON
SET CONSOLE OFF
? "Ola, imprimindo"
SET PRINT OFF
SET CONSOLE ON

// exemplo 2 - arquivo
SET ALTERNATE TO file.txt
SET ALTERNATE ON
SET CONSOLE OFF
? "Ola, no arquivo"
SET CONSOLE ON
SET ALTERNATE OFF
SET ALTERNATE TO

Problema com impressora matricial

Enviado: 18 Ago 2014 20:52
por asimoes
José,

Passei por este problema na semana passada, não estava entendendo um eject logo no inicio da impressão, isso aparecia no arquivo de impressão também.
Acredito que era resquicios de uma impressão anterior, acrescentei o setprc(0,0) e resolveu o problema.

Problema com impressora matricial

Enviado: 29 Ago 2014 10:24
por JoséQuintas
Descobri o problema, e acontecia no Clipper também, por isso acho que não vai ser modificado.
Ao imprimir, o controle de linha/coluna se mantém.
Normal.....

Mas isso acontece neste caso:
Imprime para um arquivo texto.
O Harbour guarda a posição aonde parou.
Muda pra impressora e imprime.
O Harbour considera que é continuação.

Código: Selecionar todos

PROCEDURE Main
   SET PRINTER TO ( "file.txt" )
   SET DEVICE TO PRINT
   @ 2, 2 SAY "XXX"
   SET DEVICE TO SCREEN
   SET PRINTER TO
   ? PRow(), PCol()
   SET PRINTER TO PRN
   SET DEVICE TO PRINT
   SET DEVICE TO SCREEN
   SET PRINTER TO
   ? pRow(), pCol()
   RETURN
No código acima, são duas impressoras diferentes.
A linha/coluna não se altera ao trocar de impressora.

Nota: não guardei o fonte de teste, digitei este direto no fóum parecido com o que usei no teste.

Quando comecei a usar meu preview de relatório, já quase ninguém usava matricial.
Como o uso é limitado, e não tinha como testar, não percebi essa diferença.
O problema é quando imprime pra arquivo, e depois manda pra impressora.
Num caso desses, vai ser obrigatório usar SetPrc().