2011-12-21 21 views
2

我不知道這是否可能,但我想知道是否有可能使用iReport Designer創建報表,用戶在查看報表時能夠控制分組。JasperReports分組可由用戶更改

例如,我希望用戶能夠重新排序分組,並且還可以更改報表分組的級別(僅限於一個字段或多個分組)。

我的意思不是SQL分組順便說一句,我的意思是,例如通過帳戶,然後代理分組:

| Account | Agent | Invoice | Total | 
+----------+---------+----------+-------+ 
| Account1 |   |   |  | 
|   | Joe |   |  | 
|   |   | Invoice2 | $600 | 
|   |   | Invoice1 | $300 | 
| Account2 |   |   |  | 
|   | Sam |   |  | 
|   |   | Invoice4 | $120 | 
|   |   | Invoice7 | $230 | 
|   | Joe |   |  | 
|   |   | Invoice3 | $200 | 
+----------+-- ------+----------+-------+ 

什麼我想出來是圖,你可以使用的iReport,使這個分組動態?也就是說,用戶可能希望先按代理進行分組,然後再按帳戶分組,而不是爲每個分組分配一個報告,如果有與iReport一起執行此操作的方法,那麼該分組會很好。

+0

您可以爲此使用[JasperReports API](http://jasperreports.sourceforge.net/api/index.html)或[DynamicJasper API](http://dynamicjasper.com/docs/current/xref/)需要。或者,您可以使用多個模板,例如。 – 2011-12-21 12:23:05

+0

是的,我意識到這些,但希望有一種方法可以將這種數據嵌入到您可以導入JasperReports服務器的報告中。我開始懷疑它不是。 – mludd 2011-12-21 12:28:06

+0

您可以嘗試使用'groupExpression'中的參數。示例:'<![CDATA [$ P {groupByParam}]]>'。我認爲支持這樣的報告將非常困難。 – 2011-12-21 12:44:56

回答

1

是的,應該可以創建類似的報告。但根據您的確切需求,它可能不實際(如Alex K所示)。

如果您只考慮您在帳戶上的分組示例,那麼代理或分組在代理上的帳戶就會很簡單。有一個讓用戶指定此選項的參數。這可能是一個下拉列表。然後在報告中你會喜歡這個字段:

今天的版本:$F{Account}$F{Agent}

動態版:$P{AcctFirst} ? $F{Account} : $F{Agent}$P{AcctFirst} ? $F{Agent} : $F{Account}

同樣,組定義需要包括新的AcctFirst PARAM。

但它不會很好地延伸。如果這兩個字段是不同的數據類型呢?如果您想讓用戶從3個或4個或N個字段中進行選擇,該怎麼辦?每一個都是可以解決的......但報告成指數地變得更加複雜。

順便說一下,這是比較常見的要求。你會看到像這樣的功能進入JasperReports。但現在這是一個艱難的。