- jasper-reports/
- Jasper reports JasperReport:如何从;oracle.sql.TIMESTAMP';领域
Jasper reports JasperReport:如何从;oracle.sql.TIMESTAMP';领域
Jasper reports JasperReport:如何从;oracle.sql.TIMESTAMP';领域,jasper-reports,Jasper Reports,我正在使用iReport 4.5.1,需要从oracle.sql.TIMESTAMP获取日期
在我用这两个词试过的表达中:
$F{DELIVERY_DATE}.dateValue()
$F{DELIVERY_DATE}.timestampValue()
但我得到了相同的运行时错误
JasperReport错误:
填充打印时出错…计算表达式时出错:
源文本:$F{DELIVERY_DATE}.dateValue()net.sf.jasperreports.engine.fill.jrepressi
我正在使用iReport 4.5.1,需要从oracle.sql.TIMESTAMP获取日期
在我用这两个词试过的表达中:
$F{DELIVERY_DATE}.dateValue()
$F{DELIVERY_DATE}.timestampValue()
但我得到了相同的运行时错误
JasperReport错误:
填充打印时出错…计算表达式时出错:
源文本:$F{DELIVERY_DATE}.dateValue()net.sf.jasperreports.engine.fill.jrepressionevalexception:计算表达式时出错:
源文本:$F{DELIVERY_DATE}.dateValue()位于net.sf.jasperreports.engine.fill.jrelevaluator.evaluate(jrelevaluator.java:203)
在net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)
在net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)中
位于net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:876)
位于net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:421)
位于net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:406)
位于net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
位于net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:473)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:434)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:398)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:259)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
位于net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
位于net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
位于net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
位于com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879)
位于org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
位于org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
原因:java.lang.ClassCastException:oracle.sql.TIMESTAMP无法强制转换为oracle.sql.TIMESTAMP
在列表框1439547941026中进行评估(列表框1439547941026:438)
在net.sf.jasperreports.engine.fill.JREvaluator.evaluate上(JREvaluator.java:190)
…还有19个
提前谢谢
Anand这个问题已经在这里解决了试试这个
在iReport中,JasperReport文件的XML文件:
<queryString>
<![CDATA[*your query*]]>
</queryString>
<field name="DELIVERY_DATE" class="oracle.sql.TIMESTAMP"/>
<field name="NAME" class="java.lang.String"/>
试着改变一下
<queryString>
<![CDATA[*your query*]]>
</queryString>
<field name="DELIVERY_DATE" class="java.util.Date"/>
<field name="NAME" class="java.lang.String"/>
在JasperReport中修改报告查询时,您可能正在直接使用oracle数据库到JasperReport的数据类型oracle.sql.TIMESTAMP
i、 e.尝试将jasperReport文件中的oracle.sql.TIMESTAMP
更改为java.util.Date
,并直接使用Jasper报告中的DELIVERY\u Date字段
注意:
如果您在JasperReport的“报告查询”部分中对那些导致搜索“oracle.sql.TIMESTAMP不能转换为oracle.sql.TIMESTAMP”的查询进行修改,则您可能必须在JasperReport的XML中将DELIVERY_DATE的数据类型反复修改为java.util.DATE
搜索查询-除了Jasper,这可能发生在其他情况下-例如,对我来说,我在tomcat上使用我的项目,ojdbc6.jar都加载在我的webapp和tomcat/lib文件夹中。解决方案是在我的webapp的Maven依赖项中指定ojdbc6库的“提供”范围
给出了问题的根源