Jasper reports 在JasperReports服务器上执行报表时,查询中未设置参数
我创建了一个在iReport中成功运行的报告。在本报告中,我使用了两个参数:开始日期和结束日期,但当它在JasperReports服务器上运行时,会出现异常,其中(开始日期和结束日期)参数未在查询中设置,您可以看到以下异常: 例外情况如下:Jasper reports 在JasperReports服务器上执行报表时,查询中未设置参数,jasper-reports,jasperserver,Jasper Reports,Jasperserver,我创建了一个在iReport中成功运行的报告。在本报告中,我使用了两个参数:开始日期和结束日期,但当它在JasperReports服务器上运行时,会出现异常,其中(开始日期和结束日期)参数未在查询中设置,您可以看到以下异常: 例外情况如下: The server has encountered an error. Please excuse the inconvenience. Error Message Error filling report Error Trace com.jasper
The server has encountered an error. Please excuse the inconvenience.
Error Message
Error filling report
Error Trace
com.jaspersoft.jasperserver.api.JSException: Error filling report at
com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$FillResultListener.reportFillError(EngineServiceImpl.java:1231)
at net.sf.jasperreports.engine.fill.BaseFillHandle.notifyError(BaseFillHandle.java:211)
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:135)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:878)
at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:834)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1696)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1055)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:989)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:900) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724) Caused by: net.sf.jasperreports.engine.JRException: Error preparing statement for executing the report query :
SELECT request_for_vehicle_managament_details.date r_date, cast(replace(group_concat(concat(request_for_vehicle_managament_details.start_time," - ", request_for_vehicle_managament_details.end_time)),',', '\n') as char) as d_time, driver_master.first_name as name FROM request_for_vehicle_magament INNER JOIN request_for_vehicle_managament_details ON request_for_vehicle_magament.pk = request_for_vehicle_managament_details.request_for_vehicle_magament_pk INNER JOIN vehicle_master ON request_for_vehicle_managament_details.vehicle_master_pk = vehicle_master.pk INNER JOIN driver_master ON vehicle_master.driver_master_pk = driver_master.pk where request_for_vehicle_magament.date_from>=? and request_for_vehicle_magament.date_to<= ? group by request_for_vehicle_managament_details.date
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:372)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:196)
at com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.createDatasource(JRTimezoneJdbcQueryExecuter.java:168)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1087)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:668)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1281)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:900)
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:120) ...
10 more Caused by: java.sql.SQLException: Could not set parameter a
t org.mariadb.jdbc.internal.SQLExceptionMapper.getSQLException(SQLExceptionMapper.java:154)
at org.mariadb.jdbc.MySQLPreparedStatement.setParameter(MySQLPreparedStatement.java:443)
at org.mariadb.jdbc.MySQLPreparedStatement.setNull(MySQLPreparedStatement.java:173)
at org.apache.commons.dbcp.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:104)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setDate(JRJdbcQueryExecuter.java:642)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:577)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:399)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter$1.visit(JRJdbcQueryExecuter.java:332)
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter$QueryParameter.accept(JRAbstractQueryExecuter.java:157)
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter.visitQueryParameters(JRAbstractQueryExecuter.java:646)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:317) ... 17 more Caused by: org.mariadb.jdbc.internal.common.query.IllegalParameterException: No '?' on that position
at org.mariadb.jdbc.internal.common.query.MySQLParameterizedQuery.setParameter(MySQLParameterizedQuery.java:95)
at org.mariadb.jdbc.MySQLPreparedStatement.setParameter(MySQLPreparedStatement.java:441) ... 26 more
服务器遇到错误。请原谅给您带来的不便。
错误消息
填写报告时出错
错误跟踪
com.jaspersoft.jasperserver.api.JSException:填写报告时出错
jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$FillResultListener.reportFillError(EngineServiceImpl.java:1231)
net.sf.jasperreports.engine.fill.BaseFillHandle.notifyError(BaseFillHandle.java:211)
在net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:135)
在com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute上(EngineServiceImpl.java:878)
net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165)
位于com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:834)
位于com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1696)
位于com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1055)
在com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:989)上
位于com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:900),位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:724)处,由以下原因引起:net.sf.jasperreports.engine.JRException:准备用于执行报告查询的语句时出错:
选择请求车辆管理详细信息。日期r\u日期,强制转换(以字符形式替换组concat(concat(请求车辆管理详细信息。开始时间,“-”,请求车辆管理详细信息。结束时间)),,,,,,,“\n”)作为d\u时间,驾驶员姓名。第一个姓名作为车辆内部连接请求中的姓名车辆管理请求中的详细信息车辆管理请求中的详细信息。pk=车辆管理请求中的详细信息。车辆管理请求中的详细信息。车辆内部连接请求中的主控信息车辆上的驾驶员\u主机\u主机.driver\u主机\u pk=驾驶员\u主机.pk,其中请求车辆\u magament.date\u from>=?并请求车辆日期
=$P{start\u date}并请求车辆日期
屏幕iReport中报告输出的排序如下:
请提供解决方案或告诉我此异常的含义我知道问题在哪里,cast()中的问题