gpt4 book ai didi

java - 获取 iReport 中的字段总计

转载 作者:太空宇宙 更新时间:2023-11-04 13:13:47 25 4
gpt4 key购买 nike

我有一个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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com