• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

java 来源:kinkee 5次浏览

我目前在时间序列图内面临时间段的一些问题。JasperReports:在时间序列图中动态设置时间段

我想achiveve什么: – 用户可以选择两种日期;这些日期之间的数据将被报告 – 用户还可以在创建报告前选择时间段[年,月,日]

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

<code class="prettyprint-override"><timeSeriesDataset timePeriod="$P{TimePeriod}"> 
</code>

但是在编译的时候,我发现了以下错误:

<code class="prettyprint-override">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. 
</code>

我用尽了一切(例如,改变参数的数据类型,…),但我总是得到这个错误。它甚至有可能设置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> 

对不起,没有什么更清洁。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)