首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能按类型分组相加?

我怎样才能按类型分组相加?
EN

Stack Overflow用户
提问于 2016-01-14 20:26:16
回答 1查看 155关注 0票数 1

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

代码语言:javascript
复制
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数据源,它有一个包含必要列的表。我可以创建一个报告,其中收入按日分组(我用一个组实现了这一点,在select语句中使用了order-by )。就像这样:

代码语言:javascript
复制
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...)

但我不能在每一天结束时计算出总数。是否有办法,达到报告中按类别分列的部分?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-15 08:20:29

在jasper中分组时,您将访问两个新乐队,groupHeadergroupFooter

您需要在groupFooter中添加sum表。

普通设计(重新设计报告,以避免需要新的数据源,分组也在类别上)

代码语言:javascript
复制
2016-01-01
     Category         Description               Income
     --------         ------------               ------
            A         ...                        1230
            A         ...                         100 
     +--------------------------------------------------+
    Total sum category A                         1335

            B         ...                        1000

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

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

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

subreportjr:table中添加groupFooter,并使用日期作为参数重新查询数据库(按类别和和值分组)

解决方案2 (创建jasper,JRDefaultScriptlet)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34799068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档