Tenho um relatório que não usa banco de dados como fonte, e sim um arquivo xml.
Gostaria de saber como chamar o relatório a partir do java, lembrando que não devo passar o atributo conexão pois a fonte de dados é um xml.
Olá,
Há um método fillReport, da classe JasperFillManager que não recebe uma Connection como parâmetro.
Dê uma olhada aqui:
http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JasperFillManager.html
[ ]'s
Valeu, fiz aqui só que de outro jeito, como eu tava passando um xml o parametro a se passar não é uma connection e sim um JRXmlDataSource.
Pra criar um JRXmlDataSource, é assim:
JRXmlDataSource xmlDataSource = new JRXmlDataSource(doc, recordPath);
Aonde o doc é um Document, criado assim:
Document doc = db.parse(“C:/caminhoDoArquivoXML.xml”);
E recordPath é o caminho que pode ter varios itens, no meu caso:
String recordPath = “/enviNFe/NFe/infNFe/det”;
Aí pra chamar o relatório foi so trocar a connection por esse objeto novo, então ficou assim:
JasperPrint rel = JasperFillManager.fillReport(“c:/arquivoRelatorio.jasper”, new HashMap(), xmlDataSource);
Botei bem explicadinho pois se tiver gente com a mesma duvida vai ajudar bastante, eu quebrei a cabeça pra descobrir como se fazia.