Como chamar Relatório Ireport passando valores dos parâmetros na aplicação java

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);

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

Como ficou seu código?

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);

tenta com isso, estou usando assim

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(caminho);  

no lugar desse

JasperReport relatorio = JasperCompileManager.compileReport(caminho);

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);

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);

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

deve ser, essa solução eu fiz para web