java - 使用 Excel 报告中的 DynamicJasper 在列页脚中添加自定义计算

标签 java jasper-reports export-to-excel dynamic-jasper

我使用的是DynamicJasper版本4.0.2,并且我已经创建了Excel格式的报告。

该报告包含三列,例如 A、B 和 C。
在页脚中,我想要 A 列的总计,即 SUM(A) 和 B 列,即 SUM(B),而 C 列的总计=(SUM(B)/SUM(A))*100。

但是,我可以使用 drb.addGlobalFooterVariable(columnA, DJCalculation.SUM) 添加 A 列和 B 列的总计。和drb.addGlobalFooterVariable(columnB, DJCalculation.SUM) .

但是我无法按照上面解释的公式找到 C 列的解。

我用谷歌搜索,但没有得到任何相关的帖子。请帮助我。

最佳答案

我通过使用 Dynamic Jasper 中的 CustomExpression 类得到了解决方案。下面是一个示例,

     private AbstractColumn COLUMN_C;
     DynamicReportBuilder drb = new DynamicReportBuilder();
     COLUMN_C = ColumnBuilder.getNew().setColumnProperty("columnC",Double.class.getName()).setTitle("C").setHeaderStyle(headerStyle).setFixedWidth(false).setStyle(detailCurrencyStyle).setPattern("###0.00;-###0.00").build();
     drb.addGlobalFooterVariable(COLUMN_C, new CustomExpression() {

                @Override
                public Object evaluate(Map fields, Map variables, Map parameters) {
                    double totalOfColumnC = 0.00;
                    totalOfColumnC = ( totalOfColumnB/ totalOfColumnA) * 100;
                    return totalOfColumnC;

                }

                @Override
                public String getClassName() {
                    return Double.class.getName();
                }
            });

关于java - 使用 Excel 报告中的 DynamicJasper 在列页脚中添加自定义计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24450260/

相关文章:

java 如何对 JFreeChart AreaChart 进行渐变绘制

java - 开源 Swing 应用程序

sql-server - SSRS Excel 导出为组添加总行数,而不是其他格式

php - 在PHP中导出为Excel和PDF,导致代码冗余

python - Pandas:导出到 Excel 时如何格式化行和列(行格式优先)?

java - Java 中的正则表达式 - 正则表达式

java - 使用 Apache Http 客户端进行 POST 请求

java - 在 Spring 中停止 HTTP 请求超时

jasper-reports - 将标记 html 字段导出到 csv,字符编码 - Jasper

jasper-reports - Jasper - 带条件的框架和调整大小