Hola, les traigo una pequeña guía de como diseñar un reporte en iRepots usando como conexión datos de una JTable y no de una conexión a la base de datos.
Lo primero es tener un modelo de una tabla el cual convertiremos a un JRTableModelData
Supongamos que tenemos una tabla con dos columnas las cuales se llaman Producto y Total:
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:
JasperReport nuestroreporte = null;
Podemos agregar parametros usando un HashMap:
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:
JRTableModelDataSource jrtmd = new JRTableModelDataSource( nuestratabla.getModel() );
Cargamos nuestro diseño:
nuestroreporte = (JasperReport) JRLoader.loadObject(rutadenuestroreporte);
Rellenamos el diseño pasándole como parámetros las variables anteriores:
JasperPrint jasperPrint = JasperFillManager.fillReport(nuestroreporte, p, jrtmd);
En el Diseño del Reporte solo 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.
Lo primero es tener un modelo de una tabla el cual convertiremos a un JRTableModelData
Supongamos que tenemos una tabla con dos columnas las cuales se llaman Producto y Total:
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:
JasperReport nuestroreporte = null;
Podemos agregar parametros usando un HashMap:
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:
JRTableModelDataSource jrtmd = new JRTableModelDataSource( nuestratabla.getModel() );
Cargamos nuestro diseño:
nuestroreporte = (JasperReport) JRLoader.loadObject(rutadenuestroreporte);
Rellenamos el diseño pasándole como parámetros las variables anteriores:
JasperPrint jasperPrint = JasperFillManager.fillReport(nuestroreporte, p, jrtmd);
En el Diseño del Reporte solo 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):