Como faço pra gerar um relatório no NetBeans, apartir de cadastros no MySql, preciso disso pra terminar meu PI, se alguém puder me ajudar…
grato
Como faço pra gerar um relatório no NetBeans, apartir de cadastros no MySql, preciso disso pra terminar meu PI, se alguém puder me ajudar…
grato
Instale o iReport com JasperReport, existem plugins específicos, após as devidas configurações pesquise no YouTube algumas vídeo aulas sobre o iReport, você verá que não é tão complicado.
Acesse: http://www.youtube.com/watch?v=J1S62IXbya8
Valeu!!!
Bom, eu gerei o relatorio.jasper e relatorio.jrxml, agora quero fazer uma aplicação com o botão “Gerar Relatório”, e ele aparecer… não achei em local algum, se puderem me ajudar… grato.
Bom, se voce for gerar um relatório sem parametros,
no botão que for gerar o relatorio…voce cria no evento.
primeiro vc chama a conexao do bd
depois um exemplo do codigo para gerar o relatorio
JasperReport relatorio = JasperCompileManager.compileReport("C:\Clientes.jrxml");
HashMap parametros = new HashMap();
JasperPrint jp = JasperFillManager.fillReport(relatorio, parametros, con);//esse con é a conexao.....
JasperViewer jrv = new JasperViewer(jp);
jrv.setVisible(true);
olha se te ajuda…
private void jMenuItem20ActionPerformed(java.awt.event.ActionEvent evt) {
JasperReport relatorio = null;
try {
relatorio = JasperCompileManager.compileReport("C:\\Clientes.jrxml");
} catch (JRException ex) {
Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
HashMap parametros = new HashMap();
JasperPrint jp = null;
try {
jp = JasperFillManager.fillReport(relatorio, parametros, Conexao.getConexao()); //esse con é a conexao.....
} catch (JRException ex) {
Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
JasperViewer jrv = new JasperViewer(jp);
jrv.setVisible(true);
}
run:
03/07/2011 13:34:29 gerenciadordetreino.view.TelaPrincipal jMenuItem20ActionPerformed
GRAVE: null
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\Clientes.jrxml (O sistema não pode encontrar o arquivo especificado)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:172)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:152)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:150)
at gerenciadordetreino.view.TelaPrincipal.jMenuItem20ActionPerformed(TelaPrincipal.java:384)
at gerenciadordetreino.view.TelaPrincipal.access$1200(TelaPrincipal.java:30)
at gerenciadordetreino.view.TelaPrincipal$13.actionPerformed(TelaPrincipal.java:221)
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.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
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: C:\Clientes.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:167)
… 43 more
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:138)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:421)
at gerenciadordetreino.view.TelaPrincipal.jMenuItem20ActionPerformed(TelaPrincipal.java:391)
at gerenciadordetreino.view.TelaPrincipal.access$1200(TelaPrincipal.java:30)
at gerenciadordetreino.view.TelaPrincipal$13.actionPerformed(TelaPrincipal.java:221)
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.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
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)
onde estou errando?
Conforme o amigo acima disse de uma olhada no ireport. depois você tem na sua classe getNome ex, cri um field no ireport nome… saca os fields tem q ser no padraoJava … crie o field pela barra da esquerda com o direito add field e não pela paleta.
na hora de criar o jasper verifique se não esta groove… tem q ser java… em language
depois
List<AgendamentoTO> beanCollection = listaAgendamento; // sua lista de seu objeto traga do seu DAO normalmente seuDAO.listarTodos();
HashMap parametros = new HashMap();
InputStream inputStream = getClass().getResourceAsStream(
"/util/report/Agendamento.jasper"); // coloque o seu jasper em um pacote do seu projeto... quando você tiver fazendo testes sem telas não é getClass coloque MeuTeste.class.getReso....
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(
beanCollection);
JasperPrint impressao = null;
try {
impressao = JasperFillManager.fillReport(inputStream, parametros,
ds);
GeraPDF showPDF = new GeraPDF(impressao);
showPDF.setLocationRelativeTo(null);
showPDF.setModal(true);
showPDF.setVisible(true);
} catch (JRException e) {
}
ai ta a classe para mostrar o resultado
package util;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.KeyStroke;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;
@SuppressWarnings("serial")
public class GeraPDF extends JDialog {
private JRViewer result;
public GeraPDF(JasperPrint jasperPrint) {
printarGeratorio(jasperPrint);
}
private void printarGeratorio(JasperPrint pRelatorio) {
result = new JRViewer(pRelatorio);
result.setZoomRatio(0.90f);
Integer largura = (Toolkit.getDefaultToolkit().getScreenSize().width) - 10;
Integer altura = (Toolkit.getDefaultToolkit().getScreenSize().height) - 30;
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(largura, altura));
this.setSize(largura, altura);
setLayout(new BorderLayout());
add(result, BorderLayout.CENTER);
getRootPane().getActionMap().put("esc", cancelarAction);
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,
InputEvent.SHIFT_DOWN_MASK), "esc");
}
private javax.swing.Action cancelarAction = new javax.swing.AbstractAction() {
public void actionPerformed(ActionEvent e) {
dispose();
}
};
}
qualquer duvida posta ai…
nao consigo entender mesmo
se eu postar o projeto, vc consegue me explicar melhor?
com o bd Mysql e talz
Sem problemas, posso sim…
Vo preparar um exemplo bom aqui tbm…
Ta aqui o projeto, se você for up coloca posta para todos é legal pois se alguem tiver o mesmo problema fica mais facil.
o projeto ta meio grande pois não tive paciência de ficar selecionando as libis certas, mais ta funcionando certinho, tem um exemplo de como passar o DataSource, parametros, imagens ainda tem exemplo de simples de hibernate, criteria… ta ai só desculpa o tamanho…
https://skydrive.live.com/?cid=4c800dd30fdeb3cc&sc=documents#!/?cid=4c800dd30fdeb3cc&sc=documents&id=4C800DD30FDEB3CC%21587