java - 贾斯珀报告 : Dynamically set time period in time series chart

标签 java jasper-reports time-series jasperserver

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

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

我尝试设置时间段的方法是通过参数设置属性 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/

相关文章:

java - JasperReport JRDesign 实现

java - 使用 PHP 将二进制流写入浏览器

r - 从 geom_smooth() 中提取多条趋势线的斜率

java - 当对象数量超过 `int` 所能容纳的数量时,身份哈希码会发生什么情况?

java - 实时写入并删除文件 JAVA 中的最后一个字符

java - 在 Jasper 报告中查找资源包属性

java - JFreeChart - 创建移动图表时出现问题

r - 插入缺少日期的动物园对象

java - 用于投资组合选择的纯 Java 开源库(= 受约束的非线性优化)?

java - 请求作用域的 bean 和数据模型初始化?