Linea en tprinter

Linea en tprinter

Postby surGom » 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
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Linea en tprinter

Postby karinha » Wed Aug 22, 2012 12:25 pm

Holá, mira si ayuda,

Code: Select all  Expand view

//-> 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
User avatar
karinha
 
Posts: 7343
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Linea en tprinter

Postby jbrita » Wed Aug 22, 2012 1: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
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: Linea en tprinter

Postby FranciscoA » Wed Aug 22, 2012 11:37 pm

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

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Linea en tprinter

Postby sysctrl2 » Thu Aug 23, 2012 3: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 "
User avatar
sysctrl2
 
Posts: 971
Joined: Mon Feb 05, 2007 7:15 pm

Re: Linea en tprinter

Postby surGom » Thu Aug 23, 2012 12:34 pm

Gracias por sus respuestas, ya con sus indicaciones pude resolverlo

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests