hola, no soy muy entendida en jasper report, pero hasta ahora habia echo uns cuantas cosillas facilonas y me habian salido bien. Lo que me pasa es que ahora que intento sacar unos datos con una consulta un poco ms complicada, me da la siguiente excepcion:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.PreparedStatement.setInternal(Prepa redStatement.java:2085)
at com.mysql.jdbc.PreparedStatement.setString(Prepare dStatement.java:1182)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecu ter.createStatement(JRJdbcQueryExecuter.java:264)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecu ter.createDatasource(JRJdbcQueryExecuter.java:103)
at net.sf.jasperreports.engine.fill.JRFillDataset.cre ateQueryDatasource(JRFillDataset.java:671)
at net.sf.jasperreports.engine.fill.JRFillDataset.set Datasource(JRFillDataset.java:615)
at net.sf.jasperreports.engine.fill.JRFillDataset.set ParameterValues(JRFillDataset.java:604)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setP arameters(JRBaseFiller.java:871)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:689)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:647)
at net.sf.jasperreports.engine.fill.JRFiller.fillRepo rt(JRFiller.java:63)
at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:402)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchM ethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(D ispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processA ctionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(Act ionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(Actio nServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
......
NESTED BY :
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
........
NESTED BY :
net.sf.jasperreports.engine.JRException: Error preparing statement for executing the report query :
select fechaIng, concepto, cuantia, nombre, descripcion from ingresos where fechaIng like '?-?-%'
at net.sf.jasperreports.engine.query.JRJdbcQueryExecu ter.createStatement(JRJdbcQueryExecuter.java:309)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecu ter.createDatasource(JRJdbcQueryExecuter.java:103)
at net.sf.jasperreports.engine.fill.JRFillDataset.cre ateQueryDatasource(JRFillDataset.java:671)
at net.sf.jasperreports.engine.fill.JRFillDataset.set Datasource(JRFillDataset.java:615)
at net.sf.jasperreports.engine.fill.JRFillDataset.set ParameterValues(JRFillDataset.java:604)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setP arameters(JRBaseFiller.java:871)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:689)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:647)
at net.sf.jasperreports.engine.fill.JRFiller.fillRepo rt(JRFiller.java:63)
at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:402)
at es.unoabogados.hibernate.struts.action.IngresosAct ion.exportar(IngresosAction.java:326)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchM ethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(D ispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processA ctionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(Act ionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(Actio nServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.PreparedStatement.setInternal(Prepa redStatement.java:2085)
at com.mysql.jdbc.PreparedStatement.setString(Prepare dStatement.java:1182)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecu ter.createStatement(JRJdbcQueryExecuter.java:264)
... 34 more
Yo supongo que es por algo que estoy haciendo mal en la consulta. Pongo la consulta tambien:
<queryString><![CDATA[select fechaIng, concepto, cuantia, nombre, descripcion from ingresos where fechaIng like '$P{anyo}-$P{mes}-%']]></queryString>
los parametros de mes y anyo estan declarados previamente a la consulta:
<parameter name="anyo" isForPrompting="false" class="java.lang.String">
<defaultValueExpression ><![CDATA["0000"]]></defaultValueExpression>
</parameter>
<parameter name="mes" isForPrompting="false" class="java.lang.String">
<defaultValueExpression ><![CDATA["00"]]></defaultValueExpression>
</parameter>
y en la clase java donde hago la llamada para generar el reporte tambien los incluyo bien.
Como ya he dicho no soy muy entendida en este tema, asi que no se como hacer para que la consulta funcione bien y he mirado en paginas donde se pasan parametros y creo que lo hago bien, a lo mejor es el tipo de consulta que estoy haciendo...
gracias