• Jueves 28 de Marzo de 2024, 22:43

Autor Tema:  Salto de Pag NO FUNCIONA  (Leído 2036 veces)

fab_stgo

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Salto de Pag NO FUNCIONA
« en: Jueves 27 de Agosto de 2009, 20:55 »
0
Atentos Saludos.
Aqui le planteo el probl.
esta es la rutina original  en la cual mano a imprimir en la matricial. el problema es que la hoja es de 33 lineas, me he quedado bloqueado, termina de imprimir si se me va de largo.

FUNC vm_05
       PARA tito
   SET CONS OFF
   SET DEVI TO PRINT
   IF tito#2
      @ 0.6,34 SAY "__________________"   FONT "Times New Roman",9 STYL "BT"
      @ 0.8,34 SAY "_____________"   FONT "Times New Roman",9 STYL "BT"
      @ 2,44 SAY "               S.A." FONT "Times New Roman",12 STYL "BT"
      @ 3,34 SAY "Productora           "    FONT "Times New Roman",12 STYL "BT"
      @ 3.4,34 SAY "____________"   FONT "Times New Roman",9 STYL "BT"
      @ 3.6,34 SAY "_____________"   FONT "Times New Roman",9 STYL "BT"
      @ 5,4 SAY "NOMBRE:  " + m.nemple FONT "Times New Roman",8 STYL "BT"
      @ 5,83 SAY "MES:  "+ CMONTH(fecproc)+ " / " + ALLT(STR(YEAR(fecproc)))   FONT "Times New Roman",9 STYL "BT"
      @ 6,49 SAY "SOBRE  DE  PAGO" FONT "Times New Roman", 11 STYL "BTU"   
      @ 8,30 SAY "INGRESOS" FONT "Times New Roman",9 STYL "BT"
      @ 8,70 SAY "DESCUENTOS" FONT "Times New Roman",9 STYL "BT"
      @ 9,4    SAY "Sueldo" FONT "Times New Roman",9 STYL "T"
      @ 9,43 SAY "$" FONT "Times New Roman",9 STYL "T"
   ENDIF
   SET CONSOLE ON
   SET DEVICE TO SCREEN
   SET PRINT TO
   SET PRINT OFF
ENDFUNC

espero me ayuden, en como modicficar para poder imprimir en este tipo de hojas,
gracias

xodrf

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Salto de Pag NO FUNCIONA
« Respuesta #1 en: Sábado 12 de Septiembre de 2009, 16:10 »
0
Me supongo que lo que quieres hacer es imprimir tus recibos en los formularios troquelados que vienen con una
longitud de la mitad de 11" y con una impresora epson? si es asi pues:
1- Te recomiendo fuertemente que reemplaces tus @ SAY por ??? "TEXTO"+CHR(13)+CHR(10)
2- aca va el ejemplo de como yo lo hago
_cbig=CHR(18)+CHR(14)
_cmbi=CHR(15)+CHR(14)
_csma=CHR(18)+CHR(15)
_cnor=CHR(18)
_cbig=CHR(18)+CHR(14)
_eol =CHR(13)+CHR(10)
??? _eol
??? _cbig+[* LIQUIDACION DE SALARIOS (Art.xxx) *]+_eol+_eol
??? _cmbi+[Empleador ]+_ename+[ N. Patronal ]+SECCION.NPATRON+_eol
??? _cmbi+[Trabajador ]+STRTRAN(CODIGO," ","0")+"-"+CPCONVERT(1252,437,NOMBRE)+_cnor+_eol
??? _cnor+[Periodo ]+_Xper+[ L.]+STRTRAN(_ncompr," ","0")+_cnor+_eol+_eol
*... un largo etcetera intermedio
??? [FECHA DE PAGO: ]+DTOC(_fpago)
??? SPACE(54)+[...............................]+_eol
??? SPACE(80)+[            FIRMA              ]+_eol+_eol+_eol+_eol+_eol+_eol
*//
*//      FIN DEL RECIBO, SE SUPONE QUE SE HA IMPRESO Y/O AVANZADO 34 LINEAS con _eol(end-of-line)
*//
??? CHR(27)+
  •          &&este es el comando de inicializacion de impresora epson matricial lx-300

_plineno=0            &&seteamos el contador de linea
_pcolno =0            &&seteamos el contador de columna
Pero yo activo la impresora una vez he imprimo todos los recibos y recien alli lo desactivo y a mi me funciona correctamente te recomiendo fuertemente que leas exaustivamente el manual de tu impresora alli hay informacion valiosa que la mayoria de los programadores ignoran.

 B)

*******************************************************************************************************
*Estas tres lineas siguientes debes agregar a tu codigo para que simule un saldo de pagina
*y no usar EJECT, ojo luego de avanzar hasta la ultima linea de la hoja!!!!
*??? CHR(27)+
  •          &&este es el comando de inicializacion de impresora epson matricial lx-300

*_plineno=0            &&seteamos el contador de linea
*_pcolno =0            &&seteamos el contador de columna
*******************************************************************************************************


3- Ahora la pregunta del millon porque te recomiendo fuertemente que reemplaces tus @ SAY por ??? pues corre
estas sentencias desde un prg en el fox y verificaras la potencia de manejar la impresora a tu antojo

_picl1=   CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(142)+CHR(207)+CHR( 79)+CHR( 15)+CHR(159)+;
      CHR(223)+CHR( 95)+CHR(159)+CHR(223)+CHR(223)+CHR( 80)+CHR( 16)+CHR(208)+CHR(208)+CHR( 16)+;
      CHR(208)+CHR(208)+CHR( 16)+CHR(208)+CHR(208)+CHR( 16)+CHR(210)+CHR(215)+CHR( 23)+CHR( 87)+;
      CHR(210)+CHR(128)+CHR(  0)+CHR( 64)+CHR(192)+CHR(128)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)
_picl2=   CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(128)+CHR(128)+CHR(128)+;
      CHR(128)+CHR(128)+CHR(136)+CHR(140)+CHR( 12)+CHR( 12)+CHR(  4)+CHR(  4)+CHR(  4)+CHR(132)+;
      CHR(196)+CHR(196)+CHR(132)+CHR(  4)+CHR(  4)+CHR(  4)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+;
      CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)+CHR(  0)

#define _sendtoprint      

#ifdef _sendtoprint
SET CONSOLE OFF
_printer=GETPRINTER()
IF EMPTY( _printer )
   MESSAGEBOX( [PRINT CANCEL!], 64, [WARNING!] )
   RETURN .F.
ENDIF
#endif
#ifndef _sendtoprint
   SET PRINTER TO FILE [SALIDA.TXT] ADDITIVE
   SET PRINTER ON TO PROMPT
#else
   SET PRINTER TO NAME (_printer)
#endif
SET DEVICE TO PRINTER
??? CHR( 18)+CHR( 15)
??? CHR( 27)+CHR( 89)+CHR( 40)+CHR(  0)+_picl1+" un saludo cordial desde:"+CHR(27)+CHR(74)+CHR(24)+CHR(13)
??? CHR( 27)+CHR( 89)+CHR( 40)+CHR(  0)+_picl2+" Encarnacion-PARAGUAY"+CHR(27)+CHR(74)+CHR(24)+CHR(13)
??? CHR( 27)+CHR( 74)+CHR( 24)+CHR( 13)
SET PDSETUP TO
SET PRINTER OFF
SET DEVICE TO SCREEN
SET CONSOLE ON
SET PRINTER TO 'LPT1'
RETURN .T.
 B)

fab_stgo

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Salto de Pag NO FUNCIONA
« Respuesta #2 en: Lunes 14 de Septiembre de 2009, 15:58 »
0
Muchas gracias por tu ayuda, voy a ponerla en practica.