1

我目前在时间序列图表中面临一些时间段问题。

我想要实现的目标: - 用户可以选择两个日期;这些日期之间的数据将被报告 - 用户还可以在创建报告之前选择时间段 [Year, Month, Day]

我试图设置时间段的方式是通过参数设置属性 timePeriod,如下所示:

<timeSeriesDataset timePeriod="$P{TimePeriod}">

但是在尝试编译时,我收到以下错误:

org.xml.sax.SAXParseException: cvc-enumeration-valid: 
Value '$P{TimePeriod}' is not facet-valid with respect to enumeration 
'[Year, Quarter, Month, Week, Day, Hour, Minute, Second, Milisecond]'. 
It must be a value from the enumeration.

我已经尝试了一切(例如更改参数数据类型,...),但我总是最终得到这个错误。甚至可以动态设置timePeriod吗?以及如何实现?

在此先感谢您的帮助!

4

1 回答 1

0

不幸的是,简短的回答是否定的。请参阅此功能请求http://jasperforge.org/projects/ireport/tracker/view.php?id=4629

但是,你可以做一个 hack。三份图表副本

<band height="240">
    <printWhenExpression><![CDATA["Year".equals($P{TimePeriod})]]></printWhenExpression>
    <timeSeriesChart>
        ...
        <timeSeriesDataset timePeriod="Year">
        ...
</band>
<band height="240">
    <printWhenExpression><![CDATA["Month".equals($P{TimePeriod})]]></printWhenExpression>
    <timeSeriesChart>
        ...
        <timeSeriesDataset timePeriod="Month">
        ...
</band>
<band height="240">
    <printWhenExpression><![CDATA["Day".equals($P{TimePeriod})]]></printWhenExpression>
    <timeSeriesChart>
        ...
        <timeSeriesDataset timePeriod="Day">
        ...
</band>

抱歉,没有更干净的东西。

于 2012-05-23T00:22:59.707 回答