Final de impresion!!!

Final de impresion!!!

Postby noe aburto » Fri Jul 24, 2015 12:29 am

Saludos

Tratando de resolver el porque la impresión del ticket se queda en cola de impresión, me encuentro con la función
PrintEnd() de tPrinter y el metodo End().

Cuando finalizo la impresión de cualquier datalle con tPrinter, mando el PrintEnd() y con ello la impresión.
¿Entonces el método End() ... cual es su finalidad?

Ambas al final ponen a oPrinter:=NIL

Gracias. (uso tPrinter porque al inicio debo imprimir logotipos o imagenes empresariales, que tDosPrn no me permite)
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
noe aburto
 
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Final de impresion!!!

Postby Antonio Linares » Fri Jul 24, 2015 9:16 am

Noé,

Puedes poner un ejemplo de cómo lo estás haciendo para probarlo aqui ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Final de impresion!!!

Postby noe aburto » Fri Jul 24, 2015 9:21 pm

Saludos

Con gusto expongo la funcion que me imprime el ticket, pero con algunos argumentos ya que no uso los metodos de tprinter tal cual, sino que uso preprocesadores.
Una duda es respecto al puerto de impresion que uso, es: "EPSON TM-T20II Receipt", que es el nombre de la impresora de tickets, si es el correcto o deberia compartir la impresora para ponerle por ej.
"\\EPSONTMT20IIReceipt" o si debo usar directamente el nombre de puerto: sea COM1:, LPT1: o USB001:

Si mando previamente a pantalla la impresion todo esta correcto

la funcion: ImprDato(oPrn,nSup,1,aEmp[i],,.F.,.T.,4,nAncho,,.F.,.F.,.F.) = oPrn:CmSay(CML*nSup,CMC*nCol,aEmp[i],oFONT,NIL,NIL,NIL,nAlin)

Code: Select all  Expand view

// --- Impresion del ticket
function ImprTicket(cNumFol,nTSub,nTDes,nTTot,nTIva,nTEfe,cTipo)
local oPrn,nTot:=0,nIva:=0,nPrecio,nCant,cNum,nIzq,nSup,i,aEmp,nAncho,nR,nC,lTit,aSerie

if Empty(gaParaRef[ 5]) // gaParaRef[ 5] = puesto de impresión: "EPSON TM-T20II Receipt"
 aviso("Puerto de impresora para tickets no definido en parámetros")
 return .F.
endif
oPrn := PrintBegin(Ota("Impresión"), lSelect, lPrevio, "EPSON TM-T20II Receipt", .T. )
if oPrn==NIL
 return .F.
endif
nAncho:=Int(gaParaRef[30]/0.1494)
nSup:=1 ; lTit:=.T.
if !empty(gaParaRef[ 1]) // gaParaRef[ 1] = Campo multiline que contiene encabezado de ticket, datos de la empresa
 aEmp:=ParteMemo(gaParaRef[ 1],nAncho)
 for i:=1 to len(aEmp)
  aEmp[i]:=strtran(aEmp[i],CHR(20),"")
  ***********************************************************************************
  ImprDato(oPrn,nSup,1,aEmp[i],,.F.,.T.,4,nAncho,,.F.,.F.,.F.) //  oPrn:CmSay(CML*nSup,CMC*nCol,aEmp[i],oFONT,NIL,NIL,NIL,nAlin)
  ***********************************************************************************
  nSup++
 next
endif
if File(gaParaRef[36]) //gaParaRef[36] = Nombre de archivo logotipo,BMP
 nR:=gaParaRef[37]
 nC:=gaParaRef[38]
 oPrn:Cmtr2Pix(@nR,@nC)
 oPrn:SayImage(nR,nC,gaParaRef[36],PosX(gaParaRef[39],oPrn),PosY(gaParaRef[40],oPrn))
endif
ImprDato(oPrn,nSup,1,"Ticket: "+cNumFol+", Fecha "+FormaFecha(gdFecTra)+", Hora: "+time(),,.F.,.T.,,,,.F.,.F.,.F.)
nSup+=2
ImprDato(oPrn,nSup,gaParaRef[31]-5,"Cant.",,.F.,.F.,,,,.F.,.F.,.F.) //  oPrn:CmSay(CML*nSup,CMC*nCol,"Cant.",oFONT,NIL,NIL,NIL,nAlin)
ImprDato(oPrn,nSup,gaParaRef[32]-0,Ota("Descripción"),,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[34]-8,"P.Unitario",,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[35]-5,"Total",,.F.,.F.,,,,.F.,.F.,.F.)
nSup++
dbSelectArea( "art" )
if lEsBarras
 OrdSetFocus(8)
else
 OrdSetFocus(3)
endif
if cTipo=="PUNTO.VENTA"
 dbSelectArea( "tmp" )
 dbGoTop()
 while !Eof()
  dbSelectArea( "art" )
  if lEsBarras
   DBSeek(tmp->cod_bar)
  else
   DBSeek(JuntaPza(tmp->(pre_inv+bas_inv+suf_inv)))
  endif
  dbSelectArea( "tmp" )
  nCant  :=tmp->can_fac
  nPrecio:=tmp->pre_nor
  ImprDato(oPrn,nSup,gaParaRef[31],nCant,"99999",.F.,.F.,,,,.F.,.F.,.F.)
  ImprDato(oPrn,nSup,gaParaRef[32],left(Ota(DescArti(art->(JuntaPza(alltrim(pre_inv)+alltrim(bas_inv)+alltrim(suf_inv))),lEsBarras)),gaParaRef[33]),,.F.,.F.,,,,.F.,.F.,.F.)
  ImprDato(oPrn,nSup,gaParaRef[34],nPrecio,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
  ImprDato(oPrn,nSup,gaParaRef[35],nCant*nPrecio,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
  nSup++
  dbSkip(1)
 end
endif
nSup++
if nTDes>0
 ImprDato(oPrn,nSup,gaParaRef[35]-20,"IMPORTE",,.F.,.F.,,,,.F.,.F.,.F.)
 ImprDato(oPrn,nSup,gaParaRef[35],nTSub,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
 nSup++
 ImprDato(oPrn,nSup,gaParaRef[35]-20,"DESCUENTO",,.F.,.F.,,,,.F.,.F.,.F.)
 ImprDato(oPrn,nSup,gaParaRef[35],nTDes,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
 nSup++
endif
ImprDato(oPrn,nSup,gaParaRef[35]-20,"SUBTOTAL",,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[35],nTTot,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
nSup++
ImprDato(oPrn,nSup,gaParaRef[35]-20,"I.V.A. "+Str(_nTasaIva,2)+"%",,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[35],nTIva,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
nSup++
ImprDato(oPrn,nSup,gaParaRef[35]-20,"TOTAL",,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[35],nTTot+nTIva,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
nSup++
cNum:="("+upper(DescNum(nTTot+nTIva))+")"
ImprDato(oPrn,nSup,2,substr(cNum,1,nAncho-5),,.F.,.F.,,,,.F.,.F.,.F.)
nSup++
if !Empty(substr(cNum,nAncho-5+1))
 ImprDato(oPrn,nSup,2,substr(cNum,nAncho-5+1),,.F.,.F.,,,,.F.,.F.,.F.)
 nSup++
endif
nSup++
ImprDato(oPrn,nSup,gaParaRef[35]-20,"EFECTIVO",,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[35],nTEfe,"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
nSup++
ImprDato(oPrn,nSup,gaParaRef[35]-20,"CAMBIO",,.F.,.F.,,,,.F.,.F.,.F.)
ImprDato(oPrn,nSup,gaParaRef[35],nTEfe-(nTTot+nTIva),"999,999.99",.F.,.F.,,,,.F.,.F.,.F.)
nSup++
if !empty(gaParaRef[ 2]) //  gaParaRef[ 2] = Campo multiline que contiene pie de ticket
 aEmp:=ParteMemo(gaParaRef[ 2],nAncho)
 for i:=1 to len(aEmp)
  aEmp[i]:=strtran(aEmp[i],CHR(20),"")
  ImprDato(oPrn,nSup,1,aEmp[i],,.F.,.T.,0,nAncho,,.F.,.F.,.F.)
  nSup++
 next
endif
TermImpr(,.F.,.F.) // PrintEnd()
return .T.
 


Gracias.
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
noe aburto
 
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Final de impresion!!!

Postby Antonio Linares » Sat Jul 25, 2015 12:45 pm

Noé,

Puedes publicar también el código de TermImpr() ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Antonio Linares, Google [Bot], Jimmy and 38 guests