peguei um exemplo que encontrei no google mas não consegui fazer funcionar.
esse é meu SQL dentro do report1.jrxml
<![CDATA[SELECT FUNCIONARIO.FUNC_CODIGO, FUNCIONARIO.func_empresa_cod, FUNCIONARIO.FUNC_EMPRESA_NOME, funcionario.FUNC_IDENTIDADE, funcionario.FUNC_CPF, FUNCIONARIOSDESPESAS.FD_FUNC_COD, FUNCIONARIOSDESPESAS.FD_FUNC_NOME, FUNCIONARIOSDESPESAS.FD_DESP_COD, FUNCIONARIOSDESPESAS.FD_DESP_NOME, FUNCIONARIOSDESPESAS.FD_DATA, FUNCIONARIOSDESPESAS.FD_VALOR, FUNCIONARIOSDESPESAS.fd_tipo_cod, FUNCIONARIOSDESPESAS.FD_TIPO_NOME,FUNCIONARIOSDESPESAS.fd_mes, FUNCIONARIOSDESPESAS.fd_ano, FUNCIONARIOSDESPESAS.fd_obs, FUNCIONARIOSSALARIOS.fs_func_codigo, FUNCIONARIOSSALARIOS.fs_mes, FUNCIONARIOSSALARIOS.fs_ano, FUNCIONARIOSSALARIOS.fs_valor, FUNCIONARIOSSALARIOS.fs_tipo_codigo, FUNCIONARIOSSALARIOS.FS_TIPO_NOME
FROM FUNCIONARIO, FUNCIONARIOSDESPESAS, FUNCIONARIOSSALARIOS
WHERE FUNCIONARIO.FUNC_CODIGO = $P{pfunccodigo} AND FUNCIONARIOSDESPESAS.FD_FUNC_COD = FUNCIONARIO.FUNC_CODIGO AND FUNCIONARIOSSALARIOS.fs_func_codigo = FUNCIONARIO.func_codigo AND FUNCIONARIOSDESPESAS.fd_tipo_cod = $P{pfdtipocod} AND FUNCIONARIOSDESPESAS.fd_mes = $P{pfdmes} AND FUNCIONARIOSDESPESAS.fd_ano = $P{pfdano} AND FUNCIONARIOSSALARIOS.fs_mes = $P{pfsmes} AND FUNCIONARIOSSALARIOS.fs_ano = $P{pfsano} AND FUNCIONARIOSSALARIOS.fs_tipo_codigo = $P{pfstipocodigo};]]>
e isso eu chamo no meu jswing para que abra o relatório com as informações pegas da tavela
try {
Connection conn = Conexao.getConexao();
//System.out.println("Conexao OK"); //sem necessidade pois ja tem na classe conection
HashMap parametros = new HashMap(); // agora utiizando esse sistema
/////// CAMPOS DE PARAMETROS DO RELATORIO
// $P{pfunccodigo}
// $P{pfdtipocod}
// $P{pfdmes}
// $P{pfdano}
// $P{pfsmes}
// $P{pfsano}
// $P{pfstipocodigo}
///////
parametros.put("pfunccodigo", txFuncCodigo.getText());
parametros.put("pfdtipocod", txTipoCodigo.getText());
parametros.put("pfdmes", txMes.getText());
parametros.put("pfdano", txAno.getText());
parametros.put("pfsmes", txMes.getText());
parametros.put("pfsano", txAno.getText());
parametros.put("pfstipocodigo", txTipoCodigo.getText());
// parametros.put("Extract(month from funcionariosdespesas.fd_data)", txMes.getText());
// parametros.put("Extract(year from funcionariosdespesas.fd_data)", txAno.getText());
////////
JasperPrint jp
= JasperFillManager.fillReport("src/Relatorios/report1.jasper", parametros, conn);
JasperViewer jv = new JasperViewer(jp);
jv.setVisible(true);
} catch (Exception ex) {
ex.printStackTrace();
}
mas recebo esse erro
run:
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: net/sf/jasperreports/compilers/GroovyEvaluator
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClass(JRClassLoader.java:338)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassFromBytes(JRClassLoader.java:261)
at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:102)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:333)
at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:265)
at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:457)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:379)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:55)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
at Janelas.JFFuncionariosDespesas.jbImprimirActionPerformed(JFFuncionariosDespesas.java:1204)
at Janelas.JFFuncionariosDespesas.access$1400(JFFuncionariosDespesas.java:16)
at Janelas.JFFuncionariosDespesas$16.actionPerformed(JFFuncionariosDespesas.java:587)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.compilers.GroovyEvaluator
at java.lang.ClassLoader.findClass(ClassLoader.java:522)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 56 more
alguém consegue me dar uma luz
acredito nao estar setando os parametros corretamente :\