hola.
La solicitud de ayuda es para ver si alguien puede orientarme con lo siguiente, tengo que crear un datasource que tiene un arraylist de hashmap donde va la informacion este array debe llegar al subreporte y he buscado pero no se como hacerlo.
aca tengo un codigo con el que en la jsp creo el datasource (no se si este bien).
Código:
//////datasource jasper
ArrayList listaMaestro = new ArrayList();
int i = 0;
Map parameters = new HashMap();
parameters.clear();
parameters.put("logo", this.getClass().getResourceAsStream(logotipo));
parameters.put("CC", "prueba pdf");
parameters.put("referencia", "otra valor");
parameters.put("i", new Integer(i));
listaMaestro.add(parameters);
JRMapCollectionDataSource dataSource;
Collection reportRows = listaMaestro;
dataSource = new JRMapCollectionDataSource(reportRows);
///creo el data source
Aca tengo el codigo del array que envio como parametro y que contiene el hasmap que quiero pintar en el subreporte y enivo los datos al reporte padre
Código:
Map dos = new HashMap();//datos que quiero pasar al subreporte
dos.put("uno", "un valor");
dos.put("dos", "dos valor");
ArrayList sub = new ArrayList();
sub.add(dos);
Collection subdos = sub;
Map enviar = new HashMap();
enviar.put("subdos", subdos);
///
File reportFile = new File(application.getRealPath("/taller4/reporte/report1.jasper"));
String dir = reportFile.getPath().toString();
byte[] bytes = null;
try {
bytes = JasperRunManager.runReportToPdf(dir, enviar, dataSource);
} catch (Exception ex) {
ex.printStackTrace();
}
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
y por ultimo en el ireport del reporte padre al hijo le digo que la
coneccion es "Use datasource expression" y en
Datasurce expression "new net.sf.jasperreports.engine.data.JRMapCollectionDa taSource($P{subdos})"...
Pregunta... Esta bien enviar el parametro de esta manera al subreporte o como se hace??(soy nuevo en esto)
Como recibiria este parametro en el subreporte?? y como lo utilizo para pintarlo.
he buscado bastante en la red pero no he encontrado la solucion.
si hay algun error o una mejor forma de hacerlo o correcta les agradeceria me orientaran.
saludos.