Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/10/2008, 01:49
joseldb
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 7 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