gpt4 book ai didi

java - 报告设计无效。未找到字段 Jasper Reports

转载 作者:搜寻专家 更新时间:2023-11-01 01:42:09 25 4
gpt4 key购买 nike

我正在尝试使用 JRBeanCollectionDataSource 创建一个基本的 jasper 报告。在那里我有一个 javabean 中的对象列表。

public class Course {

private int id;
private List<Student> students;
}

学生对象看起来像

public class Student {

private String name;
private int id;
}

我想在报告中打印学生信息。这就是我的 jrxml 的样子

 <subDataset name="dataset1" uuid="09015d96-ad5a-4fed-aa9e-19d25e02e205">
<field name="students" class="java.util.List">
<fieldDescription><![CDATA[students]]></fieldDescription>
</field>
</subDataset>

<field name="id" class="java.lang.Integer"/>
<field name="students" class="java.util.List"/>
<field name="name" class="java.lang.String"/>

<componentElement>
<reportElement x="200" y="0" width="400" height="20"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="dataset1">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{students})]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="20" width="400">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<box leftPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>

</jr:listContents>
</jr:list>
</componentElement>

但是当我运行它时我得到了

net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 
1. Field not found : name
Report design not valid :
1. Field not found : name

我是 jasper 报告的初学者,任何人都可以告诉我我在这里做错了什么。谢谢

最佳答案

您必须在使用前定义字段。

在您的 jrxml 中,您在子数据集中定义了三个字段 studentsidstudents。但是您还没有定义 name 并在您的 jrxml 中使用它,这就是您收到此异常的原因。

尝试定义name,比如

<field name="name" class="java.lang.String"/>

关于java - 报告设计无效。未找到字段 Jasper Reports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952574/

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