当前位置: 首页 > 知识库问答 >
问题:

如何在JasperReports中使用DynamicJasper在没有组的情况下在页脚处显示每列的总和?

何兴安
2023-03-14

我尝试使用下面的方法

drb.addGlobalFooterVariable(totalAmount, DJCalculation.SUM);
drb.addGlobalFooterVariable(basicAmount, DJCalculation.SUM);

但是它显示了最后一行(每列)的值,而不是页脚中每列的总和(如图所示)。

我错过什么了吗?

共有2个答案

孙胜泫
2023-03-14

你好?这个问题可能很老,但为了未来的观众,我会回答它。我在动态jasper中遇到了同样的问题。我将列属性设置为字符串而不是双精度。将其更改为双精度解决了问题,现在总数可以了。这就是我所拥有的

            AbstractColumn ENGLISH = ColumnBuilder.getNew()
                .setColumnProperty("TOTAL%", String.class.getName())
                .setTitle("ENG").setWidth(new Integer(80))
                .setStyle(detailStyle1).setHeaderStyle(headerStyle)
                .build();

所以我改了这个

.setColumnProperty("TOTAL%", String.class.getName())

到这个

.setColumnProperty("TOTAL%", Double.class.getName())

我希望这有帮助。

缪晋
2023-03-14

这是基于DynamicJasper官方网站的示例的工作代码。

DynamicReportBuilder drb = new DynamicReportBuilder();
drb
        .setTitleStyle(titleStyle)
        .setTitle("Report with grand total")
        .setDetailHeight(15).setHeaderHeight(10)
        .setGrandTotalLegend("Grand Total")
        .setGrandTotalLegendStyle(footerStyle)
        .setDefaultStyles(titleStyle, null, headerStyle, detailStyle)
        .setPrintColumnNames(true);

AbstractColumn columnState = ColumnBuilder.getNew()
        .setColumnProperty("state", String.class.getName())
        .setTitle("State").setWidth(85)
        .build();

AbstractColumn columnBranch = ColumnBuilder.getNew()
        .setColumnProperty("branch", String.class.getName())
        .setTitle("Branch").setWidth(85)
        .setStyle(detailStyle).setHeaderStyle(headerStyle)
        .build();

AbstractColumn columnnProductLine = ColumnBuilder.getNew()
        .setColumnProperty("productLine", String.class.getName())
        .setTitle("Product Line").setWidth(85)
        .setStyle(detailStyle).setHeaderStyle(headerStyle)
        .build();

AbstractColumn columnnQuantity = ColumnBuilder.getNew()
        .setColumnProperty("quantity", Long.class.getName())
        .setTitle("Quantity").setWidth(80)
        .setStyle(rightAlignedStyle).setHeaderStyle(headerStyle)
        .build();

AbstractColumn columnAmount = ColumnBuilder.getNew()
        .setColumnProperty("amount", Float.class.getName())
        .setTitle("Amount").setWidth(90).setPattern("$ 0.00")
        .setStyle(rightAlignedStyle).setHeaderStyle(headerStyle)
        .build();

drb.addGlobalFooterVariable(columnAmount, DJCalculation.SUM, footerStyle);
drb.addGlobalFooterVariable(columnnQuantity, DJCalculation.SUM, footerStyle);

drb.addColumn(columnState);
drb.addColumn(columnBranch);
drb.addColumn(columnnProductLine);
drb.addColumn(columnnQuantity);
drb.addColumn(columnAmount);

drb.setUseFullPageWidth(true);

输出结果为:

 类似资料:
  • 问题内容: 我正在尝试在HTML页面上显示一些JavaScript变量。我第一次使用它,但是当调用该函数时,它用于覆盖当前页面。 在四处搜寻之后,普遍的共识是人们对此不太喜欢。还有哪些其他选择? 我找到了一个建议使用的页面,但该页面写于2005年。 问题答案: 几乎是要走的路。以下是使用它的几种方法: HTML JavaScript 如果您只想更新I 的一部分,通常只需要添加一个类似或类的空元素,

  • 我正在使用DynamicJasper API开发pdf报告。 根据要求,我必须在页眉和页脚显示一个徽标。我可以使用DynamicReportBuilder在标题处显示徽标。addImageBanner方法。但我没有找到在页脚添加图像的方法。 我在动态jasper论坛上看到了一些关于这个问题的帖子,其中提到的一个解决方法是使用pageFooter band创建一个jrxml模板。 我尝试了这个,但没

  • 问题内容: 构建通知时,如何发出没有声音的通知?我正在构建通知,我的用户不喜欢它发出声音的事实。 如何将其更改为无声/无声? 我如何显示通知: 我尝试在Google上进行搜索,但我得到的唯一结果是如何播放声音,而不是不播放声音… 编辑 在某些人看来,它可能是重复的,但是在我的我无法找到指定默认值的替代方法,而此新方法称为setDefaults 问题答案: 删除的行。它不会播放声音,但是如果需要,您

  • 我正在玩grpc 有人成功使用进行生产吗?我们需要包括特使在内的所有依赖项吗?

  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?

  • 问题内容: 我在整个应用程序中都使用spring 。现在,我也想为一个没有的创建一个。那有可能吗? 问题答案: JPA要求每个实体都有一个ID。因此,不可以,没有ID的实体是不允许的。 每个JPA实体都必须有一个主键。 从JPA规范 您可能想从这里阅读更多有关JPA如何处理数据库端没有ID的情况的信息(请参阅“无主键”)。