java - 获取 iReport 中的字段总计

标签 java jasper-reports

我有一个jTable,其中有两列:流出金额。 我使用 iReport 并打印 jTable 中的内容,没有错误。现在我想获取 Amount 字段的总计。

我尝试了很多方法。这表明类型转换问题。我知道出错的地方。这是我创建的字段名称,用于导入jTable的金额详细信息(我将其创建为COLUMN_1并且字段类是字符串)这里我使用字段类作为字符串,因为如果我使用整数它会给出此错误:-

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :   Source text : $F{COLUMN_1}

但问题是。那应该是整数。否则我们无法从该字段进行计算。如果我将其设置为整数,则会发生上述错误。这是我的报告查看代码

try {
        JRTableModelDataSource datasource = new JRTableModelDataSource(jt.getModel());
        String report = url;
        JasperReport jr = JasperCompileManager.compileReport(report);

        Map<String, Object> params = new HashMap<String, Object>();
        params.put("rep_title",jLabel1.getText());
        JasperPrint jp = JasperFillManager.fillReport(jr, params, datasource);
        JasperViewer.viewReport(jp, false);
    } catch (Exception e) {
        //JOptionPane.showMessageDialog(this, e);
        System.out.println(e);
    }

请为我的错误做一些事情。

最佳答案

您可能对字段和变量有不同的类定义。

如果我们认为 $F{COLUMN_1}java.lang.Integer 这将是正确的方法

在传递给表的 subDataset 中定义字段和变量

<field name="COLUMN_1" class="java.lang.Integer">
        <fieldDescription><![CDATA[]]></fieldDescription>
</field>

<variable name="TOTAL" class="java.lang.Integer" calculation="Sum">
  <variableExpression><![CDATA[$F{COLUMN_1}]]></variableExpression>
</variable>

注意:同一个类 java.lang.Integer

然后将变量 $V{TOTAL} 添加为文本字段,我猜是在 jr:columnFooter

<textField>
  <reportElement x="0" y="0" width="90" height="41" uuid="2c37dd10-91c4-4502-b6b0-5d09268153fa"/>
 <textFieldExpression><![CDATA[$V{TOTAL}]]></textFieldExpression>
</textField>

请确保不要向 textfield 中的 $V{TOTAL} 添加任何 String 函数,$V{TOTAL}.indexOf(...) 将不起作用,您需要首先获取 String 对象 es。 $V{TOTAL}.toString().indexOf 可以工作

关于java - 获取 iReport 中的字段总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712674/

相关文章:

java - 如何从 Java 中的字节数组创建 Zip 文件

java - 需要一个创建按钮的 Java 方法

java - 模式计数在 0's and stat and end with "1"之间

java - 如何在 lombok 中使用单一属性添加

jasper-reports - Jasper 报告 Excel 输出

java - java的具体提示命令

jasper-reports - Print When Expression 仅打印组中的最后一个元素

java - 由于jasper报告需要重启Tomcat

java - 如何修复 jasperReports 上 barcode4j-2.1.jar 中的 java.lang.NoClassDefFoundError?

报告趋势线