Pessoal desculpa, vim pedir ajuda, depois de tanto tempo, porem é o único post que achei na internet sobre este assunto
Bom,l estou fazendo um relatorio dinamicamente com o JasperReport mais não aparece nada
Veja o código
JasperDesign
private JasperDesign getJasperDesign(List<JFreeChart> freesCharts)
throws JRException {
JasperDesign design = new JasperDesign();
design.setName("RelatorioGraficoSimilaridade");
design.setPageWidth(1100);
design.setPageHeight(600);
design.setColumnCount(1);
design.setColumnWidth(540);
design.setColumnSpacing(0);
design.setLeftMargin(0);
design.setRightMargin(0);
design.setTopMargin(0);
design.setBottomMargin(0);
JRDesignBand titulo = new JRDesignBand();
titulo.setHeight(70);
JRDesignStaticText staticText = new JRDesignStaticText();
staticText.setX(170);
staticText.setY(18);
staticText.setWidth(300);
staticText.setHeight(32);
staticText.setFontName("Tahoma");
staticText.setPdfFontName("Helvetica-Bold");
staticText.setFontSize(24);
staticText.setBold(true);
staticText.setHorizontalAlignment(HorizontalAlignEnum.CENTER);
staticText.setText("Relatório Grafico Similaridade");
titulo.addElement(staticText);
design.setTitle(titulo);
JRDesignBand colunaCabecalho = new JRDesignBand();
JRDesignBand detalhe = new JRDesignBand();
for (int i = 0; i < freesCharts.size(); i++) {
JRDesignParameter parametro = new JRDesignParameter();
String nomeParametro = i + "imagem";
parametro.setName(nomeParametro);
parametro.setValueClass(java.awt.Image.class);
design.addParameter(parametro);
JRDesignImage image = new JRDesignImage(design);
image.setX(100);
image.setY(0);
image.setHeight(151);
image.setWidth(201);
JRDesignExpression expression = new JRDesignExpression();
expression.setValueClass(Image.class);
expression.setText("$P{" + nomeParametro + "}");
image.setExpression(expression);
detalhe.setHeight(200);
detalhe.addElement(image);
}
design.setColumnHeader(colunaCabecalho);
design.setDetail(detalhe);
return design;
}
gerarRelatorio
public void gerarRelatorio() {
ServletOutputStream ouputStream = null;
List<JFreeChart> freesCharts = this.gerarGraficos(); (Obs: este metodo gera as imagens corretas pois ja fiz teste unitario)
try {
JasperDesign desenho = getJasperDesign(freesCharts);
JasperReport relatorio = JasperCompileManager.compileReport(desenho);
Map<String,Object> parametro = new HashMap<String,Object>();
for (int i = 0 ; i < freesCharts.size(); i++) {
Image imagem = freesCharts.get(i).createBufferedImage(200, 150);
String nomeParametro = i+"imagem";
parametro.put(nomeParametro, imagem);
}
JasperPrint relatorioFinal = JasperFillManager.fillReport(relatorio, parametro);
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.addHeader("Content-Disposition","attachment; filename=RelatorioGraficoSimilaridade.pdf");
ouputStream = response.getOutputStream();
JRPdfExporter exporterPdf = new JRPdfExporter();
exporterPdf.setParameter(JRPdfExporterParameter.JASPER_PRINT, relatorioFinal);
exporterPdf.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, ouputStream);
exporterPdf.exportReport();
facesContext.responseComplete();
ouputStream.flush();
} catch (IOException ex) {
ex.printStackTrace();
} catch (JRException ex) {
ex.printStackTrace();
} finally {
if (ouputStream != null) {
try {
ouputStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Pessoal o relatório apenas gera um folha em branco , nem o título ele está gerando, alguem sabe o que pode ser?
Desta ja agradeço