oPrn:SETSIZE() no me funciona

oPrn:SETSIZE() no me funciona

Postby Armando » Wed May 09, 2007 12:49 am

Amigos:

Necesito imprimir etiquetas con código de barras, el tamaño de la etiqueta es de 6.5 cms de ancho por 2.5 cms de alto.

Cómo puedo indicarle a la clase TPrinter este pequeño tamaño ????

He probado con oPrn:SetSize pero no funciona.

Saludos, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3201
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby JoseLuis » Wed May 09, 2007 6:59 am

Hola Armando


Si utilizas Barlib, por ejemplo para Ean13 es así
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn banner

y los códigos de barra yo los he generado de 1 cm x 1 cm.
mira éste programa que hice hace mucho tiempo y juega con las medidas:
http://hyperupload.com/download/029f9c3 ... S.ZIP.html

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Armando » Wed May 09, 2007 1:19 pm

José Luis:

Muy bonito programa, te agradezco el interes.

Efectivamente estoy usando la excelente LIB de Cayetano y el problema que tengo no radica en especificar el tamaño del código de barras sino el tamaño de la etiqueta para que TPRinter salte al inicio de la siguiente despues de imprimir una, por cierto la impresora donde se usará es una ZEBRA que utiliza etiquetas en rollo.


Saludos y nuevamente gracias por tu respuesta
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3201
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby JoseLuis » Wed May 09, 2007 4:56 pm

Armando
Como podrás comprobar en el programa, hay unos get para el tamaño de la etiqueta y otros para el tamaño de las barras.
Bien, pues el tamaño que pudes poner es en cm. y admite cualquier tamaño, puedes poner por ejemplo tamaño de la etiqueta Alto 6.5 cm, Ancho 1.5 cm, le pones en grueso de la barra 0.02, y el alto de la barra 1, y te hace las etiquetas que le digas, o que tengas en una BD con esas dimensiones, indicándole los desplazamientos tras cada etiqueta y los margenes superior e inferior.
Esto es para ccualquier impresora que utilize por ejemplo Din A4, ahora si me dices que es una zebra, pues ya me pierdo un poco, aunque buscando en el foro, encontré ésto

http://fivetechsoft.com/forums/viewtopi ... ight=zebra

Ahí viene un código compatible con ELTRON/ZEBRA

A ver si te sirve

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Armando » Thu May 10, 2007 3:35 am

José Luis:

Muchas gracias por el apoyo, voy entendiendo.

Solo un par de preguntas más, que clase usas para la impresión, TDosPrn, TPrinter, TReport ?, podrías mostrar tu código de impresión ?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3201
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby JoseLuis » Thu May 10, 2007 6:48 am

Voy a buscar...

Como te dije es un programa muy antiguo, y hecho un poco para uso personal, por lo tanto sin florituras, y como funciona, pues no me preocupé de cambiar nada.

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby JoseLuis » Thu May 10, 2007 12:46 pm

Aqui está
Code: Select all  Expand view
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
*+    Function codigo()
*+
*+    Called from ( barras.prg    )   1 - function main()
*+
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
function codigo( tipo, lprime, cprime, nancho, nlargo, ncodigo, ncanti, nOpci1, nlongi, npix, lini, cini, nnufo, npre, nDespH, nDespV, lPvp, lRef, lDen, nDesPvp, nDesRef, nDesDen, lBanner, cRef, cDetalle,tipo128 )
// ************************************************************************************************************************************************

local oPrn
local ccodigo
local llprime
local ccprime
local pasada  := 1
local texto
local textoc
local textor
local npvp
local echo    := 1
local nufo    := nnufo
local oFont
local oFont1
local Conta   :=0
local nindice:=tempo->(Recno())
private nLIz
private nCIz
private nLIzpvp
private nCIzpvp
private nLIzRef
private nCIzRef
private nLIzDes
private nCIzDes
  if nOpci1=1
tempo->( dbSetfILTER( {|| tempo->selec=.T.},'tempo->selec=.T.') )
tempo->(dbgotop())
  endif
printer oPrn from user preview
oPrn:SetPage(9)
if nufo != nil
   DEFINE FONT oFont NAME( nufo[ 14 ] ) ;
            SIZE 0, ( nufo[ 1 ] ) of oPrn
   DEFINE FONT oFont1 NAME( nufo[ 14 ] ) ;
             SIZE 0, ( nufo[ 1 ] ) of oPrn
else
   DEFINE FONT oFont  NAME "Arial" SIZE 0,  8 OF oPrn
   DEFINE FONT oFont1 NAME "Arial" SIZE 0, 10 OF oPrn
endif
  if nOpci1=2
   npvp := alltrim( transform( npre, "@E 9,999.99" ) )
     if tipo = 6
        ncodigo := 'A' + alltrim( ncodigo ) + 'T'
     endif
  endif
ccodigo:=alltrim(ncodigo)
do while .t.
   page
   if pasada = 1
      llprime := lini
      ccprime := cini
   else
      llprime := lprime
      ccprime := cprime
   endif
   texto   := llprime - .27
   textor  := llprime - .6
   textoc  := llprime + nlongi

   do while llprime + nlargo <= 29.7
     CmtToPixel(llprime+nDespV,         ccprime+nDespH, oPrn )
     CmtToPvp  (texto+nDespV,           ccprime+nDespH+nDespvp ,oPrn)
     CmtToRef  (texto+nlongi+ndesPV+.3, ccprime+nDespH+ndesRef, oPrn)
     CmtToDes  (texto+nlongi+ndesPV+.5, ccprime+nDespH+ndesDen, oPrn)
      if nOpci1=1
          ccodigo := alltrim(tempo->codigo)
          ncanti  := tempo->cant
          npvp    := alltrim( transform( tempo->Pvp , "@E 99,999.99" ) )
          cRef    := alltrim(tempo->referencia)
           cDetalle:=tempo->articulo
           if tipo = 6
              ccodigo := 'A' + alltrim( ccodigo ) + 'T'
           endif
       endif
      do case
   case tipo = 1
     if lBanner
       @ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn banner
     else
       @ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn
     endif
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
     endif
// como el codigo es lo mismo que la referencia, he quitado la referencia
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
   case tipo = 2
     if lBanner
       @ nLIz, nCIz ean8 ccodigo width npix size nlongi of oPrn BANNER
     else
       @ nLIz, nCIz ean8 ccodigo width npix size nlongi of oPrn
     endif
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
     endif
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
   case tipo = 3
     @ nLIz, nCIz code128 ccodigo width npix size nlongi of oPrn mode tipo128
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
     endif
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
   case tipo = 4
     @ nLIz, nCIz code3_9 ccodigo width npix size nlongi of oPrn
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
     endif
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
   case tipo = 5
     if lBanner
       @ nLIz, nCIz upca ccodigo width npix size nlongi of oPrn banner
     else
       @ nLIz, nCIz upca ccodigo width npix size nlongi of oPrn
     endif
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
     endif
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
   case tipo = 6
     @ nLIz, nCIz codabar ccodigo width npix size nlongi of oPrn
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+  ' €.', ofont )
     endif
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
   case tipo = 7
     if lBanner
       @ nLIz, nCIz sup5 ccodigo width npix size nlongi of oPrn banner
     else
       @ nLIz, nCIz sup5 ccodigo width npix size nlongi of oPrn
     endif
     if lPvp
       oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
     endif
     if lRef
       oPrn:Say( nLIzref, nCIzref,cRef, ofont )
     endif
     if lDen
       oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
     endif
      endcase

      ccprime += nancho
      if nOpci1 = 1
    if echo = ncanti
       tempo->( dbskip() )
         if tempo->( eof() )
            exit
         endif
            do while .t.
               if tempo->Selec=.F. .or. tempo->cant <= 0
             tempo->(dbskip())
                     if tempo->( eof() )
                   exit
                endif
               else
                  exit
          endif
            enddo
          if tempo->( eof() )
             exit
          endif
             echo := 0
         endif
      endif
      if echo = ncanti
    exit
      endif
      echo += 1
      if ccprime + nancho > 21
    llprime += nlargo
    texto    += nlargo
    textoc  += nlargo
    ccprime := cprime
      endif
      if llprime + nlargo >= 29.7
         pasada += 1
         exit
      endif
   enddo
   endpage
   SysRefresh()
do case
  case nOpci1=1
   if tempo->(Eof())
*  if echo = ncanti
      exit
   endif
  case nOpci1=2
   if echo = ncanti
      exit
   endif
  endcase
enddo
endprint
oFont:end()
oFont1:end()
tempo->(Dbsetfilter())
tempo->(Dbgoto(nindice))
return nil

static function CmtToPixel( nLi, nCi, oPrn )

local aPixel
aPixel        := oPrn:Cmtr2Pix( nLi, nCi )
memvar->nLIz := aPixel[ 1 ]
memvar->nCIz := aPixel[ 2 ]
return NIL

A ver si te sirve de algo

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Armando » Thu May 10, 2007 6:09 pm

José Luis:

Muchas gracias, por supuesto que sirve y de mucho.

Voy a hincarle el diente

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3201
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 34 guests