Foros del Web » Programación para mayores de 30 ;) » Java »

iReport crear campos tipo List

Estas en el tema de iReport crear campos tipo List en el foro de Java en Foros del Web. Hola buenas y ante todo dar la enhorabuena por este foro tan completo. Bueno tengo un problema y haber si me podeis ayudar. Pues tengo ...
  #1 (permalink)  
Antiguo 20/10/2008, 07:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
iReport crear campos tipo List

Hola buenas y ante todo dar la enhorabuena por este foro tan completo.

Bueno tengo un problema y haber si me podeis ayudar. Pues tengo un bean que mando a mi Report que contiene dos campos uno de tipo String y otro de tipo Collection, al intentar pintar la lista siempre me da un error. Haber si alguien me puede orientar y decirme como tengo que declarar en el iReport el campo para que me lo pinte bien.

Un Saludo y Gracias de ante mano.
  #2 (permalink)  
Antiguo 20/10/2008, 08:12
 
Fecha de Ingreso: julio-2008
Mensajes: 25
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: iReport crear campos tipo List

debes declararlo como

$F{Field} y en el codigo de java pasarle tu coleccion como un hashmap,

se me olvidaba...

aquie un link con buenisimos ejemplos

http://www.crysfel.com/index.php/2008/01/21/generar-reporte-de-una-coleccion-de-beans-con-jasperreport/
  #3 (permalink)  
Antiguo 21/10/2008, 07:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Respuesta: iReport crear campos tipo List

ok Gracias. Pero lo que yo necesito es pintar una lista que esta dentro del Bean ejemplo:

private String nombre;
private String ape;
private String direc;
private List lista;
etc.....
donde lista contine a su vez una lista de bean de donde tengo que sacar un campo.

Gracias por todo.
  #4 (permalink)  
Antiguo 21/10/2008, 08:19
 
Fecha de Ingreso: julio-2008
Mensajes: 25
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: iReport crear campos tipo List

Sip a eso me refiero, el ireport recibira el hashmap como objeto y lo recorrera, asi deberia ser...

te funciono??

es decir esta listo??
  #5 (permalink)  
Antiguo 22/10/2008, 01:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Respuesta: iReport crear campos tipo List

Ante todo muchas gracias que ya me estoy poniendo mu pesao y un poco torpe.

La verdad es qu no me funciona nada.
Yo utilizo el siguiente codigo:

Map pars = new HashMap();
try{
//1-Llenar el datasource con la informacion de la base de datos
dataSource = new JRBeanCollectionDataSource(datos);


File reportMaestro = new File(fileNameTmp);
File reportSub = new File(fileNameTmpSub);

jasperReport = (JasperReport) JRLoader.loadObject(reportMaestro);
jasperSubReport = (JasperReport) JRLoader.loadObject(reportSub);

pars.put("SUBREPORT", jasperSubReport);


//3-Llenamos el report con la información de la colección y parámetros necesarios para la consulta
jasperPrint = JasperFillManager.fillReport(jasperReport, pars, new JRBeanCollectionDataSource(datos));

byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint) ;
bai = new ByteArrayInputStream(bytes);

//Establecer los parámetros para la descarga
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename="+namePDF);
response.setHeader("Cache-Control", null);
response.setContentLength(bytes.length);

//Obtener el flujo de salida
svo = response.getOutputStream();
//Crear buffer de lectura
byte[] array = new byte[(int)2048];
//Número de bytes a leer
int length = bytes.length;
//Contador de bytes leidos en total
int offset = 0;
//Número de bytes leido del buffer
int numRead = 0;

//Recorrer el flujo de lectura y escribir en el flujo de salida
while (offset < length && (numRead = bai.read(array)) >= 0) {

offset += numRead;
if(numRead<array.length){
svo.write(array, 0, numRead);
}else{
svo.write(array, 0, array.length);
}
}
//Vacia el flujo de salida
svo.flush();
//Cerrar el flujo de salida
svo.close();
//Cerrar flujo de lectura
bai.close();
}catch (JRException e) {
error(e.getMessage());
}catch (IOException e) {
error(e.getMessage());
}catch (Exception e){
error(e.getMessage());
}finally{
try {
if(svo!=null)
//Cerrar el flujo de salida
svo.close();
if(bai!=null)
//Cerrar flujo de lectura
bai.close();
} catch (IOException e) {
error(e.getMessage());
}
}

Pero el subreport no me lo pinta. He cambiado en codigo en algunas cosas pero tampoco me funciona lo maximo ha sido pintar el texto estatico del subreport pero no los campo que necesito.

Si puedieras mandarme un ejemplo de codigo y jrxml o algo por que estoy ya loco y esto no funciona para nada. Mi correo es [email protected]

Mis mas sinceros saludo y gracias de todas formas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:14.