Caso alguem possa me ajudar, estou co o seguinte problema…já construir meus relatorios com o jasper e ireports.Estou usando o netbeans, e quando escuto o meu projeto pelo netbeans,ele gera o relatorio normal,sem problema nenhum.Agora quando eu limpo e construo para gerar o .java ele não excuta o relatorio.Todo o meu projeto funciona,menos o relatorio,vc clica no botão pra chamar o relatorio e não acontece nada e dentro do netbeans funciona normal.[RESOLVIDO]
Olá,
Pode ser que o pacote gerado não esteja com as lib’s (do jasper), e no netbeans funciona pois ele, provavelmente, deve administrar isso.
Como está a implementação da sua chamada para o relatorio dentro do .java ?
É projeto web ou desktop?
Então…eu construo o projeto e na pasta dist , ele gera o arquivo .java e uma pasta LIB com as bibliotecas.
A chamada dele é numa aplicação desktop.
Esta com falta de lib’s pro relatório…
ou
Esta com lib’s desatualizadas pro relatório…
ou
esta tentando pegar um caminho do arquivo do relatório que não existe.
Posta o código ai, se não for as libs.
Os caminhos estão certos ,pq ele chama o relatorio quando é xecutadopelo netbeans.Ele abre normalmente,testei milhares de vezes.Dentro do netbeans ele funciona que é uma maravilha.Agora depois de compilado é que ele não funciona.
Lib’s???
então…eu importei as bibliotecas…e quando ele gera o . java na pasta dist,ele gera tb uma pasta lib com todas as bibliotecas que importei.as mesmas bibliotecas que estão no projeto do netebeans quando executo ele.
Ele gera um .JAR e não .java
gerou jar??
execute ele por prompt de comando e posta o erro que ele gera ao tentar abrir o relatório.
o erro que deu foi o seguinte:
C:\Documents and Settings\Fabiano\Meus documentos\NetBeansProjects\prLivraria10.
0\dist>java -jar prLivraria.jar
Gerando relat¾rio…
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\Docum
ents and Settings\Fabiano\Meus documentos\NetBeansProjects\prLivraria10.0\dist\s
rc\prlivraria\estoque_minimo.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:77
)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillMa
nager.java:243)
at prlivraria.RelatorioEstoqueMinimo.geraRelatorio(RelatorioEstoqueMinim
o.java:51)
at prlivraria.frmRelatorios.jButton4ActionPerformed(frmRelatorios.java:2
12)
at prlivraria.frmRelatorios.access$400(frmRelatorios.java:22)
at prlivraria.frmRelatorios$5.actionPerformed(frmRelatorios.java:143)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: C:\Documents and Settings\Fabiano\Meus
documentos\NetBeansProjects\prLivraria10.0\dist\src\prlivraria\estoque_minimo.j
asper
… 31 more
Finalizado!
enterprete o erro : java.io.FileNotFoundException esta claro, certo? O que está acontecendo então, ele não encontro o arquivo “C:\Documents and Settings\Fabiano\Meus documentos\NetBeansProjects\prLivraria10.0\dist\src\prlivraria\estoque_minimo.jasper” por que ele não EXISTE.
reforce oque disse no primeiro post, esta tentando pegar um caminho do arquivo do relatório que não existe.
se estiver com duvidas de como acertar isso, posta o código que você carrega o .JASPER pra mim te dar um help.
A classe para chamar o relatorio é essa :
package prlivraria;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
-
@author Fabiano
*/
public class RelatorioEstoqueMinimo {Connection con;
java.sql.Statement stmt;
String caminho = “c:/Banco/bdLivraria.mdb”;
String url = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=” + caminho;
String usuario = “”, senha = “”;
ResultSet RS;public void geraRelatorio() {
Connection con = null;
try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(url, usuario, senha);//conecta no BD sem ODBC //Executa o comando SQL que retorna todos os campos da tabela desejada stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); RS = stmt.executeQuery("Select * from PRODUTO"); RS.next(); System.out.println("Gerando relatório..."); HashMap<String, Integer> parameterMap = new HashMap <String, Integer>();
//o Nome do parâmetro e o valor é passado ao HashMap
parameterMap.put(“Estoque”, 10);
//pega o caminho físico até o arquivo .jasper
String arquivo = System.getProperty("user.dir")
+ "/src/prlivraria/estoque_minimo.jasper";
//chama fillReport
JasperPrint jp = JasperFillManager.fillReport(arquivo,
parameterMap, con);
//exibe o relatório com viewReport
JasperViewer.viewReport(jp, false);
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (JRException e) {
e.printStackTrace();
} finally {
try {
if (!con.isClosed()) {
con.close();
}
System.out.println(“Finalizado!”);
} catch (SQLException ex) {
}
}
}
Na pasta dist, que ele gera o .jar ,não tinha a pasta src.Se eu copiar a apsta src,que está na pasta de projeto do netbeans para lá ele funciona.Desculpe,se estou perguntando besteira,mas é que não tenho quase nenhuma experiencia com java.Não tem uma maneira de eu gerar um . jar que ele não precise estar dentro desta pasta dist para funcionar?..que eu possa com esse .jar usar o meu projeto em qualquer máquina?
leia isso pra continuar postando: http://www.guj.com.br/posts/list/50115.java
pra resolver é só trocar
String arquivo = System.getProperty("user.dir") + "/src/prlivraria/estoque_minimo.jasper";
por
String arquivo = System.getProperty("user.dir") + "/estoque_minimo.jasper";
com isso pra funcionar você deverá ter no diretório DIST: o arquivo .jar e o .jasper.
resolvido…
Cara…valeu mesmo.Funcionou aqui.Só mais uma duvida pra finalizar.Tem um trecho do codigo que não entendo
new HashMap <String, Integer>();
//o Nome do parâmetro e o valor é passado ao HashMap
parameterMap.put("Estoque", 10);
//pega o caminho físico até o arquivo .jasper
Como eu não tenho muta experiencia em java eu procurei em varios tutorias como fazer a chamada de relatorio. e o trecho do parameterMap.pu(“Estoque”,10) , eu não entendo.Aonde está 10 , se eu colocar qualquer valor ele funciona e não muda nada.Tentei colocar de outras maneiras que vi em outros tutorias mas não funcionaram.Só dessa maneira.
quando ele faz: parameterMap.put(“Estoque”, 10);
esta passando pro relatório pelo parâmetro chamado Estoque o valor 10.
abra o seu relatório e procure o parâmetro chamado
Estoque, ele pode ou não ser usado no relatório, como você pegou isso de terceiros, só olhando o código mesmo.
Valeu mesmo pela ajuda cara…muito Obrigado
Resolvido…
Hey, vc baixou o driver pra iReport de ql site?
usa as libs que estão na instalação do seu IReport.
ou
Consegui, vlw amigo!
[quote=fbenhur]Valeu mesmo pela ajuda cara…muito Obrigado
Resolvido…[/quote]
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]