我想将日期作为字段传递给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>
但它不起作用。 它给出错误,因为无法从日期转换为数字。 然后如何转换呢?
答案 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 。 月,年 ......等