【问题标题】:Add Custom Calculations in the Column Footer using DynamicJasper in Excel report在 Excel 报告中使用 DynamicJasper 在列脚注中添加自定义计算
【发布时间】:2014-06-27 11:03:45
【问题描述】:

我使用的是 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)drb.addGlobalFooterVariable(columnB, DJCalculation.SUM) 将 A 列和 B 列的总数相加。

但我无法按照上面解释的公式找到 columnC 的解决方案。

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

【问题讨论】:

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


    【解决方案1】:

    我通过在 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();
                    }
                });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多