Olá Pessoal!
Eu sei que esse assunto é bem batido aqui, mas as coisas que eu achei sobre isso eram antigas,… acho q o reports já tem recursos para facilitar o trabalho…
O que quero fazer é passar um ArrayList de primitivos para o IReports ( mais simples impossivel… :oops: )…
Meu metodo está assim :
public void gerarRelatorioRTF( Map <String, Object> parameters, List<Veiculo> veiculoList, String nomeRelatorio){
try{
InputStream reportStream = this.getClass().getResourceAsStream("/WEB-INF/relatorio/" + nomeRelatorio);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(veiculoList);
JasperPrint jasperPrint = JasperFillManager.fillReport(reportStream, parameters, ds);
JRRtfExporter rtfExporter = new JRRtfExporter();
rtfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
rtfExporter.exportReport();
}catch(Exception e){
}
}
Bem simples…
nem ta completo ainda a parte de exportar…
Oq eu quero saber é como eu pego isso lá dentro…
Vi uma opcoes de montar subRelatorio… isso é completamente necessario?
O reports já possui um parametro chamado $P{REPORT_DATA_SOURCE}
Se vc for criar uma expressao com ele, ele te oferece dois metodos, o next() e o getFieldValue(JRField)
Me parecia perfeito… mas eu nao sei oq exatamente passar nesse JRField… achei q seria a string com o nome do camo relacioando ao objeto veiculo… mas nao era isso…
Se vc for fazera expressao automatica, dá isso:
$P{REPORT_DATA_SOURCE}.getFieldValue( net.sf.jasperreports.engine.JRField )
Estou seguindo pelo caminho errado? Acho q esse jeito deve ser bem mais facil de fazer…
Aguardo sugestoes…
Obrigado!
