Page 2 of 2

Re: Cual clase para imprimir tickets?

Posted: Mon Aug 13, 2018 10:42 am
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+"}"
 

Re: Cual clase para imprimir tickets?

Posted: Mon Aug 13, 2018 3:19 pm
by Armando
César:

Muchas gracias, una alternativa más.

Saludos

Re: Cual clase para imprimir tickets?

Posted: Wed Aug 15, 2018 6:01 pm
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