按段分組是一個比較典型的高階分組報表樣式,其分組是根據資料的值段來分的,比如按照分數段、年齡段、時間段等,屬於某個值區間的記錄歸到一個組裡顯示,如下圖:
工具/原料
Java報表開發外掛:FineReport
電腦
方法/步驟
新建報表,新增資料集
新建工作薄,新增資料集ds1,SQL語句為SELECT 僱員ID, 職務, strftime('%Y','now')-strftime('%Y',出生日期) +1 AS 年齡 FROM [僱員]。
僱員表中存的是僱員的出生日期,因此在SQL中我們使用SQL函式strftime('%Y','now')-strftime('%Y',出生日期) +1根據出生日期計算出員工的年齡。
表樣設計
如下圖製作報表:
資料列設定如下:
單元格資料集資料列屬性
A3ds1職務從上到下擴充套件,居中,其餘預設
B2ds1年齡從左到右擴充套件,居中,其餘預設
B3ds1僱員ID彙總-個數,不擴充套件,居中,其餘預設
設計器預覽模板,此時會將所有年齡都擴展出來,我們希望將年齡分成段顯示。
自定義條件分組設定
選中年齡資料列所在單元格,資料設定修改為分組>高階,點選後面的自定義按鈕,彈出自定義分組對話方塊,選擇條件分組:
我們將年齡分成四段,分別如下:
組1:命名為小於20歲,條件為年齡小於20;
組2:命名為20~30歲,條件為年齡大於等於20 and 年齡小於30;
組3:命名為30~40歲,條件為年齡大於等於30 and 年齡小於40;
組4:命名為大於40歲,條件為年齡大於等於40。
儲存並預覽
儲存模板,設計器中點選分頁預覽,效果如上。模板效果線上檢視請點選CusGroup_2.cpt
強制分組
由預覽效果可以看到,由於沒有符合“小於20歲”的年齡,因此沒有顯示出“小於20歲”這一組,若希望即使沒有符合的的資料,顯示出所有定義的分組的話,可以在自定義分組介面選擇強制分組,結果如下: