Como chamar Relatório Ireport através de evento actionPerformed

10 respostas
L

Criei um relatorio ireport no netbeans de uma tabela do meu banco de dados.

Nome do banco: Teste
Nome da tabela: Cliente
Campos: Nome, Endereco, Cep, Telefone.

Criei um relatório no netbeans como eu disse acima desta tabela.

Gostaria de saber como eu faço para o usuário chamar o relatório ao clicar num botão.
Qual codigo eu coloco no botão, se precisa importar alguma bibiloteca ou jar, ou se é alguma coisa diferente, pois eu tento colocar os codigos que encontrei na net mais a maioria deles ficam com erro no codigo.
Alguem me ajude por favor

10 Respostas

jhaga

E qual(is) é(são) o(s) erro(s) que está(ão) aparecendo?
Poste aí para que possamos ajudá-lo.

L

jhaga:
E qual(is) é(são) o(s) erro(s) que está(ão) aparecendo?
Poste aí para que possamos ajudá-lo.

eu gostaria de saber como eu inicio este código do evento do botão e qual biblioteca ou jar eu devo importar e onde baixa-la. se possivel poste um exemplo simples ai pra mim. O relatório é simples sem nenhuma passagem de parametro.

L
lemvb:
jhaga:
E qual(is) é(são) o(s) erro(s) que está(ão) aparecendo? Poste aí para que possamos ajudá-lo.

eu gostaria de saber como eu inicio este código do evento do botão e qual biblioteca ou jar eu devo importar e onde baixa-la. se possivel poste um exemplo simples ai pra mim. O relatório é simples sem nenhuma passagem de parametro.

bem consegui criar o codigo e importar as bibilotecas porem esta gerando esse erro abaixo

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: relatorio.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:243)
at principal.GeradoRelatorio.gerarRelatoriosClientes(GeradoRelatorio.java:26)
at principal.usuario.jButton4ActionPerformed(usuario.java:482)
at principal.usuario.access$600(usuario.java:22)
at principal.usuario$7.actionPerformed(usuario.java:194)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.io.FileNotFoundException: relatorio.jasper
... 42 more

o codigo que eu criei foi este
package principal;

import java.sql.Connection;
import java.sql.DriverManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JRException;
import java.util.HashMap;
//import necessarios para executa o relatorio
//classe gerado relatorio
public class GeradoRelatorio {

public JasperPrint gerarRelatoriosClientes() throws Exception{
JasperPrint rel=null;
//rel e um nome para demostra o relatorio.
//relatorio que traz todas informações.
try{
Connection con= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Teste","root","");

HashMap map= new HashMap();
String arquivoJasper= "relatorio.jasper";//nome do arquivo de relatorio que devera esta na pasta //principal do projeto api de java...
rel=JasperFillManager.fillReport(arquivoJasper,map,con);//coloque os nomes que voce demonina emcima 
}catch (JRException e){
e.printStackTrace();
}
return rel;//returna seu relatorio
}
}
o netbeans esta acusando esta linha como erro
rel=JasperFillManager.fillReport(arquivoJasper,map,con)
o que eu devo fazer agora?
vinnysoft

Olá!

Este erro significa que o arquivo “relatorio.jasper” não foi encontrado (java.io.FileNotFoundException).

Tenta utilizar dessa forma:

InputStream arquivoJasper = getClass().getResourceAsStream("relatorio.jasper");

ou assim:

InputStream arquivoJasper = getClass().getResourceAsStream("/relatorio.jasper");

Até +!

L

vinnysoft:
Olá!

Este erro significa que o arquivo “relatorio.jasper” não foi encontrado (java.io.FileNotFoundException).

Tenta utilizar dessa forma:

InputStream arquivoJasper = getClass().getResourceAsStream("relatorio.jasper");

ou assim:

InputStream arquivoJasper = getClass().getResourceAsStream("/relatorio.jasper");

Até +!

a segunda maneira retornou o mesmo erro. A primeira retornou esse erro

Exception in thread AWT-EventQueue-0 java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/callsite/CallSiteArray

at null_1334002193009_815989.$createCallSiteArray(calculator_null_1334002193009_815989)

at null_1334002193009_815989.$getCallSiteArray(calculator_null_1334002193009_815989)

at null_1334002193009_815989.(calculator_null_1334002193009_815989)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at java.lang.Class.newInstance0(Class.java:355)

at java.lang.Class.newInstance(Class.java:308)

at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:98)

at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:320)

at net.sf.jasperreports.engine.JasperCompileManager.loadEvaluator(JasperCompileManager.java:240)

at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:421)

at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:428)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:76)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:86)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:56)

at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:52)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:378)

at principal.GeradoRelatorio.gerarRelatoriosClientes(GeradoRelatorio.java:28)

at principal.usuario.jButton4ActionPerformed(usuario.java:482)

at principal.usuario.access$600(usuario.java:22)

at principal.usuario$7.actionPerformed(usuario.java:194)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6289)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)

at java.awt.Component.processEvent(Component.java:6054)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4652)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4482)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Window.dispatchEventImpl(Window.java:2478)

at java.awt.Component.dispatchEvent(Component.java:4482)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)

at java.awt.EventQueue.access$000(EventQueue.java:85)

at java.awt.EventQueue$1.run(EventQueue.java:603)

at java.awt.EventQueue$1.run(EventQueue.java:601)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)

at java.awt.EventQueue$2.run(EventQueue.java:617)

at java.awt.EventQueue$2.run(EventQueue.java:615)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.callsite.CallSiteArray

at java.lang.ClassLoader.findClass(ClassLoader.java:359)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

 61 more

o erro continua na mesma linha você tem outra ideia?

L

Alguem tem alguma outra ideia eu não sei o que fazer para corrigir esse erro

L

Bem eu descobri como consertar este ultimo erro, era a language do relatorio que estava marcada como groovy e eu mudei pra java.
agora ta dando fazendo um tratamento de excessão do try falando que o relatorio esta nulo. como eu posso resolver isso?

java.lang.NullPointerException

esse é o codigo do botão

GeradoRelatorio rep=new GeradoRelatorio(); JasperPrint relat; try{ relat=rep.gerarRelatoriosClientes(); JasperViewer.viewReport(relat,true); }catch (Exception e){ System.out.println("erro no botão "+e); }

F

Você não instanciou o objeto “relat”, apenas o declarou.

L
fasts:
Você não instanciou o objeto "relat", apenas o declarou.

instanciei o relat porem continua com o mesmo erro. já criei outro relatório porem ambos aparecem esse mesmo erro.

GeradoRelatorio rep=new GeradoRelatorio(); 
JasperPrint relat;
relat = new JasperPrint();
try{
relat=rep.gerarRelatoriosClientes();
JasperViewer.viewReport(relat,true);
}catch (Exception e){
    System.out.println("erro no botao");
    e.printStackTrace();
    
}

java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:1034)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:1004)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:325)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:261)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:127)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:942)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:378)
at principal.GeradoRelatorio.gerarRelatoriosClientes(GeradoRelatorio.java:30)
at principal.usuario.jButton4ActionPerformed(usuario.java:483)
at principal.usuario.access$600(usuario.java:22)
at principal.usuario$7.actionPerformed(usuario.java:194)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

L

vlw deu certo agora

Criado 9 de abril de 2012
Ultima resposta 26 de jun. de 2012
Respostas 10
Participantes 4