FoxPro/Visual FoxPro - imprimir una boleta

 
Vista:
Imágen de perfil de ARNALDO EDMUNDO
Val: 9
Ha aumentado su posición en 39 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

imprimir una boleta

Publicado por ARNALDO EDMUNDO (23 intervenciones) el 14/09/2021 16:43:53
estimados amigos programadores tengo un procedimiento de imprecion prg. pero no me imprimime los registros solo uno y se salta a otra pagina este tes caso tengo 2 registos en mi tabla y solo imprime uno

clear

set printer on
set device to printer
set console off
set printer font"Arial",7, color r/b

CLOSE DATA
cl=0
sub=0
iva=0
decu=0
tot=0
USE ENTREGA
store f_subtota to subto

go top
PACK
CHR (8)

@ PROW()+ 1,3 SAY "FARMACIA LA EXPERIENCIA "
@ PROW()+ 2,3 SAY "Guasmos Sur Calle 55 se"
@ PROW()+ 3,3 SAY "Cliente:"
@ PROW()+3,13 SAY transform(entrega.f_cliente,"!!!!!!!!!!!!!!!!!!!!")
@ 4,3 SAY "Cajero:"
@ 4,13 SAY transform(entrega.USUARIO,"!!!!!!!!!!!!!!!!!!!!")
@ 4,30 SAY "Factura No:"
@ 4,42 SAY transform(entrega.F_NUFACTU,"!!!!!!!!!!!!!!!!!!!!")
@ PROW()+ 5,1 SAY"--------------------------------------------------------------------------------"
@ PROW()+ 6,1 SAY"Descripción"
@ PROW()+ 6,33 SAY"Cant."
@ PROW()+ 6,39 SAY"Precio"
@ PROW()+6,48 SAY"Total"
@ PROW()+ 7,1 SAY"--------------------------------------------------------------------------------"
LIN=0

DO WHILE !EOF()
LIN=LIN +1
@ PROW()+8,18 SAY entrega.usuario
@ PROW ()+8,1 SAY transform(entrega.f_articulo,"!!!!!!!!!!!!!!!!!!!!!!!")
@ PROW ()+8,33 SAY transform(entrega.F_cantidad,"999.99")
@ PROW ()+8,42 SAY transform(entrega.F_precipu,"999.99")
@ PROW ()+8,48 SAY transform(entrega.F_subtota,"999.99")
@ 22,1 SAY"--------------------------------------------------------------------------------"
CL=CL+1
if eof()
exit
else
skip
loop
endif
enddo
SUB=SUB+F_PRECIPU
@ 23,38 SAY "Sub"
@ 24,48 SAY transform(sub,"999.99")
@ 25,48 SAY transform(entrega.f_precipu,"999.99")
@ 24,38 SAY "I.V.A"
@ 27,48 SAY transform(entrega.F_IVA,"999.99")
@ 25,38 SAY "Descuento"
@ 23,48 SAY transform(entrega.F_IVA,"999.99")
@ 26,38 SAY "total pagar"
@ 27,38 SAY"Gracias por preferirnos"

*************
return
set printer to
set printer off
set device to screen
set console on
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

imprimir una boleta

Publicado por jose camilo (805 intervenciones) el 14/09/2021 17:37:11
Buenas
me faltan algunos detalles
impresora matricial o termica
por lo visto no es punto de ventas

a primera te dire que las impresoras matricial (epson lx350), te permiten imprimir una cantidad de linea antes de un eject, lo mismo ocurre con las de puntos de ventas.

hago algo asi
If m.tamano > 0
If ContL >=m.tamano
@Prow()+1,00 Say Replicate("-",137)
@Prow()+1,02 Say "CONTINUA EN LA SIGUIENTE PAGINA"
Eject
ContL = 0
Do Encabezado
EndIf
Else
If ContL > Iif(Wlongitud>11,(27-(LineasInE-14)),Iif(Wlongitud>8,24,20)) &&&&&&& 8 articulos &&&&&&&
@Prow()+1,00 Say Replicate("-",137)
@Prow()+1,02 Say "CONTINUA EN LA SIGUIENTE PAGINA"
ContL=ContL+2
@Prow()+(34-ContL),0
Wlongitud = Wlongitud - Iif(Wlongitud>11,11,Iif(Wlongitud>8,8,0))
ContL = 0
Do Encabezado

EndIf
EndIf
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
sin imagen de perfil
Val: 147
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

imprimir una boleta

Publicado por zarlu (97 intervenciones) el 14/09/2021 22:12:31
Buenas tardes Arnaldo!

Te dejo un código simple de ejemplo. Espero te sirva

CLEAR
CREATE CURSOR prueba (num c(2))
FOR a=1 TO 10
INSERT INTO prueba values(TRANSFORM(a))
ENDFOR
lnLin=0&&conteo de impresos
lnPrint=8&&registros por página
titulo()&&título por página
Scan
IF lnLin=lnPrint
pie()&&pie por página
EJECT
? REPLICATE("-",50)
titulo()
lnLin=0
EndIF
lnLin=lnLin+1&&linea/registro actual
? "Detalle del artículo "+num
EndScan
?
? SPACE(10)+"***Fin de impresión"


FUNCTION titulo
? "Encabezado del documento"
?
ENDFUNC

FUNCTION pie
?
? SPACE(10)+"Pasa a siguiente página..."
ENDFUNC

Suerte
zarlu
Chetumal, Quintana Roo, México
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