FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Final de impresion!!!
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Final de impresion!!!
Posted: 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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Final de impresion!!!
Posted: Fri Jul 24, 2015 09: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
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Re: Final de impresion!!!
Posted: Fri Jul 24, 2015 09: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 (fw): Select all Collapse
// --- 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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Final de impresion!!!
Posted: 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

Continue the discussion