报告设计无效。没有找到Jasper报告的字段 [英] Report design not valid. Field not found Jasper Reports

查看:82
本文介绍了报告设计无效。没有找到Jasper报告的字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Im trying to create a basic jasper report with JRBeanCollectionDataSource. In there im having a list of objects inside the javabean.

public class Course {

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

学生对象看起来像

public class Student {

    private String name;
    private int id;
}

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

I want to print student information inside my report. This is how my jrxml looks like

 <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>

但是当我运行这个我得到

But when i run this im getting

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报道的初学者可以有人请告诉我是什么我在这里做错了。谢谢

Im a beginner to jasper reports can anyone please tell me what am i doing wrong here. Thanks

推荐答案

解决问题。 name属性应在子数据集中定义。否则它将无法工作

Fount out the issue. name attribute should defined inside the subdataset. Otherwise it wont work

<subDataset name="dataset1" uuid="09015d96-ad5a-4fed-aa9e-19d25e02e205">
     <field name="name" class="java.lang.String"/>
</subDataset>

这篇关于报告设计无效。没有找到Jasper报告的字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆