Cita:
Iniciado por antony_fire Hola a todos...
Como hago un reporte sin enviar la conexion, solo enviando parametros
Gracias de antemano
Citando la pregunta anterior y dado que la respuesta no fue muy clara (bueno por lo menos para mi no
). Espero ampliar un poco más lo dicho por inydesystem. Anexo Ejemplo:
File reportFile = new File(application.getRealPath("/reportes/solictud2.jasper"));
if (!reportFile.exists())
throw new JRRuntimeException("File solicitud2.jasper no fue encontrado.");
Map parameters = new HashMap();
parameters.put("Nombre",nombre);
parameters.put("Ficha",ficha);
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), parameters,
new JREmptyDataSource());
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
//**************FIN EJEMPLO***************//
Como observamos en el ejemplo, esto es para generar un PDF y la clave esta en el
new JREmptyDataSource(), ya que este si observamos el API, dice:
A simple data source implementation that simulates a data source with a given number of virtual records inside. It is called empty data source because even though it has one or more records inside, all the report fields are null for all the virtual records of the data source. Traducido: Implementación de un origen de datos simple que simula una fuente de datos con un número virtual de registros. Esta es llamada vacía porque aunque tiene uno o más registros, todos los campos del reporte son null para todos los registros virtuales del origen de datos.
Bueno espero sirva de algo, yo así lo trabaje y me funciono bastante bien.