Problema com impressora matricial

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com impressora matricial

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Problema com impressora matricial

Mensagem 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
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com impressora matricial

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Problema com impressora matricial

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com impressora matricial

Mensagem 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().
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder