Hola mi duda es la siguiente, tengo un reporte generado con iReport,
ya esta compilado y depositado en una ruta especifica, en mi tengo una
interfaz y lo quiero mandar a imprimir por medio de un JButton, tengo
mi clase que hace la conexion a la BD y mi un metodo que busca el
reporte y lo visualiza, en la clase del boton tengo su metodo
respectivo y el llamdo a del metodo de impresion de la clase
impresion, pero no lo visualiza, alguan sugerencia o alguna opcin de
como llamarlo o visualizar lo por medio de un boton.
Por su atencion gracias
--- En ServerJavaMexico@yahoogrupos.com.mx, "cpp21crow"
<cpp21crow@...> escribió:
>
> Hola mi duda es la siguiente, tengo un reporte generado con iReport,
> ya esta compilado y depositado en una ruta especifica, en mi tengo
una
> interfaz y lo quiero mandar a imprimir por medio de un JButton,
tengo
> mi clase que hace la conexion a la BD y mi un metodo que busca el
> reporte y lo visualiza, en la clase del boton tengo su metodo
> respectivo y el llamdo a del metodo de impresion de la clase
> impresion, pero no lo visualiza, alguan sugerencia o alguna opcin de
> como llamarlo o visualizar lo por medio de un boton.
>
> Por su atencion gracias
>
Puedes hacer una clase que herede de Thread o implemente la interfaz
Runnable, en esta clase se puden relizar todo lo que el reporte
necesite para ser lanzado y el metodo que llame el boton de imprimir
hara un objeto de esta clase e iniciara el hilo. Te escribo algo de
codigo para que se entienda mejor.
public class Reporte implements Runnable{
Connection con;
public Reporte(Connectio con){
this.con = con ; //de esta manera mandamos la coneccion
}
public void run() {
try{
//inicializamos la rtua
String rutaReporte = "unaRuta/unReporte.jasper";
//Si existen parametros los mandamos por un Hash
HashMap parametros = new HashMap();
parametros.put("PARAMETRO_UNO", new Integer(1));
parametros.put("PARAMETRO_DOS",new Integer(2));
//los parametros pueden ser de cualquier tipo
//empezamos con jasper
//Mandamos los datos al Jasper
JasperPrint jasperPrint = JasperFillManager.fillReport(rutaReporte,
parametros,con);
//Mnadamos al Viewer
JasperViewer jviewer = new JasperViewer(jasperPrint,false);
//Lo mostramos
jviewer.setVisible(true);
}catch(Exception e){
System.err.println("Error al lanzar el reporte");
}
}
}
Hasta aqui es el reporte
Ahora el metodo que sera invocado por el boton
private void buttonImprimir(){
Reporte reporte = new Reporte(con) //recurden que mandamos la
coneccion
Thread hilo = new Thread(reporte)
thilo.start();
}
Eso seria todo, el boton mandaria ejecutar el reporte en un hilo
aparte, el cual generara nuestro reporte y terminara.
Saludos y suerte.