報表例子——用BIRT實現不規則月份統計,報表例子birt

來源:互聯網
上載者:User

報表例子——用BIRT實現不規則月份統計,報表例子birt

      來源:     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(?,?)來調用。預覽後表樣如下:


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.