In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Solucionado el imprimir tickets (Punto de venta)

Foro público de Xailer en español
PEDRO DE LEON RODAS[1]
Mensajes: 136
Registrado: Jue Jul 05, 2007 4:52 am

Solucionado el imprimir tickets (Punto de venta)

Mensaje por PEDRO DE LEON RODAS[1] »

Apreciables amigos, despues de un buen tiempo invertido en este detalle de
imprimir tickets en un sistema de punto de venta, he encontrado la solución.
De antemano doy gracias a todos y cada uno de los que me brindaron su
experiencia.
Hasta ahorita lo he utilizado con la impresora Star SP212 Line Mode Printer
Pongo el codigo que uso
METHOD GRABARClick( oSender ) CLASS IMPRIMIR_VENTA
LOCAL ofrmPreview, oFont,Var_linea
oFont := TFont():New()
WITH OBJECT oFont
:cName := "Arial"
END WITH
Printer:nPrinterIndex := AScan( Printer:aPrinterNames, ::Impresora_tickets )
Printer:lPreview := .f. //// Si tuviera qui .T. seria visualizado en
pantalla
Printer:cJobTitle := "IMPRIMIR VENTA"
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmSIMULCHAR
Printer:StartPage()
WITH OBJECT Printer:oCanvas
:oFont:= oFont
:lTransparent := .t.
:nMapMode := mmSIMULCHAR
:oFont:nSize := 8
:oFont:lBold := .f.
:nTextAlignment:=taRight
:TextOut( 0, 1, ALLTRIM(NOMBRE_DE_LA_EMPRESA))
:TextOut( 0, 2, "Venta No.: "+alltrim(Str(::Venta:Value)))
:TextOut( 0, 3, "FECHA: "+DTOC(::Fecha:Value)+" Hora: "+time())
:TextOut( 0, 4, "Socio No. "+Alltrim(Str(::Numero_Socio:Value)))
:TextOut( 0, 5, Substr(::Nombre_Socio:Value,1,42) )
:TextOut( 2, 6, "Cantidad")
:TextOut( 16, 6, "Precio")
:TextOut( 28, 6, "Importe")
:TextOut( 0, 7, REPLICATE("-",40))
Var_linea=8
::Tempo:Select()
::Tempo:Gotop()
Do while .Not. ::Tempo:Eof()
:TextOut( 0, Var_linea, Substr(::Tempo:Descrip,1,42))
Var_linea=Var_linea+1
:TextOut( 0,
Var_linea,Transform(::Tempo:Cantidad,"99,999.999"),0 )
:TextOut( 4,
Var_linea,Transform(::Tempo:Precio,"999,999.99"),18 )
:TextOut( 4,
Var_linea,Transform(::Tempo:Importe,"999,999.99"),31 )
Var_linea=Var_linea+1
::Tempo:Skip()
Enddo
:TextOut( 0, Var_linea,REPLICATE("-",40))
Var_linea=Var_linea+1
:TextOut( 2, Var_linea,"Subtotal==>")
:TextOut( 2,
Var_linea,Transform(::Subtotal:Value,"999,999.99"),31 )
Var_linea=Var_linea+1
:TextOut( 2, Var_linea,"Aportación==>")
:TextOut( 2,
Var_linea,Transform(::Aportacion:Value,"99,999.99"),31 )
Var_linea=Var_linea+1
:TextOut( 2, Var_linea,"Venta Total==>")
:TextOut( 2,
Var_linea,Transform(::Total:Value,"999,999.99"),31 )
Var_linea=Var_linea+1
:TextOut( 3, Var_linea,"**** GRACIAS POR TU COMPRA ****")
*:TextOut( 0, Var_linea, Chr(27)+chr(69)) /// Corte de papel ////
Esto es en caso de que no respete el corte de papel
END WITH
Printer:EndPage()
Printer:EndDoc()
* with object Printer:PreviewControl() ///// esto es para que lo
Visualice en pantalla mientras hacen las pruebas
* :nZoomIndex := 4 ///// esto es para que lo Visualice en pantalla
mientras hacen las pruebas
* :oParent:Show() ///// esto es para que lo Visualice en pantalla
mientras hacen las pruebas
* end with ///// esto es para que lo Visualice en pantalla mientras hacen
las pruebas
oFont:Destroy()
RETURN Nil
Responder