FoxPro/Visual FoxPro - Problema con impresion de Ticket

 
Vista:

Problema con impresion de Ticket

Publicado por Henry (2 intervenciones) el 18/11/2014 02:57:02
Hola agradezco su ayuda, les explico.

Estoy montando una impresion de Ticket en una Epson TMU220 a la antigua, todo me sale bien en la impresión, lo unico que no he podido arreglar es que la última línea del reporte me la pone de primera.

Les dejo el código del ticket, agradezco la ayuda.
--------------------------------------------------------------------
SET NOTIFY OFF
SET TALK OFF
SET SAFETY OFF
SET CONSOLE OFF
SET PRINTER TO NAME 'Tickets'
SET DEVICE TO PRINT

???CHR(27)+"C"+CHR(40) && 40 Cantidad de Lineas

mLinea = 0 && Ubicamos a linea 0

SELECT lcConfig

@mLinea,01 SAY "ORDEN #"+SPACE(1)+ALLTRIM(STR(pOrden))+' -'+SPACE(2)+ALLTRIM(cTipoOrden)
mLinea = mLinea + 1
@mLinea,01 SAY REPLI("=",38)
mLinea = mLinea + 1
@mLinea,01 SAY SPACE(8)+ALLTRIM(lcConfig.empresa) FONT "ARIAL BOLD ",17
mLinea = mLinea + 1
@mLinea,01 SAY SPACE(5)+ALLTRIM(lcConfig.titulo1)
mLinea = mLinea + 1
@mLinea,01 SAY SPACE(3)+ALLTRIM(lcConfig.titulo2)
mLinea = mLinea + 1
@mLinea,01 SAY SPACE(4)+ALLTRIM(lcConfig.titulo3)
mLinea = mLinea + 1
@mLinea,01 SAY REPLI("=",38)
mLinea = mLinea + 1
@mLinea,01 SAY "Factura No: "+SPACE(1)+alltrim(pFactura)
mLinea = mLinea + 1
@mLinea,01 SAY "Fecha:"+SPACE(1)+ALLTRIM(TTOC(pFechaHora))
mLinea = mLinea + 1
@mLinea,01 SAY "Tipo Factura:"+SPACE(1)+ALLTRIM(pTipoFactura)
mLinea = mLinea + 1
@mLinea,01 SAY "Cliente:"+SPACE(1)+ALLTRIM(pCliente)
mLinea = mLinea + 1
@mLinea,01 SAY "Cajero:"+SPACE(1)+ALLTRIM(pCajero)
mLinea = mLinea + 1
@mLinea,01 SAY REPLI("=",38)
mLinea = mLinea + 1
@mLinea,01 SAY " CANT. DESCRIPCION IMPORTE"
mLinea = mLinea + 1
@mLinea,01 SAY REPLI("=",38)
mLinea = mLinea + 1

* Vienen las líneas
SELECT lcLineasPrint
GO TOP
cCuenta = RECCOUNT()

FOR i = 1 TO cCuenta
cCant = ALLTRIM(STR(lcLineasPrint.cantidad)) && Cantidad
cDes = ALLTRIM(lcLineasPrint.descripcion) && Descripcion
cImp = lcLineasPrint.importe && Precio
cComentarioLinea = ALLTRIM(lcLineasPrint.comentario) && Comentario de linea

@mLinea,3 SAY cCant+SPACE(3)+ALLTRIM(cDes)
@mLinea,29 SAY TRANSFORM(cImp,'999,999.99') && Muestra los valores de la linea

* Si la linea tiene comentarios lo ponemos
IF EMPTY(cComentarioLinea) && Esta en blanco no pasa nada
*
ELSE && Tiene comentario lo imprimimos
mLinea = mLinea + 1
@mLinea,03 SAY "("+cComentarioLinea+")"
ENDIF

SELECT lcLineasPrint
IF EOF()
EXIT
ELSE
SKIP
mLinea = mLinea + 1
ENDIF
ENDFOR

mLinea = mLinea + 1
@mLinea,4 SAY "--------- Ultima Linea ---------"

* Continuamos con el final

* Si tiene comentarios generales
IF EMPTY(cComentarioGeneral) && No tiene comentario General
* Si tiene tarjeta de credito
ELSE && Si tiene comentario general
mLinea = mLinea + 1
@mLinea,01 SAY REPLI("=",38)
mLinea = mLinea + 1
* Vemos cuanto ancho tiene
mLargoTexto = LEN(ALLTRIM(cComentarioGeneral))
IF mLargoTexto <= 35 && Se puede en una linea
@mLinea,01 SAY ALLTRIM(cComentarioGeneral)
ELSE && Lo partimos
@mLinea,01 SAY SUBSTR(ALLTRIM(cComentarioGeneral),1,35)
mLinea = mLinea + 1
@mLinea,01 SAY SUBSTR(ALLTRIM(cComentarioGeneral),36,45)
ENDIF
mLinea = mLinea + 1
@mLinea,01 SAY REPLI("=",38)
* Si tiene tarjeta de credito
ENDIF

*Configuración Terminal de Impresion
mLinea = mLinea + 2

* Reparamos el total caracter
pTotalCaracter = STRTRAN(pTotalCaracter,'¢','')
@mLinea,11 SAY "TOTAL I.V.I:"
@mLinea,27 SAY alltrim(pTotalCaracter)
mLinea = mLinea + 1
@mLinea,14 SAY "PAGA CON:"
@mLinea,25 SAY TRANSFORM(nPagaCon,'999,999.99')
mLinea = mLinea + 1
@mLinea,13 SAY "SU CAMBIO:"
@mLinea,25 SAY TRANSFORM(nVuelto,'999,999.99')
mLinea = mLinea + 2
@mLinea,11 SAY "No. de Articulos:"+SPACE(1)+ALLTRIM(STR(pArticulos))
mLinea = mLinea + 2
@mLinea,01 SAY REPLI("=",38)
mLinea = mLinea + 2
@mLinea,4 SAY alltrim(lcConfig.footer1)
mLinea = mLinea + 1
@mLinea,8 SAY alltrim(lcConfig.footer2)
mLinea = mLinea + 1
@mLinea,10 SAY alltrim(lcConfig.footer3)
mLinea = mLinea + 1
@mLinea,4 SAY alltrim(lcConfig.footer4)
mLinea = mLinea + 1
@mLinea,4 SAY alltrim(lcConfig.footer5)

*** FIN DEL REPORTE E IMPRESION ***
EJECT
???CHR(12)

SET DEVICE TO SCREEN
SET PRINTER TO
RETURN
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con impresion de Ticket

Publicado por Henry (2 intervenciones) el 18/11/2014 17:07:43
gracias, siempre busco por mi parte, y ya pude resolver el dilema, les dejo la solución para que otros no inventen la rueda y les funcione el codigo que deje anteriormente para cuando necesiten crear un reporte por código, la solución es poner al final de los SAY este espacio.

@mLinea,4 SAY alltrim(lcConfig.footer5)
mLinea = mLinea + 1
@mLinea,4 SAY SPACE(1)

*** FIN DEL REPORTE E IMPRESION ***
EJECT
???CHR(12)

este ------->>> @mLinea,4 SAY SPACE(1) && Ese espacio libera el buffer y todo sale normal de principio a fin.

Saludos Foxeros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar