Cual clase para imprimir tickets? (SOLUCIONADO)

User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Cual clase para imprimir tickets?

Post by cmsoft »

Hola Armando:
Con la clase tprinter emito tiquets con codigo de barras e imagenes en una Epson comandera asi:

Code: Select all

FUNCTION ImprimeTicket(nNro)
LOCAL i, x, y, oPrn, nRow, oFont, oFont2, oFont4, oQryVen1, oQryDet1, config
   oQryVen1 := oApp:oServer:Query("SELECT * FROM tickets WHERE id = " + ClipValue2Sql(nNro))
   IF oQryVen1:nRecCount = 0
      MsgStop("Recibo no existe!!","Error")
      RETURN nil
   ENDIF         

   ** FACTURACION CON FORMATO PARA TICKET
   DEFINE FONT oFont  NAME "COURIER NEW" SIZE -12,20
   DEFINE FONT oFont2 NAME "TIMES NEW ROMAN" SIZE -13,22
   AddFontResource( "Bar25ifh.ttf" )
   DEFINE FONT oFont4 NAME "Bar 25i f HR"     SIZE 15, 120 
   PRINT oPrn NAME "Ticket"
   FOR x := 1 TO 1
   PAGE
   oPrn:SayImage(00,200, "logo.jpg",80, 80 ,   nil, .t. )
   oPrn:cmSay( 02,01   ,oApp:nomb_emp,oFont2)
   oPrn:cmSay( 02.5,01 ,oApp:dire_emp,,oFont)
   oPrn:cmSay( 03,01 ,"Recibo Nro:"+STRTRAN(STR(oQryVen1:id,8)," ","0"),oFont2)
   oPrn:cmSay( 03.5,01 ,"Fecha de ticket:"+DTOC(oQryVen1:fecha),oFont)
   oPrn:cmSay( 04,01 , oApp:cuit_emp,oFont )

   y := 06.5

   oPrn:cmSay( 05.5,00 , REPLICATE("-",40),oFont )
   oPrn:cmSay( 06.0,01 , "Detalle del ticket",oFont )       
   oPrn:cmSay( y ,01 , oQryVen1:concepto+  " " + STR(oQryVen1:importe,10,2),oFont)
   y ++ 
   oPrn:cmSay( y,01,"T O T A L:" + STR(oQryVen1:total,10,2),oFont2)
   y++
   oPrn:cmSay( y+.5,01, CodigoBarra("07100"+ALLTRIM(oQryVen1:id)+"2"),oFont4)
   ENDPAGE
   NEXT x
   ENDPRINT
RETURN nil


STATIC FUNCTION CodigoBarra( x )
LOCAL i, bar := {}, j := 0, bar1 := {}, cBarr := ""
   FOR i:= 33 to 122
       AADD(bar,CHR(i))
       AADD(bar1,STRTRAN(STR(j,2)," ","0"))
       j++
   NEXT i
   FOR i:= 161 to 170
       AADD(bar,CHR(i))
       AADD(bar1,STRTRAN(STR(j,2)," ","0"))
       j++
   NEXT i
FOR j := 1 TO LEN(x) STEP 2
    i := ASCAN(bar1,SUBSTR(x,j,2))
    cBarr := cBarr + bar[i]
NEXT j
RETURN "{"+cBarr+"}"
 
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Cual clase para imprimir tickets?

Post by Armando »

César:

Muchas gracias, una alternativa más.

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: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Cual clase para imprimir tickets?

Post by Armando »

Amigos del foro:

Muchas gracias a todos los que me apoyaron con sus respuestas, y a los
que no pues también, muchas gracias.

Lo solucione usando EasyReport, el problema que tenia era porque
no definía la anchura del papel.

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
Post Reply