jasper-reports - 贾斯珀报告 : How to get date from the "oracle.sql.TIMESTAMP' field?

标签 jasper-reports

我使用的是 iReport 4.5.1,我需要从 oracle.sql.TIMESTAMP 获取日期。
在表达式中我尝试使用这两个:

  1. $F{DELIVERY_DATE}.dateValue()
  2. $F{DELIVERY_DATE}.timestampValue()

但我遇到了相同的运行时错误

JasperReport 错误:

Error filling print... Error evaluating expression :      Source text : $F{DELIVERY_DATE}.dateValue() net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :      Source text : $F{DELIVERY_DATE}.dateValue()      at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)      at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)      at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)      at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:876)      at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:421)      at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:406)      at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)      at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:473)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:434)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:398)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:259)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)      at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)      at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879)      at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)  Caused by: java.lang.ClassCastException: oracle.sql.TIMESTAMP cannot be cast to oracle.sql.TIMESTAMP      at Liste_colisage_par_rack_1439547941026_908820.evaluate(Liste_colisage_par_rack_1439547941026_908820:438)      at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)      ... 19 more

提前致谢

阿南德

最佳答案

试试这个

在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 的DataType oracle.sql.TIMESTAMP

即尝试在 jasperReport 文件中将 oracle.sql.TIMESTAMP 更改为 java.util.Date 并直接在 Jasper Report 中使用DELIVERY_DATE Field

注意:
如果修改 JasperReport 报表查询部分的查询,可能需要在 JasperReport 的 XML 中重复修改 DELIVERY_DATE 的 dataType 为 java.util.Date

关于jasper-reports - 贾斯珀报告 : How to get date from the "oracle.sql.TIMESTAMP' field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012503/

相关文章:

不使用bands的Java文档生成工具

java - 如何实现动态细节带高度(取决于文本长度)?

java - jasperreports - pdf 字体粗体仅显示普通字体

java - 如何将 Google Visual API 图表嵌入到 JasperReports 中?

java - jasperreport生成的条形码无法扫描

java - 从 Applet 打印 JasperReport

grails - Grails Jasper隐藏参数

jasper-reports - 在 Jaspersoft Studio 中用虚线创建 TOC

java - 未找到 SAX2 驱动程序类

java - Jasper Reports 中的空白子报表