¿Como Imprimir una Factura?

Realmente es muy sencillo. Debemos colocar un boton que realice la función de imprimir lo que se ha ingresado en el formulario. Una vez que se realiza el pago se imprime y listo. Ahora,  internamente lo que hacemos es crear un archivo temporal y con la ayuda de HTML generamos un reporte que muestre y capture los datos que se ingresaron en el formulario. A continuacion les dejo el codigo de ejemplo.

PUBLIC SUB BTNImprimir_Click()

DIM Factura AS File
DIM Contador AS Integer = 0

OPEN «/tmp/Reporte.html» FOR CREATE AS #Factura
PRINT #Factura, «<html>»
PRINT #Factura, » <head><title>Reporte de Sophia – Creado por Pedro Perez -</title></head>»
PRINT #Factura, » <body topmargin = ‘0’ leftmargin=’0′ onload=’window.print()’>»
PRINT #Factura, »   <table align = ‘center’ width = 500 border = ‘1’ cellpadding=’0′ cellspacing=’0′>»
PRINT #Factura, »     <caption><h1>MiniS&uacuteper Joselyn</h1></caption>»
PRINT #Factura, »     <tr>»
PRINT #Factura, »       <td align = ‘center’><b>Cliente</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Tipo de pago</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>N&uacutemero</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Fecha</b></td>»
PRINT #Factura, »     </tr>»
PRINT #Factura, »     <tr>»
PRINT #Factura, »       <td align = ‘center’>» & CMBCliente.Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & CMBTipoPago.Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & TBXNumeroFac.Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & DTBFecha.Value & «</td>»
PRINT #Factura, »   </table>»
PRINT #Factura, »   <hr>»
PRINT #Factura, »   <table align = ‘center’ border = ‘1’ width=’1008′ cellpadding=’0′ cellspacing=’0′>»
PRINT #Factura, »     <tr>»
PRINT #Factura, »       <td align = ‘center’><b>C&oacutedigo</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Descripci&oacuten</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Cantidad</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Precio</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Gravado</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Subtotal</b></td>»
PRINT #Factura, »     </tr>»
WHILE Contador < LSBCodigo.Count
PRINT #Factura, »     </tr>»
PRINT #Factura, »       <td align = ‘center’>» & LSBCodigo[Contador].Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & LSBDescripcion[Contador].Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & LSBCantidad[Contador].Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & LSBPrecio[Contador].Text & «</td>»
IF LSBGravado[Contador].Text = «T» THEN
PRINT #Factura, »       <td align = ‘center’> TRUE</td>»
ELSE
PRINT #Factura, »       <td align = ‘center’>FALSE</td>»
END IF
PRINT #Factura, »       <td align = ‘center’>» & LSBSubTotal[Contador].Text & «</td>»
PRINT #Factura, »     </tr>»
INC Contador
WEND
PRINT #Factura, »   </table>»
PRINT #Factura, »   <hr>»
PRINT #Factura, »   <table align = ‘center’ border = ‘1’ cellpadding=’0′ cellspacing=’0′>»
PRINT #Factura, »     <tr>»
PRINT #Factura, »       <td align = ‘center’><b>Cancelada</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Monto bruto</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Descuento</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Impuesto</b></td>»
PRINT #Factura, »       <td align = ‘center’><b>Monto a pagar</b></td>»
PRINT #Factura, »     </tr>»
PRINT #Factura, »     </tr>»
IF CKBCancelada.Value = TRUE THEN
PRINT #Factura, »       <td align = ‘center’>TRUE</td>»
ELSE
PRINT #Factura, »       <td align = ‘center’>FALSE</td>»
END IF
PRINT #Factura, »       <td align = ‘center’>» & TBXBruto.Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & TBXDescuento.Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & TBXImpuesto.Text & «</td>»
PRINT #Factura, »       <td align = ‘center’>» & TBXMonto.Text & «</td>»
PRINT #Factura, »     </tr>»
PRINT #Factura, »   </table>»
PRINT #Factura, » </body>»
PRINT #Factura, «</html>»
CLOSE #Factura
FRMListado.Visible = TRUE 

14 comentarios en “¿Como Imprimir una Factura?

  1. saludos

    amigo me podrian facilitar los pasos para instalar gambas en opensuse 10.2 soy novotao en esto y me gustaria aprender
    gracias de antemano cagua venezuela

  2. Hola buenos dias yo quisiera saber como podria yo guardar un registro de una tableview en doc o en writer o pdf y tambien imprimirlo te lo gradeceria de antemano.

  3. ese codigo que pusiste arriaba de esta pagina sirve para el gambas2, as investigao algo del gambas3?, porque seguramente utilizaste el webborwser para hacer eso pero no se que le pasa al webview que es lo mismo en gambas3 que no detecta la impresion del html el onload=’window.print()’ y no se porque, si tienes alguna ayuda te lo agradeceria

    1. Ya estoy realizando algunos ejemplos con gambas 3, espero subirlos pronto. Te puedo adelantar que todos los proyectos que hasta ahora he realizado en gambas 2, son convertidos perfectamente en gambas 3.
      Sobre el html el onload=’window.print()’; ese es un script de java script; pero no funciona, simplemente se fue alli demas, estaba probando con el y se me olvido quitarlo antes de colocar el codigo en esta pagina.

  4. Hola, con las últimas actualizaciones de ubuntu 11.04 creo que se cambió algo y ahora no me permite ver lo que imprimo, sale la página web en blanco, no se ve ni las tablas ni los caracteres, quisiera saber si hay que cambiar alguna opción para que pueda verse. Anteriormente funcionaba bien, no he cambiado nada del código, digo que son las actualizaciones porque en otra máquina que no he actualizado nada funciona bien.

    1. fabian buenas noches.
      imagino que te refieres al topico de impresion de la factura. primero deberias probar con otro navegador; dale con chrome o firefox, generalmente trabajo con esos.

      1. Hola Julio, gracias por responder, las pruebas las hice con Firefox 10.0.2 y con Chromium 16.0.912.77 que lo instalé con synaptic en la distribución ubuntu 10.10 y también la probé con problemas en la distribución ubuntu server 10.04. Cuando no estaban actualizadas las dos distribuciones funcionaban bien los reportes pero primero actualicé la ubuntu 10.10 y ya no funcionó, luego la ubuntu server 10.04 y tampoco, así que estoy en ese dilema. Espero me puedan ayudar, gracias de antemano

      1. Mi estimado amigo, ya resolví el problema, no son las actualizaciones, había un error en el código html que alguna vez pude haber cometido inconscientemente en la codificación , agradezco mucho tu ayuda y agradezco este post, todo está ok

Replica a JOUSSEPH Cancelar la respuesta