Win32Prn imprime so uma parte do relatorio

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

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

olá pessoal, estou usando a rotina abaixo para impressão em impressora nao fiscal e jato de tinta, mas se a quantidade de linhas for muito grande, por exemplo tem um aqui com 115 linhas, nesse caso foi impresso ate a linha 73, estou passando um arquivo com extensao txt e o aquivo está correto, gostaria de saber porque imprime so uma parte, será que é porque na rotina abaixo está A4 ?

obrigado.

xHarbour, windows 7.

Código: Selecionar todos

PROCEDURE W32PRN(arqtxt,nomeimpressora,tipo_de_impressao)
      #include "WinGdi.ch"
      Local cPrinter
      Local contl := 1
	  cFileName := "C:\JATOxh\" + arqtxt
      SET PRINTER TO
      SET DEVICE TO SCREEN
      If !File("&cFileName")
         Return Nil
      Else  // Vamos colocar seu arquivo num Array
         cLinha := Nil
         aLinesPrint := {}
         cBuffer := FOpen( cFileName, 2 )
         Do While Hb_FReadLine( cBuffer, @cLinha, Nil, 255 ) = 0
            AaDd( aLinesPrint, cLinha )
         EndDo
         FClose( cBuffer )
      EndIf
*     cPrinter := PegaPrinter()  // escolhe a impressora (cPrinter retorna o nome da impressora)
      cPrinter := ALLTRIM(nomeimpressora)
	  
      If Empty( cPrinter )
         Alert(HB_ANSITOOEM("Não foi informado o nome da Impressora em Parâmetros !") )
         Return Nil
      ENDIF
	  
      If !Empty( cPrinter )
         nCopias := 1  // numero de c¢pias
         oPrinter           := Win32Prn():new( cPrinter )
         oPrinter:landscape := .F.
         oPrinter:formType  := DMPAPER_A4  // folha A4
         oPrinter:copies    := nCopias
         IF .NOT. oPrinter:create()
            Alert("Erro Tentando Acessar a Impressora ; " + alltrim(nomeimpressora) )
            Return Nil
         ENDIF
         IF .NOT. oPrinter:startDoc( "Impressao Teste" )
            Alert("Erro Tentando Enviar os Dados de Impressao")
            Return Nil
         ENDIF
*****************************************************************		 
//impressao comprimida: { 3, -50 } ‚ igual 50/3, ou seja 16.6 cpp
//          oPrinter:SetFont( "Lucida Console", 10,{3,-70} )
//impressao comprimida e negritado
//          oPrinter:SetFont( 'Courier New',    12,{3,-55},700,.F.,.F. )
//          oPrinter:SetFont( "Lucida Console", 10,{3,-60},700,.F.,.F. )
*           teste = ' "Lucida Console", 10,{3,-60},FW_BOLD,.F.,.F. '
            if UPPER(ALLTRIM(tipo_de_impressao)) = "COMPRIMIDO"
               oPrinter:SetFont( "Lucida Console", 10,{3,-60},FW_BOLD,.F.,.F. )
			endif
*           oPrinter:SetFont( teste )
*****************************************************************
         // impressao normal
*****************************************************************
*        oPrinter:SetFont( "Lucida Console", 10 )
*****************************************************************
*        oPrinter:CharSet( 0 )
*        oPrinter:bold( FW_NORMAL )  // nao negrito, nao italico, etc...
//       oPrinter:Bold( FW_SEMIBOLD )   // semi negrito
//       oPrinter:Bold( FW_BOLD )       // negrito
//       oPrinter:Bold( FW_EXTRABOLD )  // negrito extra
*****************************************************************
*        PrintBitMap(oPrinter, "C:\SYS222\Cowboy.bmp")
*****************************************************************
         For i = 1 To Len ( aLinesPrint )
             oPrinter:textOut( aLinesPrint[ i ] )  // imprime a linha
             oPrinter:newLine()  // passa para proxima linha
         Next
         oPrinter:endDoc()   // envia a impressora
         oPrinter:destroy()  // fecha documento de impressao
      EndIf
      Return Nil
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Win32Prn imprime so uma parte do relatorio

Mensagem por Toledo »

Amigo, tente o seguinte:

Código: Selecionar todos

         nLinha:=0
         For i = 1 To Len ( aLinesPrint )
             nLinha+=1
             oPrinter:textOut( aLinesPrint[ i ] )  // imprime a linha
             oPrinter:newLine()  // passa para proxima linha
             if nLinha>59  //60 linhas por folha
                oPrinter:NewPage()  //nova pagina
                nLinha:=0
             endif
         Next
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por JoséQuintas »

Só complementando:

Em Windows não existe formulário contínuo, é uma folha de cada vez, por exemplo a A4.
O programa tem que testar quando acaba o espaço da folha, e começar uma folha nova.
Caso contrário, todo texto excedente será cortado.
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/
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

ola Toledo,
Acrescentei as linhas que você pássou, estou tentando imprimir em uma impressora nao fiscal, esta imprimindo 59 linhas pula um pedaço e começa imprimir a outra parte, nao imprime um item abaixo do outro ate o final, tem como contornar esse problema nessa rotina, ou essa rotina so da certo para impressora jato de tinta A4 ?

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

Win32Prn imprime so uma parte do relatorio

Mensagem por JoséQuintas »

Vá aumentando a quantidade de linhas, até descobrir a quantidade máxima de uma página.
Ou imprima um texto numerando linhas, e veja qual o número da última.
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
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Win32Prn imprime so uma parte do relatorio

Mensagem por Toledo »

porter escreveu:estou tentando imprimir em uma impressora nao fiscal
É uma bobina... então neste caso seria melhor usar a função PrintFileRaw( cPrinter, cFileName, "Titulo" ), teste o seguinte código:

Código: Selecionar todos

PROCEDURE W32PRN(arqtxt,nomeimpressora,tipo_de_impressao)
Local cFileName := "C:\JATOxh\" + arqtxt
Local cPrinter := ALLTRIM(nomeimpressora)
Local nResult, cMsg:=""
      SET PRINTER TO
      SET DEVICE TO SCREEN
      If !File("&cFileName")
         Return Nil
      Else
         nResult := PrintFileRaw( cPrinter, cFileName, "Impressao Pelo Sistema" )
         IF nResult = -1
            cMsg = "Parametros Invalido, Favor Tentar Novamente"
         ELSEIF nResult = -2
            cMsg = "Falha na chamada da Impressora, Favor Verificar a Impressora"
         ELSEIF nResult = -3
            cMsg = "Falha ao Iniciar Impressão, Favor Verificar a Impressora"
         ELSEIF nResult = -4
            cMsg = "Falha ao Iniciar a Primeira Pagina, Favor Verificar a Impressora"
         ELSEIF nResult = -5
            cMsg = "Falha de Memoria da Impressora, Favor Verificar a Impressora"
         ELSEIF nResult = -6
            cMsg = "Não foi Possivel localizar o arquivo de Impressão, Favor Tentar Novamente"
         ENDIF
         IF len(alltrim(cMsg)) > 1
            Alert(HB_ANSITOOEM(cMsg) )
         ENDIF
      EndIf
      Return Nil
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

ola JoséQuintas,
A quantidade máxima de uma página, eu já sei, a duvida é que quando atingir essa quantidade maxima, a proxima linha tem que ser impressa logo na linha abaixo, mas da forma como está, pula umas 20 linhas mais ou menos para começar a imprimir o restante das linhas, entendeu ?

Estou imprimindo em impressora de cupom nao fiscal termica Bematech MP 2500.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

ola Toledo, vou testar essa rotina, obrigado.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

ola Toledo, fiquei sem entender, essa rotina que você passou, eu tenho que inclui-la na minha rotina ?
Fiz um teste com ela, nao imprime nada.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Win32Prn imprime so uma parte do relatorio

Mensagem por Toledo »

porter escreveu:eu tenho que inclui-la na minha rotina ?
Amigo, é só substituir o código da sua função W32PRN() anterior por este novo código que passei na minha última mensagem.

A chamada da função W32PRN() no seu programa não vai mudar nada, continua a mesma coisa.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

ola Toledo,
Com a rotina antiga imprime normalmente, mas com essa que você postou, entra na fila de impressao mas nao imprime nada.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Win32Prn imprime so uma parte do relatorio

Mensagem por Toledo »

porter escreveu: entra na fila de impressao mas nao imprime nada.
Bom, pode ser que esta impressora não aceita impressão em modo RAW.

Sem ter a impressora para testar, fica complicado em ajudar.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Paredes01
Usuário Nível 2
Usuário Nível 2
Mensagens: 52
Registrado em: 20 Mai 2012 11:22
Localização: Mérida, Yucatán, México

Win32Prn imprime so uma parte do relatorio

Mensagem por Paredes01 »

Hola, Porter

En ese tipo de impresoras lo hago de está forma :

Código: Selecionar todos

PROCEDURE IMP_AJUSWIN()

   cDevOut          := GetDefaultPrinter()
   oPrint           := Win32Prn():New(cDevOut) // Create Printer object
   oPrint:Landscape := .F.
   oPrint:FormType  := 1  // FORM_LETTER
   oPrint:Copies    := 2
   if !oPrint:Create()
      Alert("Cannot Create Printer")
      BREAK
   End if
   oPrint:SetFont('Lucida Console',9,{3,-50}, 0, .F., .F.)
   oPrint:StartDoc()


   LIN     := 0
   NTOTAL2 := 0
   ntotal  := 0
   acumiva := 0
   TITULOAJUSTEWIN()

   FOR I = 1 TO LEN(MA)
      IF MA[I,1] <> " " .AND. LEFT(MA[I,1],3) <> "ELI"

         IF MA[I,26] = "C"
            oPrint:SetPrc(oPrint:Prow()+1,1 )
            oPrint:Textout(TRANSF(MA[I,4], "99,999.99"),.F.)
         ELSE
            oPrint:SetPrc(oPrint:Prow()+1,1 )
            oPrint:Textout(TRANSF(MA[I,4], "99,999.99"),.F.)
         ENDIF

         oPrint:SetPrc(oPrint:Prow(), 11 )
         oPrint:Textout( MA[I,9] ,.F.)

         oPrint:SetPrc(oPrint:Prow(), 18 )
         oPrint:Textout(MA[I, 2] ,.F.)

         oPrint:SetPrc(oPrint:Prow(), 54 )
         oPrint:Textout(Transf(MA[I, 12], "99,999.99") ,.F.)

         IF MA[I,26] = "C"
            oPrint:SetPrc(oPrint:Prow(), 64 )
            oPrint:Textout(Transf(ROUND((( MA[I, 4] * MA[I,24] ) * MA[I,12]),2), "999,999.99") ,.F.)
         ELSE
            oPrint:SetPrc(oPrint:Prow(), 64 )
            oPrint:Textout(Transf(ROUND( (MA[I, 4] * MA[I,12]),2) , "999,999.99") ,.F.)
            NTOTAL += ROUND(( MA[I, 4] * MA[I,12] ),2)
         ENDIF

         oPrint:SetPrc(oPrint:Prow(), 74 )
         oPrint:Textout(Transf(MA[I, 3], "999,999.99") ,.F.)

         oPrint:SetPrc(oPrint:Prow(), 84 )
         oPrint:Textout( MA[I, 14] ,.F.)

         oPrint:SetPrc(oPrint:Prow(), 85 )
         oPrint:Textout( Transf(ROUND(( MA[I, 3] * MA[I,4] ),2),"999,999.99") ,.F.)

         NTOTAL2 += ROUND(( MA[I, 3] * MA[I,4] ),2)
         IF MA[I, 30] ="S"

            DBSELECTAR("ARTICULO")
            DBSETORDER(4)
            IF DBSEEK(MA[I,9])
               X1   := 0
               bandi:= .f.
               DO WHILE ARTICULO->LIGA =  MA[I,9]
                  * CON IVA SIN OFERTA REBANADO
                  if articulo->siva = "B"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "R"
                     nreba1 := ARTICULO->PRECIO*nIVA115X
                     bandi  := .t.
                  endif
                  * CON IVA SIN OFERTA MENUDEO
                  if articulo->siva = "B"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "M"
                     nmenu1 := ARTICULO->PRECIO*nIVA115X
                     bandi  := .t.
                  endif
                  * COIN IVA EN OFERTA REBANADO
                  if articulo->siva = "B"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "R"
                     nreba1 := ARTICULO->ofer_p*nIVA115X
                     creba  := "*"
                     bandi  := .t.
                  endif
                  * COIN IVA EN OFERTA MENUDEO
                  if articulo->siva = "B"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "M"
                     nmenu1 := ARTICULO->ofer_p*nIVA115X
                     bandi  := .t.
                     cmenu  := "*"
                  endif
                  * SIN IVA SIN OFERTA REBANADO
                  if articulo->siva = "A"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "R"
                     nreba1 := ARTICULO->PRECIO
                     bandi  := .t.
                  endif
                  * SIN IVA SIN OFERTA MENUDEO
                  if articulo->siva = "A"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "M"
                     nmenu1 := ARTICULO->PRECIO
                     bandi  := .t.
                  endif
                  * SIN IVA CON OFERTA REBANADO
                  if articulo->siva = "A"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "R"
                     nreba1 := ARTICULO->ofer_p
                     creba  := "*"
                     bandi  := .t.
                  endif
                  * SIN IVA CON OFERTA MENUDEO
                  if articulo->siva = "A"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "M"
                     nmenu1 := ARTICULO->ofer_p
                     cmenu  := "*"
                     bandi  := .t.
                  endif
                  * con iva sin oferta REBANADO
                  if articulo->siva = "B"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "R"
                     nreba := ARTICULO->PRECIO*nIVA115X*MA[I,4]
                     X11 += ARTICULO->PRECIO*nIVA115X*MA[I,4]
                  endif
                  * con iva sin oferta MENUDEO
                  if articulo->siva = "B"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "M"
                     nmenu := ARTICULO->PRECIO*nIVA115X*MA[I,4]
                     X22 += ARTICULO->PRECIO*nIVA115X*MA[I,4]
                  endif
                  * con iva en oferta  REBANADO
                  if articulo->siva = "B"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "R"
                     nreba := ARTICULO->ofer_p*nIVA115X*MA[I,4]
                     x11 += ARTICULO->ofer_p*nIVA115X*MA[I,4]
                  endif
                  * con iva en oferta  MENUDEO
                  if articulo->siva = "B"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "M"
                     nmenu := ARTICULO->ofer_p*nIVA115X*MA[I,4]
                     x22 += ARTICULO->ofer_p*nIVA115X*MA[I,4]
                  endif
                  * sin iva sin oferta REBANADO
                  if articulo->siva = "A"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "R"
                     nreba := ARTICULO->PRECIO*MA[I,4]
                     x11 += ARTICULO->PRECIO*MA[I,4]
                  endif
                  * sin iva sin oferta MENUDEO
                  if articulo->siva = "A"  .and. (date() < articulo->vig1 .or. date() > vig2) .and. articulo->padre = "M"
                     nmenu := ARTICULO->PRECIO*MA[I,4]
                     x22 += ARTICULO->PRECIO*MA[I,4]
                  endif
                  * sin iva con oferta REBANADO
                  if articulo->siva = "A"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "R"
                     nreba := ARTICULO->ofer_p*MA[I,4]
                     x11 += ARTICULO->ofer_p*MA[I,4]
                  endif
                  * sin iva con oferta MENUDEO
                  if articulo->siva = "A"  .and. (date() >= articulo->vig1 .and. date()<= vig2) .and. articulo->padre = "M"
                     nmenu:=ARTICULO->ofer_p*MA[I,4]
                     x22 += ARTICULO->ofer_p*MA[I,4]
                  endif
                  DBSkip()
                  X1 += 11
               ENDDO

               *IMPRESION DE PRECIOS REBANADOS Y MENUDEOS
               if bandi
                  IF NREBA>0
                     oPrint:SetPrc(oPrint:Prow(), 96 )
                     oPrint:Textout( Transf(NREBA1,"999,999.99") ,.F.)

                     oPrint:SetPrc(oPrint:Prow(),106 )
                     oPrint:Textout(CREBA ,.F.)

                     oPrint:SetPrc(oPrint:Prow(),107 )
                     oPrint:Textout(Transf(NREBA ,"999,999.99")  ,.F.)
                  ENDIF
                  
                  NREBA := NREBA1 := NMENU := NMENU1 := 0
                  CREBA := CMENU := " "
                  BANDI := .F.
               Endif
            ENDIF
         ENDIF
         LIN++
         IF LIN >= 58
            oPrint:NewPage()
            LIN = 0
            TITULOAJUSTEWIN()
         ENDIF
      ENDIF
   NEXT

   IF LIN >= 54
      oPrint:NewPage()
      LIN = 0
      TITULOAJUSTEWIN()
   ENDIF

   oPrint:SetPrc(oPrint:Prow()+1, 0 )
   oPrint:Textout(REPLICATE("-",135)  ,.F.)

   IF !EMPTY(cCONCEP1)
      oPrint:SetPrc(oPrint:Prow()+1, 0 )
      oPrint:Textout(cCONCEP1  ,.F.)
   ENDIF
   IF !EMPTY(cCONCEP2)
      oPrint:SetPrc(oPrint:Prow()+1, 0 )
      oPrint:Textout(cCONCEP2  ,.F.)
   ENDIF
   IF !EMPTY(cCONCEP3)
      oPrint:SetPrc(oPrint:Prow()+1, 0 )
      oPrint:Textout(cCONCEP3  ,.F.)
   ENDIF

   oPrint:SetPrc(oPrint:Prow()+1, 45 )
   oPrint:Textout("TOTALES: "  ,.F.)

   oPrint:SetPrc(oPrint:Prow(), 63+1 )
   oPrint:Textout(Transf(nTotal,"999,999.99")  ,.F.)

   oPrint:SetPrc(oPrint:Prow(), 84+1 )
   oPrint:Textout(Transf(nTotal2,"999,999.99")  ,.F.)

   if x11 >0
      oPrint:SetPrc(oPrint:Prow(),106+1 )
      oPrint:Textout(Transf(X11, "999,999.99")  ,.F.)
   endif

   if x22 >0
      oPrint:SetPrc(oPrint:Prow(), 128+1 )
      oPrint:Textout(Transf(X22, "999,999.99")  ,.F.)
   endif

   oPrint:SetPrc(oPrint:Prow()+3, 5 )
   oPrint:Textout("     CAPTURO AJUSTE        "  ,.F.)

   oPrint:SetPrc(oPrint:Prow()+1, 11 )
   oPrint:Textout(ANOMUSU  ,.F.)

   oPrint:SetPrc(oPrint:Prow()+2, 5 )
   oPrint:Textout("---------------------------" ,.F.)

   oPrint:SetPrc(oPrint:Prow()+1, 5 )
   oPrint:Textout("      FIRMA Y NOMBRE       " ,.F.)

   oPrint:EndDoc(.F.)
   oPrint:Destroy()

RETURN


//---------------------
PROCEDURE TITULOAJUSTEWIN()
   IF LIN = 0

      oPrint:SetPrc(0, 0)

      oPrint:SetPrc(oPrint:Prow()+1,(INT(135-LEN(cNOM_EMP))/2) )
      oPrint:Textout(cNOM_EMP,.F.)

      oPrint:SetPrc(oPrint:Prow()+1,(INT(135-LEN("SUC : " + cSUC_EMP))/2) )
      oPrint:Textout(cSUC_EMP,.F.)

      oPrint:SetPrc(oPrint:Prow()+1,(INT(135-LEN("COMPROBANTE DE MOVIMIENTOS"))/2) )
      oPrint:Textout("COMPROBANTE DE MOVIMIENTOS",.F.)

      oPrint:SetPrc(oPrint:Prow()+1,0 )
      oPrint:Textout("FECHA : " + DTOC(DATE()) +" - "+TIME() + "  " +"FOLIO: " + cFOLIO,.F.)

      oPrint:SetPrc(oPrint:Prow()+1,0 )
      oPrint:Textout(REPLICATE("-",135),.F.)

      oPrint:SetPrc(oPrint:Prow()+1,0 )
      oPrint:Textout("MOV. :" + cCONCEP +" "+cDESCRIP,.F.)

      oPrint:SetPrc(oPrint:Prow()+1,0 )
      oPrint:Textout("CLTE/PROV : "+ cPROV+" "+cDESCPROV,.F.)

      oPrint:SetPrc(oPrint:Prow()+1,0 )
      oPrint:Textout(REPLICATE("-",135),.F.)

      oPrint:SetPrc(oPrint:Prow()+1,0 )
      oPrint:Textout("CANTIDAD  CODIGO",.F.)

      oPrint:SetPrc(oPrint:Prow(), 18 )
      oPrint:Textout("D E S C R I P C I O N",.F.)

      oPrint:SetPrc(oPrint:Prow(), 54 )
      oPrint:Textout("COSTO",.F.)

      oPrint:SetPrc(oPrint:Prow(), 64+2 )
      oPrint:Textout("T O T A L",.F.)

      oPrint:SetPrc(oPrint:Prow(), 74+2 )
      oPrint:Textout("PRECIO 1",.F.)

      oPrint:SetPrc(oPrint:Prow(), 85+2 )
      oPrint:Textout("TOTAL  P1",.F.)

      oPrint:SetPrc(oPrint:Prow(), 96+2 )
      oPrint:Textout("PRECIO 2",.F.)

      oPrint:SetPrc(oPrint:Prow(),107+2 )
      oPrint:Textout("TOTAL  P2",.F.)

      oPrint:SetPrc(oPrint:Prow()+1, 0 )
      oPrint:Textout(REPLICATE("-",135),.F.)

      LIN = 10
   ENDIF
RETURN
Saludos
Ariel
Editado pela última vez por Toledo em 12 Fev 2016 09:22, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

bom dia pessoal,
A impressora que estou testando a impressao é uma jato de tinta:

HP Deskjet 3510 series

A impressora termica é:

Bematech MP-2500
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Win32Prn imprime so uma parte do relatorio

Mensagem por porter »

ola pessoal,

Na impressora:
HP Deskjet 3510 series
entra na fila de impressao mas nao imprime
----------------------------------------------------

Na impressora termica:
Bematech MP-2500

Imprimiu corretamente, mas nao corta o papel, o papel é cortado com algum comando ?
Responder