Boa tarde pessoal se alguém puder me ajudar, agradeceria muito !!
Tenho um relatório onde passo quatro parâmetros mas o mesmo me retorna erro tanto na aplicação como diretamente no relatório…
Métodos da Aplicação:
public void report(Veiculo v, Parceiro p, Parceiro m, String di, String df) {
//JRDataSource jrds = new JRResultSetDataSource(dao.listAllReport());
HashMap map = new HashMap();
String veiculo;
String parceiro;
String motorista;
String periodo;
if (!v.getPlaca().equals("")) {
veiculo = " WHERE NPLA_VEI = ' " + v.getPlaca() + "' ";
} else {
veiculo = " WHERE NPLA_VEI LIKE '%%' ";
}
if (p.getIdParceiro() != 0) {
parceiro = " AND CODI_TRA = " + p.getIdParceiro() + " ";
} else {
parceiro = " AND CODI_TRA LIKE '%%' ";
}
if (m.getIdParceiro() != 0) {
motorista = " AND CMOT_TRA = " + m.getIdParceiro() + " ";
} else {
motorista = " AND CMOT_TRA LIKE '%%' ";
}
if ((!di.equals(" / / ")) && (!df.equals(" / / "))) {
periodo = " AND DATA_ABASTECIMENTO BETWEEN '" + di + "' AND '" + df + "' ";
} else {
periodo = " AND DATA_ABASTECIMENTO LIKE '%%' ";
}
String testeExecute = "SELECT * FROM VW_ABASTECIMENTO_COMB_REL" + veiculo + parceiro + motorista + periodo;
map.put("veiculo_str", veiculo);
map.put("posto_comb_str", parceiro);
map.put("motorista_str", motorista);
map.put("datas_str", periodo);
//gerarRelatorioDesktop(arquivo, map, jrds);
gerarRelatorioDesktop(arquivo, map);
}
//private void gerarRelatorioDesktop(String arquivo, Map<String, Object> parametros, JRDataSource jrds) {
private void gerarRelatorioDesktop(String arquivo, Map<String, Object> parametros) {
try {
JasperPrint jasperPrint = JasperFillManager.fillReport(arquivo, parametros, ConnectionFactoryOracle.getConnection());
JasperViewer.viewReport(jasperPrint, false);
} catch (Exception e) {
e.printStackTrace();
}
}
Query do relatorio:
SELECT * FROM VW_ABASTECIMENTO_COMB_REL $P{veiculo_str} $P{posto_comb_str} $P{motorista_str} $P{datas_str}
**Erros no console java:**0
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : Relatorio Abastecimento
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:240)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1086)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:667)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1258)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)
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 Controller.AbastecimentoCombustivelController.gerarRelatorioDesktop(AbastecimentoCombustivelController.java:151)
at Controller.AbastecimentoCombustivelController.report(AbastecimentoCombustivelController.java:145)
at Frota.Relatorios.RelatorioAbastecimentoCombustivelView.preparaRelatorio(RelatorioAbastecimentoCombustivelView.java:775)
at Frota.Relatorios.RelatorioAbastecimentoCombustivelView.jButtonImprimirKeyPressed(RelatorioAbastecimentoCombustivelView.java:519)
at Frota.Relatorios.RelatorioAbastecimentoCombustivelView.access$400(RelatorioAbastecimentoCombustivelView.java:29)
at Frota.Relatorios.RelatorioAbastecimentoCombustivelView$5.keyPressed(RelatorioAbastecimentoCombustivelView.java:209)
at java.awt.Component.processKeyEvent(Component.java:6493)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2832)
at java.awt.Component.processEvent(Component.java:6312)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at java.awt.Component.dispatchEventImpl(Component.java:4762)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00933: comando SQL não encerrado adequadamente
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:233)
... 49 more