Jreport 2 parametros

0 respostas
H

Bom dia Pessoal…
sou novato então desculpem a falta de conhecimento…
estou tentando gerar um relatorio pelo jreport…a query é essa:
select * from cliente where codigocliente>=$P{codigode}and codigocliente<=$P{codigoa}

o erro que apresenta no netbeans é esse:

net.sf.jasperreports.engine.JRException: Error executing SQL statement for : classic_landscape

at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:141)

at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:656)

at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:588)

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

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

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

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

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

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

at Desktop.desktop_relatoriocliente.jButton3MouseClicked(desktop_relatoriocliente.java:297)

at Desktop.desktop_relatoriocliente.access$900(desktop_relatoriocliente.java:26)

at Desktop.desktop_relatoriocliente$10.mouseClicked(desktop_relatoriocliente.java:127)

at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Caused by: java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta codigocliente>=Pa_RaM000and codigocliente<=Pa_RaM001.

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)

at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3149)

at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.java:216)

at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(JdbcOdbcPreparedStatement.java:91)

at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:135)

 32 more
o código para geral o relatório é o seguinte:

if(jrcodigode.isSelected()){

Connection conn = null;

try {

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

String banco = jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=teste.mdb;

conn = (Connection) DriverManager.getConnection(banco);

} catch (Exception ex) {

ex.printStackTrace();

}

HashMap mapa = new HashMap();

HashMap mapa2 = new HashMap();

mapa.put(codigode,Integer.parseInt(jcodigode.getText()));

mapa.put(codigoa,Integer.parseInt(jcodigoa.getText()));

JasperPrint relatorio = null;

try {

relatorio = JasperFillManager.fillReport(clienteporintervalocodigo.jasper,mapa ,conn);

JasperViewer.viewReport(relatorio, false);

} catch (Exception ex) {

ex.printStackTrace();

}

}

Creio eu que o problema seja na hora de passar os 2 parametros,não estou sabendo passar…
alguém poderia me dar uma ajuda??
obrigado

Criado 27 de maio de 2009
Respostas 0
Participantes 1