Criei um relatorio no ireport, mas não sei como especificar o caminho
publicvoidgerarRelatorioAlunos(Stringlayout)throwsJRException,ClassNotFoundException,SQLException{JasperDesigndesenho=JRXmlLoader.load(layout);JasperReportrelatorio=JasperCompileManager.compileReport(desenho);Connectioncon=conexao.pegarConexao();Statementstm=con.createStatement();Stringquery="select * from aluno";ResultSetrs=stm.executeQuery(query);JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);Mapparametros=newHashMap();JasperPrintimpressao=JasperFillManager.fillReport(relatorio,parametros,jrRS);JasperViewerviewer=newJasperViewer(impressao,true);viewer.show();}
[color=darkblue]Sei que o seu projeto é Desktop, mas é melhor por enquanto você nem colocar na src, coloca realmente na raiz do projeto, exemplo seu projeto ProjectIReport, coloca nessa pasta e roda como \jasper.jrxml, dai acredito que funcione, de qualquer forma tem esse tópico para ajudar : [/color]
Se precisar exportar o relatório direto para algum arquivo em PDF XLS ou algum outro formato olhe a classe JasperExportManager.exportReportToxxxxFie().
Ronaldo
Daianne
Obrigada, apareceu, :lol:
Mais uma perguntinha, eu posso usar esse método para que o usuario insira as informações no relatorio?
O que teria de mudar?
abraços!
rrigoni
Explique esta parte " Que o usuário insira as informações no relatório" seriam alguma personalização?
Se for algum dado em expec´ifico para cada usuário vc pode soliticar esta informação antes de gerar o relatório, e passar como parâmetro no map.
Explique melhor oq precisa para que possamos ajudar.
Ronaldo
Daianne
É um relatorio de alunos, e quero que o usuario,
possa inserir os dados do aluno, como o nome, por exemplo.
rrigoni
Ok,
Mas estes dados não vem da sua base de dados?
Não, não será possível inserir dados sem gerar o relatorio novamente, tendo em vista que o datasource é carregado antes do preenchimento do relatório.
Sugiro então vc exportar este relatório para xls e assim o usuário preencher os dados restantes.
Ronaldo.
Daianne
Ta gerando o relatorio normalmente, mas não mostra os alunos cadastrados, vc sabe porque?
rrigoni
Você configurou uma query que retorna dados na criação do seu .jasper?
Execute esta query diretamente em banco, pois os dados do relatório é preenchido com o datasource.
Ronaldo
Daianne
Fiz dessa forma mas não ta dando certo
publicJasperPrintgerarRelatorioAlunosExibir()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();Statementstm=con.createStatement();Stringpath="RelatorioAlunos.jasper";Stringquery="select * from aluno";ResultSetrs=stm.executeQuery(query);JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);HashMapmap=newHashMap();InputStreaminput=this.getClass().getClassLoader().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,jrRS);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;
net.sf.jasperreports.engine.JRException: Unknown column name : aluno_codigo
at net.sf.jasperreports.engine.JRResultSetDataSource.getColumnIndex(JRResultSetDataSource.java:359)
at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultSetDataSource.java:116)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:787)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:751)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1422)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:582)
at autoescola.modelo.GerarRelatorios.gerarRelatorioAlunosExibir(GerarRelatorios.java:127)
at autoescola.modelo.GerarRelatorios.main(GerarRelatorios.java:98)
rrigoni
Na sua query quando vc gera o relatorio pelo Ireport, repare que os nomes do resultset nome_aluno deve ser os mesmos nomes q em seu relatório.
Recomento vc usar um wizard do ireport pra entender.
Ronaldo
Metaleiro
Daianne:
Fiz dessa forma mas não ta dando certo
net.sf.jasperreports.engine.JRException: Unknown column name : aluno_codigo
at net.sf.jasperreports.engine.JRResultSetDataSource.getColumnIndex(JRResultSetDataSource.java:359)
at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultSetDataSource.java:116)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:787)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:751)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1422)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:582)
at autoescola.modelo.GerarRelatorios.gerarRelatorioAlunosExibir(GerarRelatorios.java:127)
at autoescola.modelo.GerarRelatorios.main(GerarRelatorios.java:98)
[color=darkblue]Ou não está retornando o campo aluno_codigo por não tê-lo em sua base ou ele pode estar com outro nome, mas de qualquer forma tem que ver se o campo Field no .jasper está com esse nome e esse campo está obtendo retorno [/color]
Daianne
Não to conseguindo, Alguém poderia me mostrar um exemplo?
publicclassGerarRelatoriosextendsException{publicGerarRelatorios(){}publicJasperPrintgerarRelatorioAlunos()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();HashMapmap=newHashMap();Stringpath="/Relatorios/Alunos.jasper";InputStreaminput=this.getClass().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,con);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicJasperPrintgerarRelatorioDeTurmas()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();HashMapmap=newHashMap();Stringpath="/Relatorios/Turmas.jasper";InputStreaminput=this.getClass().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,con);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicJasperPrintgerarRelatorioAlunosExibir()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();Statementstm=con.createStatement();Stringpath="Alunos.jasper";Stringquery="Select * FROM aluno WHERE aluno=$P{aluno}";ResultSetrs=stm.executeQuery(query);JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);HashMapmap=newHashMap();InputStreaminput=this.getClass().getClassLoader().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,jrRS);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicJasperPrintgerarRelatoriosAlunosPorCodigo(intcodigo)throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();Stringpath="src/Relatorios/Alunos.jasper";InputStreaminput=this.getClass().getClassLoader().getResourceAsStream(path);Stringquery="select * from aluno where codigo="+codigo;Statements=conexao.pegarConexao().createStatement();ResultSetrs=s.executeQuery(query);JRResultSetDataSourcetst=newJRResultSetDataSource(rs);HashMapmap=newHashMap();map.put("QUERY",con);rel=JasperFillManager.fillReport(input,map,tst);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicStringwritingFile(StringBufferstrBuff,Stringpath)throwsIOException{StringfName=System.currentTimeMillis()+".csv";try{BufferedWriterout=newBufferedWriter(newFileWriter(path+fName));out.write(strBuff.toString());out.close();}catch(IOExceptione){}returnfName;}publicstaticvoidmain(String[]args){try{newGerarRelatorios().gerarRelatorioAlunos();}catch(Exceptionex){Logger.getLogger(GerarRelatorios.class.getName()).log(Level.SEVERE,null,ex);}}}
ronaldosilva937
Olá tenho um problema pra executar um relatório, ele chama o Jasper Viewer mas não mostra o relatório
exibe este erro net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: Livros.jasper
se alguém poder me dar uma ajuda ou me passa alguns tutoriais.
Problema solucionado.
Havia dois tipos de problema não estava conseguindo encontrar o arquivo e o outro erra as versões das libs, a estrutura
do relatório é gerada com ireport 3.7.2
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageireportexample02;importjava.io.File;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.HashMap;importjava.util.Map;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.view.JasperViewer;/** * * @author ronaldosil */publicclassReportEaxample02{privatestaticConnectiongetConnection()throwsSQLException,ClassNotFoundException{Stringdriver="com.mysql.jdbc.Driver";Stringurl="jdbc:mysql://localhost:3306/relatorios";Stringuser="root";Stringpwd="unifeg";Class.forName(driver);Connectioncon=DriverManager.getConnection(url,user,pwd);returncon;}publicvoidgerarReportExample02()throwsSQLException,ClassNotFoundException{Connectioncon=getConnection();Mapparameters=newHashMap();//Arquivo .jasper foi colocado no mesmo pacote da classStringpath=("src/ireportexample02/Livros.jasper");Filefile=newFile(path);file=file.getAbsoluteFile();StringrepStr2=file.getPath();try{JasperFillManager.fillReportToFile(repStr2,parameters,con);JasperPrintjasperPrint=JasperFillManager.fillReport(repStr2,parameters,con);JasperViewerviewer=newJasperViewer(jasperPrint,false);viewer.setVisible(true);}catch(JRExceptionjex){System.out.print("JasperException"+jex.getMessage());}catch(Exceptionex){System.out.print("-"+ex.getMessage());}}}
Kleber-rr
Daianne:
publicclassGerarRelatoriosextendsException{publicGerarRelatorios(){}publicJasperPrintgerarRelatorioAlunos()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();HashMapmap=newHashMap();Stringpath="/Relatorios/Alunos.jasper";InputStreaminput=this.getClass().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,con);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicJasperPrintgerarRelatorioDeTurmas()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();HashMapmap=newHashMap();Stringpath="/Relatorios/Turmas.jasper";InputStreaminput=this.getClass().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,con);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicJasperPrintgerarRelatorioAlunosExibir()throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();Statementstm=con.createStatement();Stringpath="Alunos.jasper";Stringquery="Select * FROM aluno WHERE aluno=$P{aluno}";ResultSetrs=stm.executeQuery(query);JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);HashMapmap=newHashMap();InputStreaminput=this.getClass().getClassLoader().getResourceAsStream(path);rel=JasperFillManager.fillReport(input,map,jrRS);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicJasperPrintgerarRelatoriosAlunosPorCodigo(intcodigo)throwsException{JasperPrintrel=null;try{Connectioncon=conexao.pegarConexao();Stringpath="src/Relatorios/Alunos.jasper";InputStreaminput=this.getClass().getClassLoader().getResourceAsStream(path);Stringquery="select * from aluno where codigo="+codigo;Statements=conexao.pegarConexao().createStatement();ResultSetrs=s.executeQuery(query);JRResultSetDataSourcetst=newJRResultSetDataSource(rs);HashMapmap=newHashMap();map.put("QUERY",con);rel=JasperFillManager.fillReport(input,map,tst);JasperViewer.viewReport(rel,false);}catch(JRExceptione){e.printStackTrace();}returnrel;}publicStringwritingFile(StringBufferstrBuff,Stringpath)throwsIOException{StringfName=System.currentTimeMillis()+".csv";try{BufferedWriterout=newBufferedWriter(newFileWriter(path+fName));out.write(strBuff.toString());out.close();}catch(IOExceptione){}returnfName;}publicstaticvoidmain(String[]args){try{newGerarRelatorios().gerarRelatorioAlunos();}catch(Exceptionex){Logger.getLogger(GerarRelatorios.class.getName()).log(Level.SEVERE,null,ex);}}}
Oi Daianne, td bem?
Como ficou na tua jsp?? a chamada do teu método:gerarRelatoriosAlunosPorCodigo(int codigo)???
Aguardo.