【发布时间】:2017-07-05 15:14:31
【问题描述】:
我已经查看了有关此主题的所有其他问题,并按照其中提到的所有步骤进行操作,但是在尝试将整个 SQL 语句作为参数传递时仍然出现错误。
这是我的 SQLQuery 参数:
<parameter name="SQLTag" class="java.lang.String">
<defaultValueExpression><![CDATA["SELECT * FROM REPORT_VER WHERE TAG BETWEEN $P{Von} AND $P{Bis}"]]></defaultValueExpression>
</parameter>
我已经检查过了,当直接传递到 Report SQL 字段时,SQL 工作得非常好。 但是,因为我想要有条件的 SQL 查询,我需要它们通过参数传递。有人知道我错过了什么吗?
我尝试在 queryString/
中使用$P{SQLTag} 和 $P!{SQLTag} 表达式
堆栈跟踪:
net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Abnahme.
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.fillReport(ReportControler.java:548)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.access$20(ReportControler.java:523)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler$5.run(ReportControler.java:404)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Abnahme.
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:344)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1245)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:723)
at net.sf.jasperreports.engine.fill.BaseReportFiller.setParameters(BaseReportFiller.java:438)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:550)
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:123)
【问题讨论】:
标签: sql parameters jasper-reports