CAROS COLEGAS, JA ESTOU ENTRANDO EM DESESPERO…contrui meu relatorio no ireport e estou utilizando o banco de dados mysql…o relatorio no ireport funciona perfeitamente…so que…não consegui ate agora criar uma classe que conseguisse visualizar em meu codigo…já li todos os tutoriais possíveis na net e cada um aponta para uma direção…inclusive o daqui do guj…tenho um arquivo produtos.jasper e um arquivo produtos.jrxml…UTILIZO O BD mysql…Conto com a colaboração deste conceituado grupo de javaneiros…DESDE JÁ…OBRIGADO
IReport relatorio funciona mas classe não
13 Respostas
Explica melhor o que vc não conseguiu fazer.
Não consegui gerar um pdf e abrilo em uma classe na plataforma swing a partir dos arquivos .jasper e .jrxml…Inclusive li um tutorial seu …mas por ser iniciante não entendi direito furutani…Tipo assim…quero criar uma classe gerarRelatorio.java onde nela crio um relatorio.pdf e mostro na tela…Desde já obrigado…
Entendi. Tem vários tutoriais por ai que ensinam isso.
Você tentou fazer alguma coisa?
Sim…olhe só:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.HashMap;import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public class relatorioFinal {
private static final String url = "jdbc:mysql://127.0.0.1/mercado";
private static final String driver = "com.mysql.jdbc.Driver";
private static final String login = "root";
private static final String pwd = "";
public relatorioFinal() {
}
public void gerar( String layout ) throws JRException , SQLException, ClassNotFoundException {
//gerando o jasper design
JasperDesign desenho = JRXmlLoader.load( layout );
//compila o relatório
JasperReport relatorio = JasperCompileManager.compileReport( desenho );
//estabelece conexão
Class.forName( driver );
Connection con = DriverManager.getConnection( url , login , pwd );
Statement stm = con.createStatement();
String query = "select * from produtos";
ResultSet rs = stm.executeQuery( query );
//implementação da interface JRDataSource para DataSource ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
//executa o relatório
Map parametros = new HashMap();
parametros.put("nota", new Double(10));
JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros, jrRS );
//exibe o resultado
JasperViewer viewer = new JasperViewer( impressao , true );
viewer.show();
}
public static void main(String[] args) {
try {
new relatorioFinal().gerar( "RelatorioMotoristas.jrxml" );
} catch (Exception e) {
e.printStackTrace();
}
}
}
Só que da este erro:
java.io.FileNotFoundException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:106)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:166)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)
at relatorioFinal.gerar(relatorioFinal.java:24)
at relatorioFinal.main(relatorioFinal.java:51)
NESTED BY :
java.io.FileNotFoundException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:106)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:166)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)
at relatorioFinal.gerar(relatorioFinal.java:24)
at relatorioFinal.main(relatorioFinal.java:51)
NESTED BY :
net.sf.jasperreports.engine.JRException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:171)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)
at relatorioFinal.gerar(relatorioFinal.java:24)
at relatorioFinal.main(relatorioFinal.java:51)
Caused by: java.io.FileNotFoundException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:106)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:166)
… 3 more
EXECUTADO COM SUCESSO (tempo total: 1 segundo)
//executa o relatório
Map parametros = new HashMap();
parametros.put(“nota”, new Double(10));
JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros, jrRS );
////////////////////////////////////////
O PARAMETROS.PUT O QUE SÃO??? VC TERIA ALGUM EXEMPLO TE CODIGO COLEGA???
Olhem pessoal…a classe compila sem problemas…e o relatorio no ireport funciona … so que qdo mando executar minha classe da o erro acima…Abaixo meu codigo fonte…
<blockquote><div class="quote-author">ziplove:</div>//executa o relatório
Map parametros = new HashMap();
parametros.put(“nota”, new Double(10));
JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros, jrRS );
////////////////////////////////////////
O PARAMETROS.PUT O QUE SÃO??? VC TERIA ALGUM EXEMPLO TE CODIGO COLEGA???
São parametro que voce passa pro seu relatorio.
Veja aqui como trabalhar com eles
Ele não encontra o arquivo. Verifique se o caminho esta correto e tente usar o caminho absoluto.
Desculpe por ser tão mirin assim na geração de relatorios mas depois de setar o caminho absoluto os erros diminuiram…agora tenho o seguinte…
Exception in thread “main” net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: D:\SWING\motoristasTeste\BibliotecaPessoal\src\BibliotecaPessoal.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)
at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:44)
at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:59)
Caused by: java.io.FileNotFoundException: D:\SWING\motoristasTeste\BibliotecaPessoal\src\BibliotecaPessoal.jasper
… 4 more
Java Result: 1
Outra perguntinha no tutorial aqui do site no exemplo dão um :
import dori.jasper.engine.*;
import dori.jasper.view.JasperViewer;
onde encontro isto???Já procurei no /bin do ireport e não encontrei…
Desde já agradeço colega e me desculpe por alguma coisa…Obrigado
Veja:
Ele continua não encontrando um arquivo. Vc gerou o .jasper do seu .jrxml? Ele estão (ambos, o jasper e o jrxml) no caminho absoluto que vc passou?
Confere certinho o caminho que ele tá dando erro…
Olá pessoal…começou a gerar pdf’s agradeço a ajuda de vcs. Agora surgiu outra situaçãozinha chata olhem so:
Map parametros = new HashMap();
<a href="//parametros.put">//parametros.put</a>(“titulo”, “Teste”);
<a href="//parametros.put">//parametros.put</a>(“ORDEM”,“ALFABETICA”);
JasperFillManager.fillReportToFile(“D:/SWING/motoristasTeste/BibliotecaPessoal/src/bibliotecapessoal/relatorioMotoristas2.jasper”,parametros,jrds);
<a href="//JasperRunManager.runReportToPdfFile">//JasperRunManager.runReportToPdfFile</a>(“Teste.jasper”,parametros,jrds);
JasperExportManager.exportReportToPdfFile(“D:/SWING/motoristasTeste/BibliotecaPessoal/src/bibliotecapessoal/relatorioMotoristas2.jrprint”);
// eu que comentei so que não abre meu pdf JasperViewer.viewReport(“RelatorioBiblioteca.pdf”,false);
O pdf gera mas não abre na pagina…e se eu tiver 10 registros no meu banco somente aparece o primeiro registro enquanto se eu usar o ireport aparece todos…o sql é o mesmo o que será???
ai vai o sql:
result = stat.executeQuery(“SELECT DISTINCT codigo, titulo, autor from livro”);
Desde já agradeço pela ajuda…ou melhor pela SUPER FORÇA…Obrigado colegas
Desculpe pessoal…mosqueei…tinha colocado os fields no pageheader e não no detail no ireport por isso que estava imprimindo somente o primeiro campo…hehehe…
Mas o problema de não imprimir o pdf continua…Um ótimo inicio de semana a todos vcs…
// eu que comentei so que não abre meu pdf JasperViewer.viewReport(“RelatorioBiblioteca.pdf”,false);