1. 程式人生 > >報表樣例——用BIRT實現不規則月份統計

報表樣例——用BIRT實現不規則月份統計

取出 evel 接口 php 簡單 term 當前 post http

來源: http://developer.actuate.com/community/forum/index.php?

/topic/36323-months-and-quarters-group-issue/

不規則月份統計:假設起始時間是2014-01-10。則將2014-01-10到2014-02-09作為一組,將2014-02-10到2014-03-9作為一組。

假設起始時間是2014-01-31,則將2014-02-27作為一組,將2014-02-28到2014-03-30作為一組。

集算器代碼:

技術分享

A1:依據起止時間查詢數據庫,當中startDate和endDate是外部參數。

A2:依據起止時間算出月份間隔。比方2014-01-31和2014-07-31間隔6個月。

B2:依據起始時間和日期間隔算出不規則月份的開始日期,並將起始時間插入第1位。“|”表示合並,“~”表示集合中的當前成員,即數字1到6,After函數能夠正確計算不規則月份。結果例如以下:

技術分享

A3:按B2區間對A1分組,統計出不規則月份的銷售額,並將B2作為最後一列。函數pseg可返回數據所在的區間號。

~.sum(Amount)中的~表示分組後的當前組。

#表示A1當前組號。計算結果例如以下:

技術分享

A4:取出A3的第2和第3列,返回給報表工具。集算器對外提供JDBC接口。報表工具會將集算器識別為普通數據庫。

以下用BIRT設計簡單的list表:

技術分享

報表調用集算器的方法和調用存儲過程一樣,比方將本腳本保存為BirtUnregulMonth.dfx,則在BIRT的存儲過程設計器中能夠用callBirtUnregulMonth(?,?

)來調用。

預覽後表例子如以下:

技術分享


報表樣例——用BIRT實現不規則月份統計