我怎样才能按类别汇总?

时间:2016-01-14 20:26:17

标签: jasper-reports

我想创建一个Jasper模板,它提供以下输出:

2016-01-01
     Category         Descritpiton               Income
     --------         ------------               ------
            A         ...                        1230
            B         ...                        1000
            A         ...                         100
            C         ...                        2500
            B         ...                          10
            A         ...                          10
            A         ...                           5
    +--------------------------------------------------+
    Sum
            A                                    1355
            B                                    1010
            C                                     100

2016-01-02
     Category         Descritpiton               Income
     --------         ------------               ------
            A         ...                         500
            B         ...                         100
            B         ...                         100
            E         ...                        2500
            B         ...                          10
            A         ...                          10
            A         ...                           5
    +--------------------------------------------------+
    Sum
            A                                     515
            B                                     210
            E                                    2500

(more days...)

我有一个SQL数据源,带有必要列的表。我可以创建一个报告,其中按天分组的收入(我用一个组实现了这个,并在SQL select语句中实现了一个order-by)。像这样:

2016-01-01
     Category         Descritpiton               Income
     --------         ------------               ------
            A         ...                        1230
            B         ...                        1000
            A         ...                         100
            C         ...                        2500
            B         ...                          10
            A         ...                          10
            A         ...                           5

2016-01-02
     Category         Descritpiton               Income
     --------         ------------               ------
            A         ...                         500
            B         ...                         100
            B         ...                         100
            E         ...                        2500
            B         ...                          10
            A         ...                          10
            A         ...                           5

(more days...)

但我不能在每天结束时创造总和。有没有办法实现报告中给定的按类别划分的部分?

1 个答案:

答案 0 :(得分:1)

在jasper报告中进行分组时,您可以访问两个新频段,groupHeadergroupFooter

您需要在groupFooter

中添加总和表

正常设计(重新设计报告以避免需要新的数据源,也可以对类别进行分组)

2016-01-01
     Category         Description               Income
     --------         ------------               ------
            A         ...                        1230
            A         ...                         100 
     +--------------------------------------------------+
    Total sum category A                         1335

            B         ...                        1000

           ..........................................
    Total sum  all                               6000

如果这不是一个选项,您将需要一个新的数据源作为总和表

解决方案1 ​​(重新查询):

subreport中添加jr:tablegroupFooter,并使用日期作为参数(类别和总和值组)重新查询数据库

解决方案2 (创建jasper报告scriplet,JRDefaultScriptlet

创建一个扩展JRDefaultScriptlet类的java类,它在报表填充时存储和汇总值。在解决方案1中,调用scriptlet以获取可用作数据源以填充总和表的JRBeanCollectionDataSource