JasperReports:访问自定义数据源

时间:2011-11-29 23:07:25

标签: java jasper-reports datasource

我是 JasperReports 的新手,我需要从自定义数据源创建报告。为此,我实现了JRDataSource接口,使用了两种方法:

public class FacultyStudentsDS implements JRDataSource {

    @Override
    public Object getFieldValue(JRField field) throws JRException {
        ...
    }

    @Override
    public boolean next() throws JRException {
        ...
    }
}

然后我尝试以这种方式创建PDF文档:

pdf = JasperRunManager.runReportToPdf(reportFile.getAbsolutePath(),
new HashMap(), studentsDS);

我的问题是我不知道如何访问我传递给报告的数据。我不知道在 .jrxml 文件中写什么。如何在 .jrxml 文件中访问我传递给报告的studentsDS变量?

1 个答案:

答案 0 :(得分:1)

您需要拥有<detail>个频段。然后,在该频段内,您可以使用以下内容访问数据源中的字段:

<textFieldExpression class="java.lang.String"><![CDATA[$F{dataSourceField}]]></textFieldExpression>

根据您的需要,您可能不需要创建自己的自定义数据源。通过将Collection Java bean包装在JRBeanCollectionDataSource中,您可以使用上述$F{语法访问该集合中的Java bean的属性。