FoxPro/Visual FoxPro - Ayuda con @ SAY

   
Vista:

Ayuda con @ SAY

Publicado por Luis Polo (134 intervenciones) el 10/09/2010 02:49:30
Hola amigos uso este codigo para imprimir 2 NOTAS PEDIDO por hoja continua, pero no se porque razon despues de la segunda pagina se me aleja mas y mas. esto lo hago con una epson 300 II, a ver si alguien me da una mano y le paso las tablas, para que las pruebe. No se que hago mal.

**** Codigo *****
SET CONS ON
SET PRINTER ON PROMPT
ENDIF
SET DEVI TO PRINT
@ 00,00 SAY CHR(27)+"0"
@ 00,00 SAY CHR(27)+CHR(60)
LIN = 0
SELECT CONSULTA_CAB
GO TOP
DO WHILE NOT EOF()
LIN = LIN + 1
fac_subtotal=CONSULTA_CAB.subtotal
fac_igv = CONSULTA_CAB.igv
fac_total = CONSULTA_CAB.total
TOT=CONSULTA_CAB.total
L_MON =IIF(CONSULTA_CAB.tipmon='S','S','D')
stor space(3) to mmon
mmon= IIF(L_MON='S','S/.','US$')
LET = Thisform.NLET1(TOT,MMON)

@ LIN,004 SAY CONSULTA_CAB.codven FONT 'LUCIDA CONSOLE' , 10 STYLE 'BNT'
@ LIN,057 SAY CONSULTA_CAB.numdoc FONT 'LUCIDA CONSOLE' , 12 STYLE 'BNT'
LIN = LIN + 2
@ LIN,013 SAY CONSULTA_CAB.codclic+" - "+ALLTRIM(CONSULTA_CAB.nomcli) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,060 SAY CONSULTA_CAB.fecmov FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = LIN + 1
@ LIN,013 SAY CONSULTA_CAB.dircli FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,060 SAY CONSULTA_CAB.discli FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = LIN + 1
@ LIN,013 SAY IIF(CONSULTA_CAB.tipvta="CON","Contado","Credito") FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,025 SAY IIF(CONSULTA_CAB.tipvta="CRE","Vencimiento: "," ") FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,038 SAY IIF(CONSULTA_CAB.tipvta="CRE",CONSULTA_CAB.fecvto," ") FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,060 SAY CONSULTA_CAB.codigo FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = 9
SELECT CONSULTA
SCAN FOR CONSULTA_CAB.numdoc=CONSULTA.numdoc
@ LIN,003 say ALLTRIM(CONSULTA.codint) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,008 say CONSULTA.canti pict '99,999' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,015 say SUBSTR(CONSULTA.nomart,1,49) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,055 say CONSULTA.precio pict '@Z 9,999.99' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,063 say CONSULTA.importe pict '@Z 99,999.99' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
STORE MEMLINES(CONSULTA.desserie) TO nlmimemo
if nlmimemo#0
STORE 0 TO _MLINE
FOR count = 1 TO nlmimemo
LIN = LIN + 1
@ LIN,008 say MLINE(desserie, 1, _MLINE) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
NEXT
endif
if CONSULTA.codgar#'00'
LIN = LIN + 1
@ LIN,025 say 'Garantia: ' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,035 say desgar FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
endif
LIN = LIN + 1
ENDSCAN
IF LIN<= 27
LIN = 27
ENDIF
@ LIN,006 say LET FONT 'LUCIDA CONSOLE', 8 STYLE 'NT'
@ LIN,061 say fac_total pict '9999,999.99' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
SELECT CONSULTA_CAB
SKIP

LIN = 30
fac_subtotal=CONSULTA_CAB.subtotal
fac_igv = CONSULTA_CAB.igv
fac_total = CONSULTA_CAB.total
TOT=CONSULTA_CAB.total
L_MON =IIF(CONSULTA_CAB.tipmon='S','S','D')
stor space(3) to mmon
mmon= IIF(L_MON='S','S/.','US$')
LET = Thisform.NLET1(TOT,MMON)

LIN = LIN + 1
@ LIN,004 SAY CONSULTA_CAB.codven FONT 'LUCIDA CONSOLE' , 10 STYLE 'BNT'
@ LIN,057 SAY CONSULTA_CAB.numdoc FONT 'LUCIDA CONSOLE' , 12 STYLE 'BNT'
LIN = LIN + 2
@ LIN,013 SAY CONSULTA_CAB.codclic+" - "+ALLTRIM(CONSULTA_CAB.nomcli) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,060 SAY CONSULTA_CAB.fecmov FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = LIN + 1
@ LIN,013 SAY CONSULTA_CAB.dircli FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,060 SAY CONSULTA_CAB.discli FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = LIN + 1
@ LIN,013 SAY IIF(CONSULTA_CAB.tipvta="CON","Contado","Credito") FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,025 SAY IIF(CONSULTA_CAB.tipvta="CRE","Vencimiento: "," ") FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,038 SAY IIF(CONSULTA_CAB.tipvta="CRE",CONSULTA_CAB.fecvto," ") FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,060 SAY CONSULTA_CAB.codigo FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = 39
SELECT CONSULTA
SCAN FOR CONSULTA_CAB.numdoc=CONSULTA.numdoc
@ LIN,003 say ALLTRIM(CONSULTA.codint) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,008 say CONSULTA.canti pict '99,999' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,015 say SUBSTR(CONSULTA.nomart,1,49) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,055 say CONSULTA.precio pict '@Z 9,999.99' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,063 say CONSULTA.importe pict '@Z 99,999.99' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
STORE MEMLINES(CONSULTA.desserie) TO nlmimemo
if nlmimemo#0
STORE 0 TO _MLINE
FOR count = 1 TO nlmimemo
LIN = LIN + 1
@ LIN,008 say MLINE(desserie, 1, _MLINE) FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
NEXT
endif
if CONSULTA.codgar#'00'
LIN = LIN + 1
@ LIN,025 say 'Garantia: ' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
@ LIN,035 say desgar FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
endif
LIN = LIN + 1
ENDSCAN
IF LIN<= 57
LIN = 57
ENDIF
@ LIN,006 say LET FONT 'LUCIDA CONSOLE', 8 STYLE 'NT'
@ LIN,061 say fac_total pict '9999,999.99' FONT 'LUCIDA CONSOLE' , 8 STYLE 'NT'
LIN = 0
SELECT CONSULTA_CAB
SKIP
ENDDO
SET DEVICE TO SCREEN
SET PRINT TO

Agradezco cualquier ayuda.
Saludos.
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

RE:Ayuda con @ SAY

Publicado por santiago (376 intervenciones) el 10/09/2010 03:52:46
Hola, chequea el largo de hoja US LETTER ó A4. y la configuracion de la EPSON para el salto de pagina.

Santiago
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

RE:Ayuda con @ SAY

Publicado por xx (378 intervenciones) el 10/09/2010 04:52:57
No revise tu codigo pero a simple vista veo que te falta el EJECT o sea el salto de pagina antes de finalizar cada hoja, y tambien debe estar configurada en tu impresora la longitud de hoja es decir 11"x24cms es la medida comun no se si es tu caso, para programar la medida de longitud de hoja debes ver tu manual o buscar el manual de referencia de EPSON publicado por este ultimo en ingles en el que te muestra la secuencia de escape para hacerlo via programacion!, si mal no recuerdo era CHR(27)+"C"+CHR(0)+CHR(longitudenpulgadas) pero asegurate y buscalo en el manual
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

RE:Ayuda con @ SAY

Publicado por Luis Polo (134 intervenciones) el 10/09/2010 23:17:47
Gracias por responder Sres.
XX Si le puse el EJECT, pero igual sigue, ahora me parece que estos seteos de
chr(27)+"0"+chr(66) no me hacen efecto. no tengo el manual a la mano, pero googleare un poco.
Gracias por ayudar y si alguien se la sabe o trabaja con @ SAY, sigo esperando ayuda.
Saludos.
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

RE:Ayuda con @ SAY

Publicado por Santiago (376 intervenciones) el 17/09/2010 01:18:24
Hola Luis, insisto en lo que te mencione, yó trabajo con los @ SAY y controlo diferentes "saltos de pagina" a voluntad, pero tienes que tener el control del total de lineas a imprimir en tu papel y esto depende del largo (A4 ó US LETTER).

No he tenido oportunidad de chequear a profundidad tu codigo fuente, pero veo que mezclas filas que se van incrementando (LIN = LIN + 1) con lineas fijas (LIN = 57), esto podria traer conflicto en algun momento, puesto que si tu contador esta en 12 y a continuacion tu linea fija es 9, entonces generaras un salto de pagina a la fila 12 de la siguiente pagina, lo otro es que usas diferentes tamaños de letra (8, 10, 12), esto hace que las filas no tengan el mismo tamaño de avance en el papel.

Suerte.
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