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)
Final de impresion!!!
- noe aburto
- Posts: 418
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Final de impresion!!!
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
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
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Final de impresion!!!
Noé,
Puedes poner un ejemplo de cómo lo estás haciendo para probarlo aqui ? gracias
Puedes poner un ejemplo de cómo lo estás haciendo para probarlo aqui ? gracias
- noe aburto
- Posts: 418
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Re: Final de impresion!!!
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)
Gracias.
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
// --- 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
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
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact: