Hola, les traigo una sencilla guía de cómo diseñar un reporte en iReports usando como conexión, datos de una JTable y no de una conexión a la base de datos. iReport es un diseñador de reportes open source.
Lo primero es tener un modelo de una tabla, el cual convertiremos a un RTableModelDataSource:
Supongamos que tenemos una tabla con dos columnas las cuales se llaman Producto y Total:
Código :
TEstadisticas.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
TEstadisticas.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {},
new String [] {
"Producto", "Total"
}
) {
boolean[] canEdit = new boolean [] {
false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});Creamos el reporte:
Código :
JasperReport nuestroreporte = null;
Podemos agregar parametros usando un HashMap:
Código :
Map parametro = new HashMap();
parametro.put("ParametroenelReportetipoString", (String)parametroaagregardelmismotipoqueeldiseño);Obtenemos el modelo de la tabla que será la conexión que enviaremos al reporte:
Código :
JRTableModelDataSource jrtmd = new JRTableModelDataSource( nuestratabla.getModel() );
Cargamos nuestro diseño:
Código :
nuestroreporte = (JasperReport) JRLoader.loadObject(rutadenuestroreporte);
Rellenamos el diseño pasándole como parámetros las variables anteriores:
Código :
JasperPrint jasperPrint = JasperFillManager.fillReport(nuestroreporte, p, jrtmd);
En el diseño del reporte sólo tenemos que agregar en el área de Fields los nombres de las columnas de la tabla y ponerlos en sus respectivos lugares en el diseño para que sean rellenados.
Estuve buscando en la web y no encontré información acerca de cómo diseñar esto, espero esto sirva a más de alguno.
Les dejo un preview del diseño (algo sencillo):


Por angerrising el 18 de Noviembre de 2011
Por edcolco el 18 de Noviembre de 2011
Por asekuros el 08 de Marzo de 2012