opa estava gerando relatorio com apenas um lista de objetos mas agora surgiu a necessidade de fazer com duas…
estou fazendo assim
[code]JasperReport pathReport = JasperCompileManager.compileReport(caminho);
JasperPrint preencher = JasperFillManager.fillReport(pathReport, null, new JRBeanCollectionDataSource(relatoriosOs));
JasperExportManager.exportReportToPdfStream(preencher, responseStream);[/code]
tentei fazer assim mas não deu certo
JasperReport pathReport = JasperCompileManager.compileReport(caminho);
JasperPrint preencher = JasperFillManager.fillReport(pathReport, null, new JRBeanCollectionDataSource(relatoriosOs));
preencher = JasperFillManager.fillReport(pathReport, null, new JRBeanCollectionDataSource(servicos));
JasperExportManager.exportReportToPdfStream(preencher, responseStream);
alguem sabe como posso fazer?
Eu não tenho certeza em relação a isso mas não seria o caso passar as listas como parametros?!
isso mesmo… eu gero um relatorio a partir de duas listas de objetos que eu passo… desse jeito aki as vezes da certo as vezes da pau
JasperPrint preencher = JasperFillManager.fillReport(pathReport, null, new JRBeanCollectionDataSource(relatoriosOs));
preencher = JasperFillManager.fillReport(pathReport, null, new JRBeanCollectionDataSource(servicos));
No caso sendo feito dessa forma são gerados dois relatorios e não um com as duas listas o que eu tava falando era passar as listas dentro de um map que depois seria passado como parametro para o relatorio.
entao tava vendo mesmo que dava pra fazer assim, mas nunca usei hasmap, c tem algum tuturial que explique como trabalhar com ele? grato
Ele é bem simples de trabalhar é só criar uma instancia dele e os dados seram associados a uma chave, e a partir delas podem ser recuperados diretamente. Vou fazer um exemplo simples de como ficariam os parametros para serem passados para o teu relatorio;
// cria uma instancia de map onde o primeiro parametro é a chave e o
// segundo o objeto que ela representa, no caso para o ireport a
// chave será o nome do parametro
Map<String, Object> map = new HashMap<String, Object>();
// as duas listas que no seu caso vão ser criadas de outra forma
List<Object> lista1 = new ArrayList<Object>();
List<Object> lista2 = new ArrayList<Object>();
// e para adicionalas ao map é só usar o put, passado a chave e o
// objeto
map.put("lista1", lista1);
map.put("lista2", lista2);
// e para recuperar é só utilizar o nome da chave
List<Object> novaLista = (List<Object>) map.get("lista1");
No ireport no é só ir no ireport inspector e criar parametros com os mesmos nomes que foram dados as listas e modificar o seu tipo para list
dexa eu ver se entendi
aki eu vou fazer assim agora
JasperPrint preencher = JasperFillManager.fillReport(pathReport, null, new JRBeanCollectionDataSource(map));
e no relatorio vou mudar o tipo para list como?