Llamar reporte iReport en aplicación de escritorio

Estoy iniciando en Java, acabo de hacer un reporte con JasperReport en una aplicación de escritorio, solo me falta como llamar a ese reporte para visualizarlo y/o imprimirlo, intente buscando en google con diferentes ejemplos que muestran, solo que no logre que con un botón llamara el reporte.

1 Respuesta

Respuesta
1

En este ejemplo me refiero a un reporte que muestra información a través de una conexión a BD:
...
Connection conexión = null;
conexión = (Connection) DriverManager.getConnection(getCadena(), user, pass);
JasperReport reporte = null;
reporte = (JasperReport) JRLoader.loadObject("/dirección/del/jasper");
Map parámetros = new HashMap();
//en este mapa agregas todos los parámetros que use el reporte.
JasperPrint jasperPrint = null;
jasperPrint = JasperFillManager.fillReport(reporte, parámetros, conexión);
//Ahora puedes elegir como lanzar tu reporte, en el caso de una aplicación puedes lanzar el JasperViewer o puedes exportar el reporte a algún formato y abrirlo con el editor por defecto del usuario, aquí te pongo el ejemplo de el JasperViewer y de como enviarlo con excel
if (excel) {
//lanzo el excel
File f = File.createTempFile(report.substring(0, report.lastIndexOf(".")), ".xls");
JRXlsExporter exporter2 = new JRXlsExporter();
exporter2.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter2.setParameter(JRExporterParameter.OUTPUT_FILE, f);
exporter2.exportReport();
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + f.getAbsolutePath());
} else {
JasperViewer jv = new JasperViewer(jasperPrint, false);
jv.setTitle(titulo);
this.dialogo.dispose();
jv.setVisible(true);
jv.setIconImage(null);
}
...

Agradezco la información,ya logre mostrar el reporte con el ejemplo que mencionas, solo que ahora me queda otra duda, necesito crear una factura, los datos del cliente lo tengo en na tabla, los consecutivos de la factura están en otra, y por ultimo el detalle de la misma esta en otra, me podrías dar una idea como unir las 3 tablas que están en la misma base de datos de mysql para generar el reporte, agradezco tu apoyo, espero haberme explicado bien.

Me alegro que haya servido, bien con respecto a lo de ahora es también sencillo claro esta, si es que entendí bien la pregunta, desde el propio iReport o el diseñador que hayas usado tienes que realizar una consulta SQL que te traiga los datos de las tres tablas a las que haces referencia podría ser algo así

Select tabla1.campo1, tabla2.campo1, tabla3.campo1,.... from Tabla1 tabla1, Tabla2 tabla2, Tabla3 tabla3,.... Where <cualquier filtro aquí>

Esta es la forma sencilla, pero igual puedes usar joins ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas