如何在JasperReports的jrxml中将日期作为字段传递?

时间:2010-04-14 12:38:38

标签: jasper-reports

我想将日期作为字段传递给jrxml。 以下是它的代码。

<xyLineChart> 
    <chart evaluationTime="Band"> 
        <reportElement x="0" y="0" width="555" height="500"/> 
    </chart> 
    <xyDataset> 
        <dataset incrementType="None"/> 
        <xySeries> 
            <seriesExpression><![CDATA["CpuUsageGraph"]]></seriesExpression> 
            <xValueExpression><![CDATA[new java.util.Date($F{time}.getTime())]]></xValueExpression> 
            <yValueExpression><![CDATA[$F{cpuUsage}]]></yValueExpression>
        </xySeries> 
    </xyDataset> 
    <linePlot> 
        <plot/> 
    </linePlot> 
</xyLineChart>

但它不起作用。 它给出错误,因为无法从日期转换为数字。 然后如何转换呢?

2 个答案:

答案 0 :(得分:0)

我看不到附加的JRXML。但是,在文本编辑器中打开JRXML文件,并检查字段是否定义如下:

<field name="MyDate" class="java.util.Date"/>

答案 1 :(得分:0)

您正在time的构造函数中使用Date字段。没必要。

而不是:

java.util.Date($F{time}.getTime())

使用它:

$F{time}

如果你想要它的long值:那就用这个

$F{time}.getTime()

<强>更新
我没有注意到你正在使用图表,这是一个新的答案:

在图表中,X和Y值表达式应该是任何Number对象,检查Number Class JavaDoc中的子类,在您的情况下,您获得long的{​​{1}}值无法转换为Time的字段,您需要定义一个新对象,例如:

Number


侧注:在这种情况下,报告将编译并运行,但是,您获得的毫秒数并在图表中使用它。我认为这不是你想要的。因此,我建议您从{{1>}字段中提取特定字段,例如 Day ......等