Dil*_*tha 4 java jasper-reports
我试图创建一个基本的碧玉报告JRBeanCollectionDataSource.在那里我有一个javabean内的对象列表.
public class Course {
private int id;
private List<Student> students;
}
Run Code Online (Sandbox Code Playgroud)
学生对象看起来像
public class Student {
private String name;
private int id;
}
Run Code Online (Sandbox Code Playgroud)
我想在报告中打印学生信息.这就是我的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>
Run Code Online (Sandbox Code Playgroud)
但当我运行这个即时通讯
net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. Field not found : name
Report design not valid :
1. Field not found : name
Run Code Online (Sandbox Code Playgroud)
我是jasper报道的初学者,任何人都可以告诉我,我在这里做错了什么.谢谢
您必须在使用之前定义字段.
在你的jrxml,你有三个字段students在subDataSet中定义,id和students.但是你没有name在你的定义和使用它jrxml,这就是你得到这个例外的原因.
尝试定义name,比如
<field name="name" class="java.lang.String"/>
Run Code Online (Sandbox Code Playgroud)
找出问题所在。name 属性应该在subdataset. 否则它不会工作
<subDataset name="dataset1" uuid="09015d96-ad5a-4fed-aa9e-19d25e02e205">
<field name="name" class="java.lang.String"/>
</subDataset>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20760 次 |
| 最近记录: |