Galera é o seguinte, eu queria saber se tem como eu configurar, o root, senha, driver, url do banco, querys e etc. do IReport direto do .java. Será que é possivel ? Se sim, podem dizer como configuro ? abraços
Configurando IReport pelo codigo java
V
1 Resposta
A
cara,
vc ja pode passar uma lista de objeto que vc retornou de uma consulta, isso te evita passar as configurações do banco para o ireport. segue um exemplo que faz isso.(Está baseado em JSF, mas vc pode adapta-lo para qualquer framework)
public static void imprimir(JRBeanCollectionDataSource ds, String reportUrl, Map<String, Object> parametros){
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
OutputStream os = null;
try {
String reportUrlReal = request.getSession().getServletContext().getRealPath("relatorio" + File.separator + reportUrl);
JasperPrint jasperPrint = JasperFillManager.fillReport(reportUrlReal, parametros, ds);
byte[] pdf = JasperExportManager.exportReportToPdf(jasperPrint);
os = response.getOutputStream();
response.setContentType("application/pdf");
response.setContentLength(pdf.length);
response.setHeader("Content-disposition","attachment; filename=\""+ reportUrl.substring(0, reportUrl.length() - 7)+ ".pdf\"");
os.write(pdf);
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(os != null){
os.close();
}
facesContext.responseComplete();
} catch (IOException e) {
e.printStackTrace();
}
}
}
t+
Criado 23 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 1
Participantes 2