2012-05-03 56 views
1

我目前在時間序列圖內面臨時間段的一些問題。JasperReports:在時間序列圖中動態設置時間段

我想achiveve什麼: - 用戶可以選擇兩種日期;這些日期之間的數據將被報告 - 用戶還可以在創建報告前選擇時間段[年,月,日]

我試圖設置時間段的方式是通過設置屬性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動態?以及如何實現它?

在此先感謝您的幫助!

回答

0

不幸的是,簡短的答案是否定的。看到此功能要求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> 

對不起,沒有什麼更清潔。