Imprimir con una matriz de puntos

Hola necesito me ayudes a solucionar el tema de imprimir con una impresora matriz de puntos.
Resulta que imprime pero me avanza el papel y no quiero que lo avance. Porque lo primero que hago es generar un nuevo ticket y a la vez imprima en encabezado luego buscar un articulo e imprimir el mismo y así con los otros que voy buscando y cuando cierre el comprobante me imprima los totales del ticket pero me esta avanzando cada vez que mando a imprimir. Este es el comando que pongo:
set print on
set console off
****** encabezado de factura **********
? "-----------------------------------"
? Nombrefantasia1
? "-----------------------------------"
? Razonsocial1
? Telefonoempresa1
? Domicilioempresa1
? Condicionivaempresa1
? Transform(fechahoy1," / / ")
? "-----------------------------------"
? " Codigo Descripcion Precio "
? "-----------------------------------"
(Me avanza el papel)
Busco articulo con codi de barras coloco cantidad e imprimo
Imprime el articulo y me avanza otra vez el papel.
¿Cómo hago para que no me avance el papel?
Saludos y gracias

1 Respuesta

Respuesta
1
Lo que tienes que hacer es usar la función @ SAY
Por ejemplo:
SET DEVICE TO PRINTER
STORE 0 TO L,P
=titula()
=detalle()
SET DEVICE TO SCREEN
Procedure titula
STORE 1 TO L
p=p+1
L=L+1
@ l,01             SAY "TITULO"
@ l,pcol()+1    SAY NombreFantasia1
@ l,pcol()+1   SAY "PAGINA"+TRANSFORM(p,"@KZ 999")
L=L+1
ENDPROC
Procedure detalle
 IF l>55
=titula()
ENDIF
l=l+1
@ l,01     SAY "detalle"
@l,pcol()+1 SAY 
Endproc
Que significa la orden
<span style="white-space: pre;"> </span>=titula()
<span style="white-space: pre;"> </span>=detalle()
Disculpa la pregunta
El programa es un ejemplo de impresión
Lo que hace es
1 Envia todos los comandos a la impresora (<span style="font-weight: bold;">SET DEVICE TO PRINTER</span>)
2 Se necesita un contador de lineas<span style="font-weight: bold;">(L)</span> y un contador de paginas(<span style="font-weight: bold;">P</span>)
que se deben inicializar en 0(<span style="font-weight: bold;">STORE 0 TO L,P)</span>
3 Imprimir titulos con el  PROCEDURE TITULA (<span style="font-weight: bold;">=</span><span style="font-weight: bold;">titula()</span>)
4 En El PROCEDURE TITULA debes colocar en 1 el contador de lineas de impresión(L) para que imprima en la siguiente página incrementar en 1 el contador de página(P) eimprimir los títulos correspondientes
5 Imprime detalle del reporte con el PROCEDURE DETALLE (<span style="font-weight: bold;">=detalle()</span>)
6 En el PROCEDURE DETALLE debes controlar la cantidad de lineas de impresión para efectuar el salto de página e imprimir lo descrito en el párrafo anterior(5), en este caso se controlan 55 lineas de detalle como máximo
(<span style="font-weight: bold;">IF L>55</span>
<span style="font-weight: bold;">     =Titula()</span>
<span style="font-weight: bold;">ENDIF</span>)
7 Incrementar en 1 el contador de lineas <span style="font-weight: bold;">(L)</span>
8 Imprimir el detalle del reporte
9 una vez terminado el reporte se devuelven los comandos a la Pantalla (<span style="font-weight: bold;">SET DEVICE TO SCREEN</span>)
Espero haber sido claro, si tienes alguna duda me avisas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas