Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

24/4/11

Factura en Java (Proyecto Completo)

JAN29


Tiempo atras me pidieron un ejemplo de como realizar un reporte con iReport tipo factura, recibo o como le llamen, complicado no es y se resumen en una consulta a la base de datos para luego mostrar este en un reporte previamente formateado, pues bien me hubiera gustado realizar un tutorial paso a paso de como hacer eso, pero "el tiempo" no perdona asi que mejor alternativa que dejarles el codigo fuente de ejemplo para que el que este interesado, explore este y le saque provecho.

¿Que necesitamos?
  • Un IDE, Netbeans 6.9
  • Un gestor de base de datos MySql
  • La libreria necesaria para conectar Mysql con Java (mysql-connector-java-5.1.6-bin - ultima versión a la fecha)
  • Las librerias necesarias para iReport (Añadidas en el RAR al final)
  • JasperReport para realizar el modelado de la Factura
  • Ganas, muchas Ganas!!!
La base de datos.

Como dije hay diferentes formas de realizar una base de datos sobre ventas, y por lo general en una aplicación comercial, estas cuentan con varias tablas y campos, para el ejemplo, utilizaremos una base de datos muy básica, consta de 4 tablas (CLIENTES,FACTURA,PRODUCTO, DETALLE)

Con esta BD tenemos lo necesario para simular una venta de un producto "X" a un cliente "Y" previamente registrado el cual se almacenara en la tabla FACTURA, ademas los diferentes productos que formen parte de la venta, se almacenaran en la tabla DETALLE.
En a la Tabla Factura, podemos ver un campo Vendedor, este campo por lo general cuenta con su propia tabla y sus propios datos, para fines de este ejemplo lo dejamos solamente como un campo.
Repito, esta es una forma, en otras BD la tabla Factura y  Detalle no existe, y los datos de esta son extraidos de varias tablas que forman la base de datos, todo depende de quien diseñe la BD.

Tambien en esta ejemplo podremos ver el trabajo mediante la programacion por "Capas", esto quiere decir que se separa la interfaz de la logica del programa, la clase encargada de realizar la comunicacion entre la interfaz y los datos se llama "Control",
Como algunos recibos muestran el total de la transaccion en numero y en literal, podemos ver una clase Numero_a_Letra.java,  la cual realiza dicha conversion. La clase conectate.java encargada de la conexion MySql con Java, la clase Sql.java, en donde se realizan todas las consultas a la base de datos, la clase iFactura, la encargada de mostrar la factura la cual hace uso de los archivos .Jasper y .jrxml.

Aqui podemos ver la aplicacion en funcionamiento


El enlace de descarga
[Actualizado -2013-  Todo tranquilo y sereno :/ ] 
Click para descargar
Las instrucciones estan adentro

preguntas, dudas, correciones, bugs, etc todas por favor con el mayor irrespeto posible ;)

73 comentarios:

Anónimo dijo...

hi jc buenaso el proyecto,parse puedes hacer un ejemplo en java de como medir la temperatura del computador como obtenerla ya me mate buscando y no encuentro como tu eres un maestro en java espero q me des una manito muchas gracias

Anónimo dijo...

No puedo descargar el ejemplo! =(

Anónimo dijo...

Que onda man, muy bueno el programa, aunque me marca un detelle con una referencia hacia una libreria llamada reportes que no encuentra, ya agregue todas las librerias y no se resuelve, cual crees que sea mi error???

jesus dijo...

tu proyecto esta de huevos pero mi calificacion depende de tu proyecto como se conecta con sql server 2008 sseria un gran paro por que yo uso ese manejador

Mouse dijo...

Anonimo:
El error que dices es comun en netbeans, lo que puedes hacer, es crear una libreria con ese nombre, lo añades al proyecto para que se borre el error y despues quitas y borras la libreria

Jesus:

Supongo que debes ser igual a MySQL, solo debes editar los datos de la clase "Conectate.java"

Anónimo dijo...

cordial saludo mouse, te felicito por el proyecto esta muy bien para nosotros que programamos en java. con todo el debido respeto te sugiero que al formulario de cliente le agregues caja de texto junto con un boton de "consutlar" para realizar una mejor busqueda, en el caso donde la tabla de cliente tenga 20.000 registro en la base del sistema quedaria mas facil la busqueda no quedaria dificil, o en una caja texto lo puedes hacer tambien con un keylistenery la consulta tenga un like. pero el proyecto esta muy bien

Frcho dijo...

buenas tardes me parece excelente este proyecto, y lo estoy intentando modificar a mis necesidades, pero tengo un problema y es que me esta saliendo un error cuando quiero imprimir la factura.
sera que me puedes ayudar a solucionarlo porque no doy con que pasa.

el error es que por alguna razon no le llega nada

aqui pongo el proyecto con la base de datos de mysql que trabaja, por favor mirenlo y me dicen que esta mal

http://cid-842943fe0b3b4af0.office.live.com/self.aspx/P%C3%BAblico/jcFactura%5E_1.rar

Anónimo dijo...

Hola saludos este post esta muy bueno, de los mejores que he visto, me gustaria que hicieras una aplicacion para facturacion electronica en java, ya que en 1 mes es el trabajo que tengo que entregar para mi titulacion y en verdad que tendria mucha mucha demanda este post para muchos, de antemano gracias carnal sigue siendo free!

Mr/Sycropt dijo...

la verdad he sacado muy buenas ideas de aqui espero terminar mi proyecto y luego compartirlo por aqui mismo

Anónimo dijo...

Te pasaste loco me salvaste de la tremenda prueba.. gracias !!

Mouse dijo...

gracias a todos, muy contento de que les sirva este codigo :)

Anónimo dijo...

Hola, no se puede bajar el proyecto, creo que es problema de freaksshare, pero ¿no podrias volver a subirlo? Gracias

Anónimo dijo...

Hola. Muchas gracias por ir publicando tus proyectos. Me están sirviendo de mucha ayuda.
¡¡Sigue adelante!!

Juan López dijo...

Hola, en primer lugar felicitaciones por los aportes que se ofrecen en este blog. Bueno para mi como estudiante me ayudan mucho. Te cuento que baje el codigo, pero al compilarlo me da el siguiente error:
Error: no se ha encontrado o cargado la clase principal jcfactura.Interfaz, y es así con todas las clases. Instale todas las librerias que se dan pero no se que más me hace falta. Desde ya te agradezco por tu ayuda. Gracias mil.

KRONOOSS dijo...

hola, saludos a todos gracias por los aportes del post, a jc felicitaciones excelente programador en java, y nesecito una ayuda si es posible, actualmente estudio sistemas an el area de redes, busco un codigo qu eme genere un reloj en netbeans pero si utilizar hilos, busco realizarlo con variables de candado. me gustaria que me ayudaras en esto

Anónimo dijo...

MUCHAS GRACIAS MOUSE, soy programador de Visual basic y visual fox, pero de java estaba en cero, hasta hace 2 dias y tengo que migrar un sistema de visual basic a java en 7 dias solo necesitaba un ejemplillo para hacerlo, Ahora si terminare el proyecto. UN SALUDO DE GUATEMALA.

Anónimo dijo...

Gracias...excelente proyecto...pero te pregunto no soy muy experto en esto pero si quiero cambiar los datos y nombrs de la factura como por ejemplo titulos direccion...que tendria que cambiar .....gracias

miguel angel dijo...

Muchas gracias ojala y esten en el face asi se inundaria mas la ayuda en Java muchas gracias

ING. WALTER EDUARDO dijo...

excelente amigo.
Se te agradece y para servirte.
Saludos y espero solo sea un hasta pronto

Juanba dijo...

que bueno justo lo que andaba buscando gracias...

Anónimo dijo...

Hey parcero! Está excelente este post, de verdad que me ha ayudado increíblemente. Tengo una pregunta... Si yo quiero cambiar el consecutivo de la factura, que para el caso de este programa es aleatorio, a obtener un consecutivo, cómo puedo hacerlo? Espero pronta respuesta! Muchas gracias!

mouse dijo...

solo es un parametro más, eso lo haces desde tu programa y lo mandas al ireport

Anónimo dijo...

Disculpa mouse en el notepad que viene con el proyecto dice que debes agregar las librerias necesarias al proyecto.... como o donde hago eso x favor ayudaaa!!!!!!

mouse dijo...

las librerias a las que me refiero son las librerias de ireport, si mal no recuerdo, estan dentro el rar

Anónimo dijo...

Excelente JMouse; ya logre generar la mayor parte, pero al momento de dar clic al incono imprimir, solamente me conecta a la base de datos, no me los muestra ni me muestra la factura. me gustaria poder ver el scrib de la base de datos que utilizas, para poder tener un mejor manejo. EXITOS siempre osmarromeo@hotmail.com

Anónimo dijo...

muchas gracias JMouse con tu ayuda espero terminar mi proyecto...

Anónimo dijo...

Hola JC, he intentado descargar el código fuente de facturación pero el enlace de freakshare no funciona..pls, puedes subirlo a otro servidor?

Gracias.

Saludos desde Lima Perú

Anónimo dijo...

Buenas tardes , se ve excelente el contenido que tu publicas , pero e intentado descargar el proyecto mas de una vez y este no ha descargado , soy nuevo en el tema de desarrollar enjava , tengo concoimientos basicos y empiricos me gustaria que por favor me colaboraras , pues tengo un proyecto de generar una factura y aun no lo he logrado , gracias
William desde Colombia

Anónimo dijo...

el ejemplo es muy ilustratito y perdona mi osadia pero seria mas interesante el poder crear una factura de aucerdo a las exigencias de impuestos internos, osea que tenga Nro. de Factura, Nro. de autorizacion y generar el codigo de control.

satan_servant dijo...
Este comentario ha sido eliminado por un administrador del blog.
Juan dijo...

Hola que tal, antes que nada quiero agradecer por el proyecto, ha sido de gran ayuda. Tengo el diseño de un reporte con conexión a BD de access 2007, al compilar desde netbeans si me resulta. El problema está que yo quiero que desde un botón me muestre en pantalla dicho reporte, estoy utilizando un parametro, y resulta que me manda un mensaje que el reporte no tiene paginas... es como si el archivo .jasper no se cargara. Espero una ayuda. gracias.

Anónimo dijo...

Excelente, muchas gracias, por esta contribucion.

mk dijo...

exelente aporte te felicito hermano

David dijo...

E TRATADO DE MODIFICAR EL PROYECTO AL MOMENTO DE SELECIONAR EL PRODUCTO SALE ID Y YO QUIERO Q SALGA EL NOMBRE DEL PRODUCTTO Y LA ID ABAJO ME GUSTARIA Q ME AYUDES ESPERO TU RESPUESTA SI LO MODIFICAS ESVIAME A MI BANDEJA MI MSN ES BYDREDAL.G18@HOTMAIL.COM

Anónimo dijo...

Gracias por compartir tus conocimientos me gusta mucho tu sitio, estoy aprendiendo mucho en cuanto a programación en java, talves puedas subir tus ejemplos en mediafire me sale más facil y rápido descargar desde ahi, aún asi gracias por tus aportes :)

matorral dijo...

Gracias Mouse.
Empiezo de cero en Java y tu aporte me soluciona la vida. Tengo un problemilla: en iFactura.java, en la linea 34
"reporte_view= JasperFillManager.fillReport( reporte, parametros, con.getConnection() );"
me da el aviso "cannot find symbol", y aunque me deja compilar y ejecutar la aplicación, no imprime la factura.
De todos modos, gracias por compartir tu sabiduría.
Un saludo.

matorral dijo...

Soy de nuevo matorral.
Perdona, pero no dije que el error me lo da en "parametros"
(cannot find symbol)
Saludos ;

matorral dijo...

Hola de nuevo.
He vuelto a instalar el proyecto y se soluciono el problema.
mil disculpas.

Anónimo dijo...

eres lo máximo chapulin!!!

Marko Perez dijo...

Hola necesita saber como cambiar tu factura... con el iReport ya la hice a mi modo, pero al sustituir el archivo en el codigo, nomas no aparece nada

Anónimo dijo...

hola mouse...tengo una consulta para saber como imprimir mi factura en un formato ya establecido...o sea que los datos se impriman en los campos correspondientes...desde ya muchas gracias por tus aportes

jc mouse dijo...

Para marco y el ultimo anonimo

Paea editar el reporte se hace uso de jaspert report, OJO con las versiones y con el nombre de las variables

Anónimo dijo...

Hola jc mouse ere muy bueno felicitaciones.
tengo un problema me sale k falta una libreria JasperReport y por ese motivo no corre la aplicacion :(
ayudame porfa.

jc mouse dijo...

Anonimo:

pues verifica que libreria te falta y la descargas de su pagina, ademas ten cuidado con las versiones de ireport

JHON EDWARD VASQUEZ dijo...

LO FELICITO POR ESOS APORTE DE MAESTROS DE LA PROGRAMACION Y CONOCIMIENTO

GRACIAS

Anónimo dijo...

Excelente proyecto eres un duro jcmouse, porfa no puedo descargar el proyecto. Puedes arreglar el link

jc mouse dijo...

revisando links

Anónimo dijo...

Hola jc! Te felicito porque eres muy bueno programando y porque nos regalas buen material. Tengo un proyecto pero no se mucho de programación java. Podrías ayudarme. Es sobre opentpv.

Anónimo dijo...

tengo un error en las siguientes lineas de "iFactura.java" :
import net.sf.jasperreports.engine.JRException;
.
.
.
import net.sf.jasperreports.view.JasperViewer;

JasperReport reporte;
JasperPrint reporte_view;

¿Alguna solución?
agradecria una respuesta
Saludos !

Anónimo dijo...

Rhino, Plataforma de Facturación Electrónica Orientada a Desarrolladores de Software http://rhino.nafiux.com/. Librerías para Java y PHP o directamente desde nuestro webservice.

william suarez dijo...

Muchas gracias por compartir el código; me ha sido de gran ayuda.

Vianey vargas morales dijo...

amigo Mouse podrias enseñar clases?? a Colombia ?? he trabajdo con java muy pero falta muchisimo por aprender mas de usted podrias?? darme clasees??
cuadramos el valor de la clase..
y le consigno a un numero de cuenta... porfavor

Vianey vargas morales dijo...

???? si puedes enseñar???
no tenes un proyecto de actualizacion de campos espeficos en dos o tres tablas mediante un JCombobox osea que cuando yo seleccione un nombre de un JCombobox automaticamente me lo actualize en la tabla ?? podrias??

mouse dijo...

para eso solo debes hacer uso de un listener en el combobox, cuando cambie el valor se realiza una nueva consulta y se atualiza el model del jtable :)

Vianey vargas morales dijo...

Amigo perdona pero no al JTable, sino a una tabla en la base de datos sql ??? que cuando seleccione un item del JComboBox me actualize un registro especifico en la base de datos. porfavor he luchado con eso hace varios díaz y no consigo como. porfavor mouse... si puedes y si lo tienes te agradezco muchisimo..

Anónimo dijo...

Excelente aporte!

Anónimo dijo...

111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111115555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555533333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777

RIGESCO90 dijo...

muchas gracias... muy buen aporte... implementado y funciona a la perfección... ahora a entender el codigo.

Mona Lisa dijo...

Hola que pena molestarte. Muchas gracias por tu aporte. Pero corriendo tu programa me sale un error.

package net.sf.jasperreports.engine does not exist

Ya agregue las librerias en la carpeta, pero sigue saliendo.

Mi correo es daniela.valencia@hotmail.es, te agradeceria tu ayuda.

Daniela V.

Anónimo dijo...

olas xfas me podrias enviar las instrucciones a mi correo por fas no lo puedo bajar :) estrella-luna_153@hotmail.com xfas te lo agradeceria ;)

neil alarcon quispe dijo...

hola Estimado que buen aporte agradezco que exista personas como tu

quiero hacerte una consulta me esta saliendo un error de que no e agregado una librería y esta librería es de reportes,a pesar agregue todas las librería que están en la carpeta librería que tu pones para descargar .
por favor agradezco de antemano tu ayuda
saludos

Victor Samayoa dijo...

no sirve el link porfavor ayuda =(

mouse dijo...

gracias por el aviso, revisare y resubire el link lo antes posible

Vianey vargas morales dijo...

Amigo Mouse no Tienes Proyectos WEB??? de Casualidad??? en java netbeans

Anónimo dijo...

hola no supe como usar la función imprimir ya que lo registra el producto al usuario. tengo que tener instalado el ireport porque me marca error es este:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
at java.lang.Class.getDeclaredField(Class.java:1897)
at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1639)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:69)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:467)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:455)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.(ObjectStreamClass.java:455)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:352)
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:589)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
para hacer la base de datos use el phpmyadmin

Anónimo dijo...

at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1685)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:498)
at net.sf.jasperreports.engine.base.JRBaseDataset.readObject(JRBaseDataset.java:401)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:498)
at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:812)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)

Anónimo dijo...

y asi sigue

mouse dijo...

claro, debes tener la libreria ireport instalada por eso tienes ese error

Anónimo dijo...

hola esta muy bueno tu codigo me ayudo con muchas dudas que tenia pero tengo una pregunta por que la factura la que se va a imprimir se modifica pero al ejecutarse sigue apareciendo la misma no se si solo me pasa ami espero tu respuesta y muchas gracias por el codigo

Anónimo dijo...

no sirve yo quiero el codigo Pys

Anónimo dijo...

Muy bueno el proyecto me ha ayudado mucho espero y sigas aportando mas de lo que es java, han ayudado mucho.
En cuanto tenga oportunidad pienso hacer lo mismo compartir lo que se

Ricardo dijo...

he intentado conectar a una base de datos donde he cargado datos en las tablas para probar sin embargo siempre me sale la lista de prodcutos y de clientes vacias o no disponibles y me sale esto

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Ricardo dijo...

ya resolvi lo de la base de datos, ahora lo que pasa es cuando le doy imprimir a la factura no aparecen las modificaciones que le hice al jrxml, cuando le doy imprimir sale de nuevo como estaba originalmente

Post recomendado