Como acessar o IReport através de um formulário Java?
10 respostas
K
Kaiser
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.
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?
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ê.
publicvoidgetMostraRelatorio(Stringfile,MapParametros,ResultSetrs){//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{JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);JasperPrintimpressao=JasperFillManager.fillReport(file,Parametros,jrRS);JasperViewer.viewReport(impressao,false);}catch(JRExceptionex){Logger.getLogger(Funcoes.class.getName()).log(Level.SEVERE,null,ex);}}
K
Kaiser
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
Kaiser
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
Kaiser
oi pessoal
Consegui finalmente acessar, usando esse codigo
publicvoidconexao(){try{if(con==null||con.isClosed()){Class.forName("com.mysql.jdbc.Driver");con=(Connection)DriverManager.getConnection("jdbc:mysql://banco","usuario","senha");}}catch(Exceptione){System.out.println("não foi possível conectar ao banco ->");e.printStackTrace();}}privateclassActionImprimirEmpresaimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEventarg0){if(empresaTextNumeroProc.getText().length()==0){JOptionPane.showMessageDialog(null,"Para impressão é necessario selecionar a Empresa","Erro!",JOptionPane.ERROR_MESSAGE);return;}else{conexao();Stringarq="\\\\guiche2\\rede\\Empresas.jrxml";InputStreaminput=null;try{input=newFileInputStream(newFile(arq));}catch(FileNotFoundExceptione3){// TODO Auto-generated catch blocke3.printStackTrace();}JasperDesigndesign=null;try{design=JRXmlLoader.load(input);}catch(JRExceptione2){// TODO Auto-generated catch blocke2.printStackTrace();}JasperReportreport=null;try{report=JasperCompileManager.compileReport(design);}catch(JRExceptione1){// TODO Auto-generated catch blocke1.printStackTrace();}JasperPrintimpressao=null;try{impressao=JasperFillManager.fillReport(report,null,con);}catch(JRExceptione){// TODO Auto-generated catch blocke.printStackTrace();}JasperViewerviewer=newJasperViewer(impressao,false);viewer.setVisible(true);}}}
Agora oq eu preciso é ordenar essa lista em ordem alfabetica? alguem pode me ajudar?
B
barradas
mas que bom que você conseguiu !
eu to com a mesma duvida !
K
Kaiser
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.