Java JasperReports:在时间序列图中动态设置时间段

Java JasperReports:在时间序列图中动态设置时间段,java,jasper-reports,time-series,jasperserver,Java,Jasper Reports,Time Series,Jasperserver,我目前在时间序列图的时间段方面遇到了一些问题 我想要实现的目标是: -用户可以选择两个日期;将报告这些日期之间的数据 -用户还可以在创建报告之前选择时间段[年、月、日] 我试图设置时间段的方法是通过如下方式设置属性timePeriod by参数: 但在尝试编译时,我得到以下错误: org.xml.sax.SAXParseException:cvc枚举有效: 值“$P{TimePeriod}”对于枚举无效 “[年、季、月、周、日、时、分、秒、毫秒]”。 它必须是枚举中的值。 我尝试了所有方法

我目前在时间序列图的时间段方面遇到了一些问题

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

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


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

org.xml.sax.SAXParseException:cvc枚举有效:
值“$P{TimePeriod}”对于枚举无效
“[年、季、月、周、日、时、分、秒、毫秒]”。
它必须是枚举中的值。
我尝试了所有方法(例如,更改参数数据类型,…),但最终总是出现此错误。甚至可以动态设置时间段吗?如何实现这一目标


提前感谢您的帮助

不幸的是,简短的回答是否定的。请参阅此功能请求

然而,你可以做一个黑客。图表的三份副本

<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>

...
...
...
...
...
...
对不起,没有更干净的了