1. 程式人生 > >BIRT實現組內跨行計算

BIRT實現組內跨行計算

ng- font 這樣的 合並 進行 行數據 top article groups

問題來源:http://developer.actuate.com/community/forum/index.php?/topic/36160-dealing-with-previous-rows-groups-sorts-and-subtotals/

組內跨行計算一般要用SQL窗體函數或報表腳本去實現。但代碼比較復雜。這樣的情況下能夠用集算器來輔助報表工具。以下用樣例來說明。

庫表sample有三個字段,當中id是分組字段。須要設計一張分組表,id是分組字段,明細字段是v1,v2以及計算列crossline, crossline的算法是v1+v2+本組內上一條記錄中的v1+本組內上一條記錄中的v2。源數據例如以下:

技術分享

用集算器進行數據整理:

技術分享

A1:查詢數據庫。多產生一列常數備用。

A2:按id分組。並在每組數據中改動計算列crossline,最後合並。計算結果例如以下:

技術分享

A3:將計算結果返回給報表工具。集算器對外提供JDBC接口。報表工具會將集算器識別為普通數據庫。


BIRT實現組內跨行計算