FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Linea en tprinter
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Linea en tprinter
Posted: Wed Aug 22, 2012 11:54 AM

Buenos días compañeros, mi consulta es como hago para implementar una linea en el reporte, ya que oPrn:line(---) no supe hacerlo funcionar y lo que hago es lo siguiente

oPrn:CmSay(nrow +=.2, 2,Replicate("_",95),oFont)

Quisiera saber si hay una forma de utilizarlo.

Gracias

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Linea en tprinter
Posted: Wed Aug 22, 2012 12:25 PM
Holá, mira si ayuda,

Code (fw): Select all Collapse
//-> Para Centraliza‡Æo dos Textos - Controle dos Centrimetros
#Define PAD_LEFT            0
#Define PAD_RIGHT           1
#Define PAD_CENTER          2


STATIC FUNCTION IMPRIME_CAIXA_RESUMIDO( DbPedidos,  DbPedAnual, cDataInicial, ;
                                        cDataFinal, aGet, DeOndeParte )

   LOCAL cAlias, oImagem, gcFile
   LOCAL ResColuna, ResLinha
   LOCAL oPrn,        oFont,       oFontLogo,   oFontDivi,   oFontList,     ;
         oFontCurs,   oPen1,       oPen2,       oPen3,       oFontSubl
   LOCAL nLinha, nColuna // Linha e coluna da Descricao
   LOCAL nDinheiro,    nCheque,     nChequePre,  nTickets,    nCartaoCred,;
         nCartaoDebi,  nContraVale, nPagina,     nTotalGeral, xDataLista

   MEMVAR XCAIXAINI, XCAIXAFIN, XOPERAINI, XOPERAFIN

   PUBLIC XNOMEEMP, XCIDDIR

   XDATALISTA  := ALLTRIM(XCIDDIR)+ ", "        + ;
                  LTRIM( STR( DAY( DATE() ) ) ) + ;
                  " de "                        + ;
                  OemToAnsi(CMONTH( DATE() ))   + ;
                  " de "                        + ;
                  STR( YEAR( DATE() ) )         + ;
                  "."

   // VariAveis Para Achar os Valores Que o Cliente Pagou
   nDinheiro   := 0.00
   nCheque     := 0.00
   nChequePre  := 0.00
   nTickets    := 0.00
   nCartaoCred := 0.00
   nCartaoDebi := 0.00
   nContraVale := 0.00
   nTotalGeral := 0.00

   cAlias := ALIAS()  // DbPedidos

   MsgWait( "SOMANDO OS TOTALIZADORES DO FLUXO DE CAIXA - RESUMIDO", ;
            "AGUARDE UM MOMENTO POR FAVOR...                      ", 1.5 )

   //-> Vou somar os totalizadores - antes de mostrar o Preview
   WHILE ( .NOT. EOF() )

      SYSREFRESH()

      IF EOF()
         EXIT
      ENDIF

      nDinheiro   := nDinheiro   + ( cAlias )->DINHEIRO - ;
                                   ( cAlias )->TROCOCLIEN
      nCheque     := nCheque     + ( cAlias )->CHEQUE
      nChequePre  := nChequePre  + ( cAlias )->CHEQUEPRE
      nTickets    := nTickets    + ( cAlias )->TICKETS
      nCartaoCred := nCartaoCred + ( cAlias )->CARTAOCRED
      nCartaoDebi := nCartaoDebi + ( cAlias )->CARTAODEBI
      nContraVale := nContraVale + ( cAlias )->CONTRAVALE
      nTotalGeral := nTotalGeral + ( cAlias )->TOTPEDIDO

      SKIP  // Proximo Pedido

   ENDDO

   //-> Mostra o Relatorio... Preview do Fluxo do Caixa - Resumido

   PRINT oPrn NAME "Fluxo do Caixa Resumido" PREVIEW MODAL

      IF EMPTY( oPrn:hDC )
         RETURN NIL          // Printer was not installed or ready
      ENDIF

      DEFINE FONT oFont     NAME "Courier New" SIZE 0, -8 OF oPrn
      DEFINE FONT oFontDivi NAME "Courier New" SIZE 0, -10 BOLD OF oPrn
      DEFINE FONT oFontCurs NAME "Courier New" SIZE 0, -14 BOLD OF oPrn
      DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, -16 BOLD UnderLine OF oPrn

      //-> Problemas com o Windows XP - Formato da FONTE Nao Reconhecido
      IF IsWinNT() .OR. IsWin2000()  // Para Windows XP/NT e 2000 / 2003
         DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -16 BOLD OF oPrn
         DEFINE FONT oFontList NAME "Courier New" SIZE 0, -20 BOLD OF oPrn
      ELSE //-> 95/98/ME
         DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -20 BOLD OF oPrn
         DEFINE FONT oFontList NAME "Courier New" SIZE 0, -22 BOLD OF oPrn
      ENDIF

      //-> Caneta do Preview
      DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN OF oPrn
      DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN OF oPrn
      DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn
 
      oPrn:SetPage(9)     //-> A4 //9
      oPrn:SetPortrait()  //-> Vertical(Retrato)
      //oPrn:SetLandscape() //-> Horizontal

      //- Como Imprimir em Centimetros sem errar e em qualquer Impressora
      ResLinha  := oPrn:nVertRes()   /   40
      ResLinha  := oPrn:nLogPixely() / 2.54
      ResColuna := oPrn:nLogPixelx() / 2.54

      PAGE

         nLinha  := 0.50
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,         ;
                   SUBSTR( XNOMEEMP, 1, 32 ), oFontDivi,, CLR_BLACK,, PAD_CENTER )

         nLinha  += 0.50
         nColuna := 0.00

         //-> Cabe‡alho
         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,        ;
                   "FLUXO DO CAIXA RESUMIDO ", oFontDivi,,    ;
                    CLR_BLACK,, PAD_CENTER )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         //-> Data de Hoje
         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,          ;
                   OemToAnsi( "Data: " + DTOC( DATE() ) ) + " - " + ;
                   OemToAnsi( "Hora: " + TIME() ), oFont,,          ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  +=  0.30
         nColuna :=  0.00

         IF XCAIXAINI > 0 .AND. XCAIXAFIN > 0

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,            ;
                      OemToAnsi( "Caixa Inicial: " + STR( XCAIXAINI ) +  ;
                                 "  -  "                              +  ;
                                 "Caixa Final..: " + STR( XCAIXAFIN ) ), ;
                      oFont,, CLR_BLACK,, PAD_CENTER )

         ELSEIF VAL(XOPERAINI) > 0 .AND. VAL(XOPERAFIN) > 0

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,            ;
                      OemToAnsi( "Operador Inicial: " + ( XOPERAINI ) +  ;
                                 "  -  "                              +  ;
                                 "Operador Final..: " + ( XOPERAFIN ) ), ;
                      oFont,, CLR_BLACK,, PAD_CENTER )

         ENDIF

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30  //-> Pula a Linha
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,        ;
                   "RESUMO GERAL.: ", oFont,,                     ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30  //-> Pula a Linha
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,         ;
                   "EM DINHEIRO..: ", oFont,,                      ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna :=  4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,         ;
                   TRANSF( nDinheiro, "@E 9,999,999.99" ), oFont,, ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,       ;
                   "EM CHEQUE....: ", oFont,,                    ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna :=  4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,       ;
                   TRANSF( nCheque, "@E 9,999,999.99" ), oFont,, ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,          ;
                   "EM CHEQUE PRE: ", oFont,,                       ;
                    CLR_BLACK,, PAD_LEFT )

         nColuna := 4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,          ;
                    TRANSF( nChequePre, "@E 9,999,999.99" ), oFont,,;
                    CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,      ;
                   "EM TICKETS...: ", oFont,,                   ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna := 4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,        ;
                   TRANSF( nTickets, "@E 9,999,999.99" ), oFont,, ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,           ;
                   "EM C. CREDITO: ", oFont,,                        ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna := 4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,           ;
                   TRANSF( nCartaoCred, "@E 9,999,999.99" ), oFont,, ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,           ;
                   "EM C. DEBITO.: ", oFont,,                        ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna := 4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,           ;
                   TRANSF( nCartaoDebi, "@E 9,999,999.99" ), oFont,, ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,           ;
                   "EM C. VALE...: ", oFont,,                        ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna := 4.65

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,           ;
                   TRANSF( nContraVale, "@E 9,999,999.99" ), oFont,, ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,        ;
                   "TOTAL GERAL..: ", oFont,,                     ;
                   CLR_BLACK,, PAD_LEFT )

         nColuna :=  3.65

         //-> Total Geral
         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,         ;
                   TRANSF( nTotalGeral, "@E 999,999,999,999.99" ), ;
                   oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  +=  0.75
         nColuna :=  0.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
                   REPLICATE("_",40), oFont,, CLR_BLACK,, PAD_LEFT )

         nLinha  += 0.30
         nColuna := 2.25

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,        ;
                   "Assinatura", oFont,,                          ;
                   CLR_BLACK,, PAD_LEFT )

         nLinha += 0.30

      ENDPAGE

   ENDPRINT

   oFont:End()
   oFontLogo:End()
   oFontDivi:End()
   oFontList:End()
   oFontCurs:End()
   oFontSubl:End()

   oPen1:End()
   oPen2:End()
   oPen3:End()

RETURN NIL


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Linea en tprinter
Posted: Wed Aug 22, 2012 01:29 PM

Amigo prueba asi:

LINEa(2.4,0.3,2.4,25.1,oPrn,oPen1) // Linea FINAL
LINEa(nRow+0.4,0.2,nRow+0.4,26.2,oPrn,oPen1)
LINEa(1.5,01.6,cCal-0.1,01.6,oPrn,oPen1) // Linea 1
LINEa(1.5,04.7,cCal-0.1,04.7,oPrn,oPen1) // Linea 2

static Func Linea(nArriba,nIzq,nAbajo,nDerecha,oPrn,oPen)
Local xCor := {} , yCor := {}

xCor := oPrn:Cmtr2Pix(nArriba,nIzq)
yCor := oPrn:Cmtr2Pix(nAbajo,nDerecha)

oPrn:Line(xCor[1],xCor[2],yCor[1],yCor[2],oPen)

return NIL

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Linea en tprinter
Posted: Wed Aug 22, 2012 11:37 PM

Hola. Aqui, otro ejemplo:
//-----------------------------------------------------------------
Function Linea(nLin1,nCol1,nLin2,nCol2,oPrn,oPen1,nRowStep,nColStep)
oPrn:Line(nLin1nRowStep, nCol1nColStep,nLin2nRowStep,nCol2nColStep,oPen1)
return nil

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Linea en tprinter
Posted: Thu Aug 23, 2012 03:35 AM

DEFINE PEN ::oPen COLOR CLR_BLACK OF ::oPrn

::oPrn:Line( ::nRow, ::nColStep, ::nRow , ::nColStep * 79, ::oPen )

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: Linea en tprinter
Posted: Thu Aug 23, 2012 12:34 PM

Gracias por sus respuestas, ya con sus indicaciones pude resolverlo

Luis

Continue the discussion