como faço para chamar um relatório ireport passando os paramentos na aplicação ?
estou utilizando o JPA para conexão com o banco.
estou conseguindo chamar o relatório, mas não estou conseguindo passar os parâmetros.
código chamar relatório
String caminho = new File("./Relatorios/Relatorio_Funcionario/Relatorio_Funcionario_total.jrxml").getAbsolutePath();
JasperReport relatorio = JasperCompileManager.compileReport(caminho);
JRBeanCollectionDataSource dados = new JRBeanCollectionDataSource(list, false);
JasperPrint print = JasperFillManager.fillReport(relatorio, null, dados);
JasperViewer viw = new JasperViewer(print, false);
viw.setVisible(true);
DougF
#2
ola,
segue um exemplo, crie um map e passe os valores
Map <String, String> parametros = new HashMap <String, String> ();
parametros.put("modulo", form.getModulo());
parametros.put("data", Utils.obterDataAtual());
parametros.put("hora", Utils.obterHoraAtual());
//Nesta linha que voce esta passando null, passe o parametro
JasperPrint print = JasperFillManager.fillReport(relatorio, null, dados);
ficando assim
JasperPrint print = JasperFillManager.fillReport(relatorio, parametros, dados);
Fiz da forma que você disse mas gera um erro nessa linha
JasperPrint print = JasperFillManager.fillReport(relatorio, parametros, dados);
erro:
Exception in thread “AWT-EventQueue-0” java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: net.sf.jasperreports.engine.JasperFillManager.fillReport
String departamento = String.valueOf(jComboBox1.getSelectedItem());
try {
Map <String, String> parametros = new HashMap <String, String> ();
parametros.put("Departamento", departamento);
String caminho = new File("./Relatorios/Relatorio_Funcionario/Relatorio_Funcionario_total.jrxml").getAbsolutePath();
JasperReport relatorio = JasperCompileManager.compileReport(caminho);
JRBeanCollectionDataSource dados = new JRBeanCollectionDataSource(list, false);
JasperPrint print = JasperFillManager.fillReport(relatorio,parametros , dados);
JasperViewer viw = new JasperViewer(print, false);
viw.setVisible(true);
} catch (JRException ex) {
Logger.getLogger(Cad_Funcionario.class.getName()).log(Level.SEVERE, null, ex);
DougF
#6
tenta com isso, estou usando assim
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(caminho);
no lugar desse
JasperReport relatorio = JasperCompileManager.compileReport(caminho);
DougF
#7
Map <String, String> parametros = new HashMap <String, String> ();
parametros.put(“Departamento”, departamento);
InputStream caminho = new File("./Relatorios/Relatorio_Funcionario/Relatorio_Funcionario_total.jrxml").getAbsolutePath();
JasperReport relatorio = (JasperReport) JRLoader.loadObject(caminho);
JRBeanCollectionDataSource dados = new JRBeanCollectionDataSource(list, false);
JasperPrint print = JasperFillManager.fillReport(relatorio,parametros , dados);
JasperViewer viw = new JasperViewer(print, false);
viw.setVisible(true);
Ta gerando erro no InputStream
Uncompilable source code - incompatible types: java.lang.String cannot be converted to java.io.InputStream
olha como ficou meu código
Map parametros = new HashMap ();
parametros.put(“Departamento”, “smas”);
InputStream caminho = new File("./Relatorios/Relatorio_Funcionario/Relatorio_Funcionario_total.jrxml").getAbsolutePath();
JasperReport relatorio = (JasperReport) JRLoader.loadObject(caminho);
JRBeanCollectionDataSource dados = new JRBeanCollectionDataSource(list, false);
JasperPrint print = JasperFillManager.fillReport(relatorio, parametros, dados);
JasperViewer viw = new JasperViewer(print, false);
viw.setVisible(true);
DougF
#9
veja se o caminho esta correto
sim esta correto
o netbeans pede pra converter InputStream para String
e quando coloco com String da Erro nessa linha
JasperReport relatorio = (JasperReport) JRLoader.loadObject(caminho);
DougF
#11
InputStream jasperFile = getServlet().getServletContext().getResourceAsStream("/componentes/jasperReport/meuRelatorio.jasper");
JRBeanCollectionDataSource jrds = new JRBeanCollectionDataSource(form.getListaSaldoContabil());
Map<String, String> parametros = new HashMap<String, String>();
parametros.put("modulo", "58885");
parametros.put("data","10/02/2017");
parametros.put("hora", "14:35")
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile);
JasperPrint jPrint = JasperFillManager.fillReport(jasperReport , parametros, jrds);
JasperExportManager.exportReportToPdf(jPrint);
O meu esta assim
meu parceiro acho que não informei la em mas minha aplicação e desktop
acho que por isso o código não ta dando certo
DougF
#14
deve ser, essa solução eu fiz para web