我目前在时间序列图表中的时间段方面遇到一些问题。
我想要实现的目标: - 用户可以选择两个日期;将报告这些日期之间的数据 - 用户还可以在创建报告之前选择时间段[年、月、日]
我尝试设置时间段的方法是通过参数设置属性 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?又如何实现呢?
预先感谢您的帮助!
最佳答案
不幸的是,简短的答案是否定的。请参阅此功能请求 http://jasperforge.org/projects/ireport/tracker/view.php?id=4629
但是,您可以进行黑客攻击。图表三份
<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>
抱歉,没有更干净的东西。
关于java - 贾斯珀报告 : Dynamically set time period in time series chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10426898/