Prog. VB
Main Menu
Home
Descargas
Articulos
Programacion
Base de datos
CMS
Linux
utilidades
Articulos
Impresión en forma de recibo con VFP PDF Imprimir E-Mail
escrito por Daniel Bojorge   
Tuesday, 26 de December de 2006

En algunas ocasiones se necesita imprimir una factura, pero no se tiene ni idea del tamaño que tendrá el informe, por lo que hacerlo con el Diseñador de Informes no resulta tan práctico que se diga.

Con este inconveniente me dediqué a investigar como se podía imprimir en unas impresoras EPSON TMU, en el manual adjunto venían algunas indicaciones de como hacerlo, pero en Basic.

Logré traducirlo e investigando en otros foros y similares logré hacer que todo se imprimiera a como Dios manda.

Al salir Windows XP, el cual maneja la administración de impresión de una manera diferente a la que estabamos acostumbrados con Windows 98 o anteriores, tuve un gran problema, el código ya no me funcionaba, así que decidí seguir investigando hasta que logré hacer un código que imprimiese indistintamente en Windows XP y 98 (o anteriores) sin problemas.

Ya entrando en materia, realicé los siguientes pasos

  • Cree un formulario, al cual le agregué un procedimiento llamado IncializaImpresora tal como se muestra acontinuación:

Image

 

  • Luego escribí el siguiente código

Image
Inicializa Formulario

 

  • Este procedimiento lo mando a llamar desde el evento init del formulario principal (de estar en presencia de un conjunto formulario)

Image

 

  • En el Evento Clic del botón imprimir coloqué el siguiente código (está Documentado)


IF SET("PRINTER") = "OFF" OR SET("DEVICE")#"PRINTER"

WAIT windows "Impresora Fuera de Lugar.... Procediendo a Incializarla" nowait timeout 3

thisform.InicializaImpresora()

WAIT clear

ENDIF

 

IF UPPER(left(allt(os(1)),10))="WINDOWS NT"

*Si es Windows XP no se hará nada, únicamente si fuese otro Windows

Else

Image

END

@0,0 SAY CHR(27)+"p"+chr(0)+chr(200)+chr(255) &&Abrir caja. de Dinero

?chr(27)+chr(97)+chr(1) &&Agrandar el tamaño de la letra

?"No. de Factura"

?chr(27)+chr(97)+chr(0) &&Regrearlo a su estado natural

**Acá viene el bloque de impresión de la factura o recibo

?"Impresión de la factura o recibo"

?chr(27)+"!"+chr(17) &&Otra Forma de Imprimir en Tamaño Grande

?chr(27)+"!"+chr(0) &&Volver el tamaño de impresión al original

**Acá al final debe cortar el papel

???CHR(10)

IF UPPER(left(allt(os(1)),10))<>"WINDOWS NT"

?

?

?

?chr(27)+chr(64)

?chr(27)+CHR(97)+CHR(100)+CHR(10) &&Avanzar el papel

?CHR(27)+"m" &&Corte Parcialmente

ELSE

*Si no es XP no hace nada

ENDIF

**Siguiente se vuelve a inicializar la impresora, pero únicamente para Windows 98, en XP ya no es necesario hacerlo

Image

 

Y ya con esto, en los puntos de ventas se está imprimiendo en forma de recibo las facturas y no ha habido ningún problema.

Cabe aclarar que el decidí hacer un tutorial y no un video tutorial por lo que acá era más para compartir el código utilizado.

Adjunto se encuentra el formulario de ejemplo , en el cual indico el código utilizado en la facturación, el cual se puede probar sin necesidad de abrir una tabla, cursor o cualquier origen de datos, pero obviamente para ya en la práctica deberán hacer uso de un origen de datos para mostrar la información

 

Modificado el ( Friday, 29 de December de 2006 )
 
< Anterior   Siguiente >

Programación VFP

 
© 2010 ALLTECHINFO
Joomla! is Free Software released under the GNU/GPL License.