Como acessar o IReport através de um formulário Java?

10 respostas
K

Oi pessoal,

Sou eu denovo kkkkk. Estou meio desesperado ja, tentando resolver problemas de impressao e relatorios pelo java a dias.
Postei alguns topicos esses dias, sobre java Poi, desisti, nao ficou do jeito que eu quero, até consegui criar mas é muito confuso. Ai migrei pro Ireport gostei muito.
O relatorio .jasper ficou otimo, acessou meu banco de dados, mas agora o que eu quero saber, é como utilizar ele pelo formulario do java, acessado por um botao dentro do formulario.

Eu ja instalei tudo, criei o relatorio mas nao consigo acessar e nem criar o relatorio direto pelo java.

Alguem me da um help ai, ja ta ficando meio doido com isso.

10 Respostas

ViniGodoy

Oi. Dê títulos descritivos ao tópico.
O título “Ajudaaa” pode não chamar a atenção de quem sabe a resposta, e pode frustar muita gente que não sabe, e entra no tópico.

Já alterei o título desse tópico para algo melhor, mas na próxima, capriche você, ok? :wink:
Um número muito grande de tópicos aqui fica sem resposta justamente por conterem um título muito ruim.

J-Chist

Kaiser, você precisa acessar o arquivo .jrxml que o iReport gera a partir de sua classe Java . Você precisa também colocar os jars do iReport no seu classpath. Tem um tutorial aqui bem esclarecedor:
www.furutani.eti.br/tutoriais/Mini-Tutorial_Relatorios_Java_JasperReports_e_iReport.pdf
Qualquer coisa, poste aí.

worldsoft

Cara eu acho muito mais simples acessar o relatório pelo arquivo compilado *.jasper. Basta apenas estar com os arquivos *.jar do jasper intalado no seu projeto. Ai vai um codigo de exemplo para você.

public void getMostraRelatorio(String file,Map Parametros,ResultSet rs){ //São apenas três parametros.
               //1° O nome_do_arquivo.jasper
               //2° Um objeto do tipo Map.
               //3° um objeto do tipo ResultSet com o resultado de uma pesquisa no Banco.   
     try {
          
	 JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);   
         JasperPrint impressao = JasperFillManager.fillReport(file , Parametros, jrRS );

         JasperViewer.viewReport(impressao, false);        
        
     } catch (JRException ex) {
  
         Logger.getLogger(Funcoes.class.getName()).log(Level.SEVERE, null, ex);      

     }   

}
K

Oi JChist,

Obrigado pela ajuda amigo, mas o link que me enviou do tutorial está quebrado.
Se tiver outro link que possa me ajudar ficaria grato.

Abs

K

WordSoft,

Tentei usar seu codigo mas nao entendi oq é o parametro de object Map?

Poderia me mandar um codigo seu para eu poder analisar.

Vlw

worldsoft

Objetos do tipo Map é quando você cria parametros dentro de seu relatório e precisa-se passar esses parametros de sua aplicação Java para o relatório ai voce pode criar algo assim:

Map parametros = new HashMap(); //Aqui voce cria um objeto Map parametros.put("Nome_Parametro",Valor_Objeto) // aqui voce passa o valor para o seu parametro que está no relatorio. getMostraRelatorio("Nome_Arquivo.jasper",parametros,ResultSet);// aqui voce chama o metodo. //caso não tenha que passar nenhum parametro para o relatorio então voce chama o metodo assim getMostraRelatorio("Nome_Arquivo.jasper",null,ResultSet);

Espero ter ajudado :shock:

J-Chist

Eu prefiro usar o .jrxml, mas sei lá, vai ver o .jasper é mais fácil mesmo.

K

oi pessoal

Consegui finalmente acessar, usando esse codigo

public void conexao() {    
		try {    
		if (con == null || con.isClosed()) {    
			Class.forName("com.mysql.jdbc.Driver");
			con = (Connection) DriverManager.getConnection("jdbc:mysql://banco","usuario","senha");    
		}    
		} catch (Exception e) {    
		System.out.println("não foi possível conectar ao banco ->");    
		e.printStackTrace();    
		}    
		}    
		 	
	private class ActionImprimirEmpresa implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent arg0) {

			if (empresaTextNumeroProc.getText().length() == 0) {
				JOptionPane.showMessageDialog(null,
						"Para impressão é necessario selecionar a Empresa", "Erro!",
						JOptionPane.ERROR_MESSAGE);
				return;
			} 
		    else{
		    	
		    	conexao(); 
		    	
		    	String arq = "\\\\guiche2\\rede\\Empresas.jrxml";   
		    	
		    	InputStream input = null;
				try {
					input = new FileInputStream(new File(arq));
				} catch (FileNotFoundException e3) {
					// TODO Auto-generated catch block
					e3.printStackTrace();
				}   
		    	JasperDesign design = null;
				try {
					design = JRXmlLoader.load(input);
				} catch (JRException e2) {
					// TODO Auto-generated catch block
					e2.printStackTrace();
				}   
		    	JasperReport report = null;
				try {
					report = JasperCompileManager.compileReport(design);
				} catch (JRException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} 
		    	JasperPrint impressao = null;
				try {
					impressao = JasperFillManager.fillReport(report, null, con);
				} catch (JRException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}   
		    	JasperViewer viewer = new JasperViewer(impressao,false);   
		    	viewer.setVisible(true);  

			}
		}
	}

Agora oq eu preciso é ordenar essa lista em ordem alfabetica? alguem pode me ajudar?

B

mas que bom que você conseguiu !

eu to com a mesma duvida !

K

Amigo, da uma estudada no Ireport, na epoca utilizei ele, afinal ja faz tempo isso.
Leia tutorial do Ireport.
Qualquer duvida posta ai, que as vezes posso te ajudar como me ajudaram.

Abrs

Criado 13 de março de 2009
Ultima resposta 18 de mai. de 2011
Respostas 10
Participantes 5