IMPRESSAO DE CUPOM URGENTE!!!

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

Moderador: Moderadores

Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

IMPRESSAO DE CUPOM URGENTE!!!

Mensagem por Stanis Luksys »

Olá,

Estou tentando executar uma rotina muito simples de impressao de cupom feita originalmente em Clipper 5.2 para o ambiente Windows.

Não sei por que motivo a impressora está "travando" na penúltima linha da impressao, e só destrava após fechar todas as janelas do sistema, e entao termina a impressao normalmente.

A rotina que estou usando funciona normalmente quando compilo com o Clipper 5.2 mas não funciona qdo compilo com o Harbour + miniGUI.

Se alguem puder me ajudar a impressora é uma EPSON LX 300, e a rotina é basicamente esta:

obs: As linha comentadas nao estao no original, sao apenas os testes que fiz pra ver se funcionava, mas nao deu!

Código: Selecionar todos


      // set printer to LPT1
      set printer on
      set device to printer
      
      @ PRow(), PCol() say ""

      // ? chr(26)

*------

      @ PRow() + 2, 17 say Time()


      @ PRow(), 36 say "CODIGO:"
      @ PRow(), 43 say CODCLI     // campo

      @ PRow() + 2, 17 say "NOME: "
      @ PRow(), 23 say CLIENTE    // campo

       // etc etc etc etc


*------

      @ PRow(), PCol() say ""
      
       // chr(26)

      set device to screen
      set printer off
      // set printer to


Estranho mesmo é que para de imprimir na penultima linha mas depois de fechar o programa volta a imprimir normalmente e certo.

O q está errado???
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
gransoft
Usuário Nível 3
Usuário Nível 3
Mensagens: 321
Registrado em: 06 Jul 2004 17:48
Localização: UBERLÂNDIA-MG
Contato:

Impressão

Mensagem por gransoft »

ARAGUARI-MG, 10 de agosto de 2005.

Prezado Stanis,

Já tentou o famoso

SET PRINTER TO LPT1

no final de TODOS os relatórios, para fechar o spooler de impressão ?

Atenciosamente,
Janis Peters Grants.

Skype: gransoft
http://www.gransoft.com.br
gransoft@zipmail.com.br
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá Janis,

Na verdade o sistema ainda não tem nenhum relatório funcionando, esta é a única rotina de impressão que já foi migrada de um sistema antigo.

Essa rotina eu obtive descompilando o sistema antigo de meu cliente com o Valkirie e fiz algumas alterações, mas tanto a original como a modificada só funcionam quando compiladas com Clipper 5.x, com Harbour nem pensar, trava sempre na penúltima linha.

Se tiver um tempinho, aí está a rotina completa:

Código: Selecionar todos


if msgYesNo( "Imprimir nota desta locação?", "Impressão" )


   dbGoTop()

   seek cCodLoc

   set printer to LPT1
   set printer on
   set device to printer

   @ PRow(), PCol() say chr(15) 

   
   @ PRow() + 1, 26 say "      xxxxxxxxxxx LOCADORA"
   @ PRow() + 2, 26 say "RUA CANDIDO xxxxxxxxxxxxxxxxxLJ.A"
   @ PRow(), 26 say     "       TELEFONE: XXX-XXXX "

   @ PRow() + 2, 17 say Time()

*-------

   @ PRow(), 36 say "CODIGO:"
   @ PRow(), 43 say CODCLI   

   @ PRow(), 54 say "LOCA NUM:"
   @ PRow(), 63 say allTrim(cCodLoc)

   @ PRow() + 2, 17 say "NOME: "
   @ PRow(), 23 say CLIENTE

   if DEP != "TITULAR"
      @ PRow() + 1, 17 say "DEPD: "
      @ PRow(), 23 say DEP
   endif

   @ PRow() + 1, 17 say Replicate("-", 50)

*-------


   nItens := 1

   do while ! eof()

      if nItens == 1

         @ PRow() + 2, 17 say CODFILME
         @ PRow(), 23 say left( FILME, 37 )
         @ PRow(), 62 say Str(VALOR, 5, 2)

         nTotal := nTotal + VALOR
         nItens := nItens + 1

         skip

      else  

         @ PRow() + 1, 17 say CODFILME
         @ PRow(), 23 say left( FILME, 37 )
         @ PRow(), 62 say Str(VALOR, 5, 2)

         nTotal := nTotal + VALOR
         nItens := nItens + 1

         skip

      endif

   enddo

*--------

   @ PRow() + 2, 17 say Replicate("-", 50)

   @ PRow() + 1, 17 say "DATA SAIDA:   " + dtoc( frmLocacao2.dt1.value )

   @ PRow(), 55 say "TOTAL: " + str( nTotal, 5, 2 )

   @ PRow() + 1, 17 say "DATA RETORNO: " + dtoc( frmLocacao2.dt2.value )

   @ PRow(), 56 say "PAGO: " + frmLocacao2.txPago.value

   @ PRow() + 1, 55 say "RESTA: " + frmLocacao2.txResta.value

   @ PRow() + 1, 17 say Replicate("-", 50)
   @ PRow() + 1, 29 say "ENTREGA ATE AS 19:00 HORAS"
   @ PRow() + 1, 17 say Replicate("-", 50)

   @ PRow() + 1, 17 say "Normas de Utilizacao:"
   @ PRow() + 1, 17 say "1 - Fica ciente  a  partir  deste  momento,  que o"
   @ PRow() + 1, 17 say "locatario tem total reponsabilidade pelo  Filme/CD"
   @ PRow() + 1, 17 say "locado.   Devendo   para   tanto   entrega-lo   em"
   @ PRow() + 1, 17 say "perfeita ordem, no prazo de 10(dez) dias.         "
   @ PRow() + 1, 17 say "2 - Havendo extravio  de  filme/cd a locadora pode"
   @ PRow() + 1, 17 say "imediatamente emitir um documento de cobranca para"
   @ PRow() + 1, 17 say "que o locatario faca o ressarcimento do  valor  do"
   @ PRow() + 1, 17 say "mesmo. "

   ********************************************************
   * AQUI TRAVA E VOLTA NORMALMENTE QDO FECHA O SISTEMA
   ********************************************************
   
   @ PRow() + 4, 17 say Replicate("-", 41)

   @ PRow() + 1, 33 say "CLIENTE"
   @ PRow() + 17, 17 say " "

   @ PRow(), PCol() say chr(18)

   
   set device to screen
   set printer off
   set printer to



endif

close impac_07
select impac_01


frmLocacao.release

O que será que tem de errado?? Sinceramente acredito que esteja comemetendo algum erro qto a incompatibilidae do Clipper com o Harbour!

Mais uma vez muito obrigado.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder