FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Clase TDirectPrint
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Clase TDirectPrint
Posted: Wed Feb 20, 2013 08:20 PM

Gracias William

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 5
Joined: Tue Nov 09, 2010 02:13 PM
Re: Clase TDirectPrint
Posted: Thu Feb 21, 2013 11:57 PM

hola

mes sumo a los comentario de rafa,

aunque despues de 2 AÑOS se envia :-(, que lastima

bye

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TDirectPrint
Posted: Fri Feb 22, 2013 02:50 AM

Más vale tarde que nunca... :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 5
Joined: Tue Nov 09, 2010 02:13 PM
Re: Clase TDirectPrint
Posted: Fri Feb 22, 2013 07:46 AM

hola
claro mas vale tarde que nunca,

pero creo que ya todos los foreros sabemos que no podemos
utilizar dichas lib por los continuos cambios de mejoramientos de (x)harbour y su PCODE

por eso quedo sin comentarios durante 2 años que podrian ser mucho mas provechoso

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TDirectPrint
Posted: Fri Feb 22, 2013 10:26 AM

Lo bueno es que como William ha proporcionado su codigo fuente, no hay problema en recompilarla con nuevas versiones de Harbour :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Clase TDirectPrint
Posted: Fri Feb 22, 2013 09:51 PM
Viendo un poquito la class tDirecPrint,

deberia de funcionar con el siguiente ejemplo,

ya nos dira el buen amigo william,

saludos..

Code (fw): Select all Collapse
#include <fivewin.ch>

function Main()
   local oPrn
   local i
   local nRow := 1
   local nPagina := 1
   
   oPrn := TDirectPrint():New('lpt1')
   
   oPrn:beginprint()
   
   for i := 1 to 330
      if nRow = 1
         oPrn:bold( .t. )
         oPrn:normal()
         oPrn:say( nRow, 10, 'Codigo' )   
         oPrn:say( nRow, 60, 'Pagina:' + cstr(nPagina) )
         oPrn:bold( .f. )
         oPrn:condensed()
         nRow++
      endif
      oPrn:say( nRow, 10, cstr(i) )
      nRow ++
      if nRow >= 55
         oPrn:eject()
         nRow := 1
         nPagina ++
      endif
   next
   oPrn:endprint()
return nil

FUNCTION WCStr( xExp, nDecimals )

   LOCAL cType

   IF xExp == NIL
      RETURN 'NIL'
   ENDIF

   cType := ValType( xExp )

   SWITCH cType
      CASE 'C'
         RETURN xExp

      CASE 'D'
         RETURN dToS( xExp )

      CASE 'L'
         RETURN IIF( xExp, '.T.', '.F.' )

      CASE 'N'
         IF !HB_IsNil( nDecimals )
            RETURN AllTrim(Str( xExp, 11, nDecimals ))
         ELSE
            RETURN AllTrim(Str( xExp ))
         ENDIF

      CASE 'A'
         RETURN "{ Array of " +  LTrim( Str( Len( xExp ) ) ) + " Items }"

      CASE 'B'
         RETURN '{|| Block }'

      CASE 'O'
         RETURN "{ " + xExp:ClassName() + " Object }"

      CASE 'P'
         RETURN NumToHex( xExp )

      CASE 'H'
         RETURN "{ Hash of " +  LTrim( Str( Len( xExp ) ) ) + " Items }"

      DEFAULT
         RETURN "Type: " + cType
   END

RETURN ""


#include "wtraw.prg"
Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Clase TDirectPrint
Posted: Mon Feb 25, 2013 07:07 PM
sysctrl2 wrote:Viendo un poquito la class tDirecPrint,

deberia de funcionar con el siguiente ejemplo,

ya nos dira el buen amigo william,

saludos..

Code (fw): Select all Collapse
#include <fivewin.ch>

function Main()
   local oPrn
   local i
   local nRow := 1
   local nPagina := 1
   
   oPrn := TDirectPrint():New('lpt1')
   
   oPrn:beginprint()
   
   for i := 1 to 330
      if nRow = 1
         oPrn:bold( .t. )
         oPrn:normal()
         oPrn:say( nRow, 10, 'Codigo' )   
         oPrn:say( nRow, 60, 'Pagina:' + cstr(nPagina) )
         oPrn:bold( .f. )
         oPrn:condensed()
         nRow++
      endif
      oPrn:say( nRow, 10, cstr(i) )
      nRow ++
      if nRow >= 55
         oPrn:eject()
         nRow := 1
         nPagina ++
      endif
   next
   oPrn:endprint()
return nil

FUNCTION WCStr( xExp, nDecimals )

   LOCAL cType

   IF xExp == NIL
      RETURN 'NIL'
   ENDIF

   cType := ValType( xExp )

   SWITCH cType
      CASE 'C'
         RETURN xExp

      CASE 'D'
         RETURN dToS( xExp )

      CASE 'L'
         RETURN IIF( xExp, '.T.', '.F.' )

      CASE 'N'
         IF !HB_IsNil( nDecimals )
            RETURN AllTrim(Str( xExp, 11, nDecimals ))
         ELSE
            RETURN AllTrim(Str( xExp ))
         ENDIF

      CASE 'A'
         RETURN "{ Array of " +  LTrim( Str( Len( xExp ) ) ) + " Items }"

      CASE 'B'
         RETURN '{|| Block }'

      CASE 'O'
         RETURN "{ " + xExp:ClassName() + " Object }"

      CASE 'P'
         RETURN NumToHex( xExp )

      CASE 'H'
         RETURN "{ Hash of " +  LTrim( Str( Len( xExp ) ) ) + " Items }"

      DEFAULT
         RETURN "Type: " + cType
   END

RETURN ""


#include "wtraw.prg"



Cesar, y en un puerto USB con una impresora matricial?

Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion