2017-07-20 86 views
0

我們通過JasperReport的領域層從數據庫中獲取事件的記錄。每個記錄包含用戶和時間值:Jaspersoft Studio:按小組頁腳中的計算值排序表?

userid0 | 00:20:10 | 00:15:00 
userid2 | 00:12:00 | 00:17:00 
userid0 | 00:05:05 | 00:02:30 
userid1 | 00:25:00 | 00:50:00 

我們的表格應列出每個用戶的累計值。每個記錄的時間可以簡單地歸結爲一個變量。對於結果上面的例子將是:

userid0 | 00:25:15 | 00:17:30 
userid1 | 00:25:00 | 00:50:00 
userid2 | 00:12:00 | 00:17:00 

此外應顯示所得到的兩個時間值的比率(作爲百分比)。
計算是通過對用戶進行分組完成的,結果顯示在組頁腳中(丟棄「詳細信息」);所以在這裏,我們將有三個組頁腳:

userid0 | 00:25:15 | 00:17:30 | 144% 
userid1 | 00:25:00 | 00:50:00 | 50% 
userid2 | 00:12:00 | 00:17:00 | 71% 

如何根據第4列中的「%」值對錶格進行排序?該值不對應於數據字段,並且僅包含在組頁腳中。但是要求是用這個值對整個表進行排序,例如從50%上升到144%,並且另外將結果限制到第一(或最後)5行(即用戶)。

當然,所需的結果可以通過SQL來實現,但是如上所述,我們正在使用領域層。

回答

0

雖然回答自己的問題似乎是一個奇怪的方法我寫這(至少)用於文檔目的:

研究和試驗後&錯誤,我們決定去沒有在這種情況下,領域層,因爲這似乎根本不可行。一個精心製作的SQL語句可以做到這一點。

這簡化了表格,因爲計算和分組是由數據庫完成的(從而提高了性能),因此報表的表格中不再需要分組 - 我們可以按照常規方式使用細節部分,只需顯示查詢結果。